@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');
:root{color-scheme:dark;--ink:#eee4d1;--muted:#b7a990;--gold:#c6a15b;--line:#5b4935}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#35291e 0,#17120f 48%,#0d0b09 100%);color:var(--ink);font-family:Inter,sans-serif}
.shell{min-height:100vh;display:grid;place-items:center;padding:24px}.card{width:min(560px,100%);padding:38px 28px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,rgba(45,35,27,.97),rgba(25,20,16,.98));box-shadow:0 28px 80px #0009;text-align:center}
.crest{width:78px;height:78px;margin:0 auto 20px;border:2px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-family:"Cormorant Garamond",serif;font-size:27px;font-weight:700;color:var(--gold)}
.eyebrow{margin:0;color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem}h1{font-family:"Cormorant Garamond",serif;font-size:clamp(2.6rem,10vw,4.2rem);line-height:.9;margin:10px 0 18px}.lede{color:var(--muted);line-height:1.65;margin:0 auto 28px;max-width:450px}
.status,.message{margin:18px 0;color:var(--muted)}.login{display:grid;gap:16px;text-align:left;margin-top:22px}.login label{display:grid;gap:7px;font-size:.85rem;color:var(--muted)}
input{width:100%;border:1px solid var(--line);border-radius:10px;background:#120f0c;color:var(--ink);padding:14px;font:inherit;outline:none}input:focus{border-color:var(--gold)}
button{border:0;border-radius:10px;padding:14px 18px;background:var(--gold);color:#17110c;font-weight:700;font:inherit;cursor:pointer}.secondary{margin-top:22px;background:transparent;color:var(--ink);border:1px solid var(--line)}
.fineprint{margin:26px 0 0;color:#817664;font-size:.78rem}.hidden{display:none!important}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:26px 0}
.welcome{margin:0;color:var(--muted);font-family:"Cormorant Garamond",serif;font-size:1.35rem}h2{font-family:"Cormorant Garamond",serif;font-size:2.5rem;margin:5px 0 12px}
.badge{display:inline-block;border:1px solid var(--gold);border-radius:999px;padding:6px 12px;color:var(--gold);font-size:.72rem;letter-spacing:.14em;font-weight:700}.member-status{color:var(--muted);font-size:.9rem;margin:16px 0 0}

/* Version 6 · The Reading Room */
body.in-library{background:#15110e;background-image:radial-gradient(ellipse at 70% 0%,#352a1e 0,transparent 46%),repeating-linear-gradient(90deg,transparent 0,transparent 83px,#ffffff04 84px,#ffffff04 85px)}
body.in-library .shell{display:block;padding:0;min-height:100vh}
body.in-library .card{width:100%;max-width:none;min-height:100vh;border:0;border-radius:0;box-shadow:none;padding:0;background:transparent;text-align:left}
body.in-library .card>.crest,body.in-library .card>h1,body.in-library .card>.eyebrow,body.in-library .card>.lede,body.in-library .card>.fineprint,body.in-library .card>#status{display:none}
.reading-room{min-height:100vh}.room-header{max-width:1220px;margin:auto;padding:22px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px}.brand-seal{display:grid;place-items:center;width:53px;height:53px;border:1px solid var(--gold);border-radius:50%;font-family:"Cormorant Garamond",serif;color:var(--gold);font-size:22px}.brand-overline{display:block;font-size:9px;letter-spacing:.2em;color:var(--gold);margin-bottom:3px}.brand strong{font:600 25px "Cormorant Garamond",serif;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:12px}.header-signout{border:1px solid #66513b;background:transparent;color:#e5d6bf;font-size:12px;padding:9px 13px}.room-nav{display:flex;justify-content:center;gap:4px;padding:0 18px;border-top:1px solid #ffffff0b;border-bottom:1px solid #7b613b66;background:#130f0c99;overflow-x:auto}.nav-tab{background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:#b5a48b;padding:18px 23px;font-size:12px;letter-spacing:.06em;white-space:nowrap}.nav-tab:hover,.nav-tab.active{color:#ead9b8}.nav-tab.active{border-bottom-color:var(--gold)}.room-content{max-width:1220px;margin:auto;padding:62px 32px 72px}.hero-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:38px;align-items:stretch}.hero-intro{padding:34px 14px 34px 0}.hero-greeting{font:400 29px "Cormorant Garamond",serif;color:#c5b499;margin:45px 0 4px}.hero-intro h2{font-size:clamp(50px,5vw,78px);line-height:.96;margin:0 0 20px}.hero-intro .member-status{font-size:13px}.ornament{color:var(--gold);letter-spacing:.4em;margin:44px 0 24px;font-size:15px}.hero-copy{color:#b8aa94;max-width:420px;line-height:1.85;font:21px/1.5 "Cormorant Garamond",serif}.current-book{padding:30px 30px 34px;border:1px solid #80633e80;background:linear-gradient(140deg,#392b1f,#201812 70%);box-shadow:inset 0 0 0 5px #100c093b,0 18px 40px #0004}.book-and-copy{display:flex;align-items:center;gap:30px;margin-top:28px}.book-art{flex:0 0 44%;aspect-ratio: .68;max-width:245px;padding:12px;background:linear-gradient(90deg,#241a15,#573527 9%,#6e4730 15%,#4c3024 90%,#271910);border-radius:4px 10px 10px 4px;box-shadow:8px 12px 20px #0009,inset 5px 0 7px #0009;transform:rotate(-3deg)}.book-art-inner{height:100%;border:1px solid #c8a66a;outline:1px solid #c8a66a66;outline-offset:-6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;padding:10px;color:#e8cc8b}.book-flourish{font-size:32px}.book-art-title{font:600 clamp(13px,1.6vw,21px)/1.25 "Cormorant Garamond",serif;letter-spacing:.08em}.book-art-rule{width:45px;border-top:1px solid #c8a66a}.book-art-author{font-size:8px;letter-spacing:.1em;line-height:1.5}.book-description{min-width:0}.mini-label{font-size:10px;letter-spacing:.2em;color:var(--gold)}.book-description h3{font:600 clamp(30px,3vw,45px)/1 "Cormorant Garamond",serif;margin:14px 0}.book-author{font:italic 22px "Cormorant Garamond",serif;color:#c9b99f}.hairline{height:1px;background:#87694466;margin:25px 0}.book-meta{font-size:13px;color:#c8b99e}.book-meta strong{color:#e7d7bc}.book-footnote{font-size:12px;color:#9d8d77}.section-heading{text-align:center;margin:75px 0 30px}.section-heading h3{font:600 42px "Cormorant Garamond",serif;margin:9px 0}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.feature-card{display:flex;flex-direction:column;text-align:left;min-height:220px;background:linear-gradient(145deg,#2c221b,#1a1511);border:1px solid #59452f;padding:25px;color:var(--ink);transition:border-color .2s,transform .2s}.feature-card:hover{border-color:var(--gold);transform:translateY(-2px)}.feature-symbol{font:35px "Cormorant Garamond",serif;color:var(--gold);margin-bottom:18px}.feature-name{font:600 29px "Cormorant Garamond",serif}.feature-desc{color:#aa9b87;font:13px/1.6 Inter,sans-serif;margin:8px 0 20px}.feature-cta{margin-top:auto;color:var(--gold);font-size:12px}.admin-tools{margin:60px auto 0;max-width:560px;border:1px solid #5b4935;padding:18px 22px;color:var(--muted)}.admin-tools summary{cursor:pointer;font-size:12px;letter-spacing:.04em}.admin-tools h3{font:600 28px "Cormorant Garamond",serif}.admin-tools .lede{font-size:13px;margin:0}.admin-tools button{background:var(--gold)}.room-footer{max-width:1220px;margin:auto;padding:24px 32px;border-top:1px solid #56432d;display:flex;justify-content:space-between;gap:20px;color:#8c795e;font-size:10px;letter-spacing:.13em}.placeholder-ornament{font-size:80px;color:var(--gold);margin:55px 0 20px}.placeholder-description{max-width:540px;margin:18px auto 28px;color:var(--muted);font:24px/1.5 "Cormorant Garamond",serif}.under-construction{display:inline-block;color:var(--gold);border:1px solid #80633e;padding:10px 14px;font-size:10px;letter-spacing:.16em}#placeholderSection{text-align:center;min-height:65vh}#placeholderSection h2{font-size:clamp(48px,8vw,82px)}#backHome{font-size:13px}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-intro{padding:10px 0}.hero-greeting{margin-top:22px}.hero-intro h2{font-size:62px}.current-book{max-width:750px}.feature-grid{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.room-header{padding:17px 18px}.brand-seal{width:42px;height:42px;font-size:18px}.brand strong{font-size:21px}.brand-overline{font-size:7px}.header-actions .badge{display:none}.header-signout{padding:8px;font-size:11px}.room-nav{justify-content:flex-start}.nav-tab{padding:14px 17px;font-size:11px}.room-content{padding:33px 20px 55px}.hero-greeting{font-size:26px}.hero-intro h2{font-size:55px}.ornament{margin:28px 0 18px}.hero-copy{font-size:20px}.current-book{padding:24px 17px}.book-and-copy{gap:18px}.book-art{flex-basis:43%;padding:8px}.book-art-inner{gap:11px}.book-art-title{font-size:14px}.book-art-author{font-size:6px}.book-description h3{font-size:31px}.book-author{font-size:19px}.hairline{margin:15px 0}.section-heading{margin-top:55px}.section-heading h3{font-size:36px}.feature-grid{grid-template-columns:1fr}.feature-card{min-height:170px}.room-footer{padding:20px;flex-direction:column;gap:8px}.placeholder-ornament{margin-top:20px}}
@media(max-width:380px){.book-and-copy{flex-direction:column;align-items:stretch}.book-art{width:170px;align-self:center}.book-description{text-align:center}.brand-overline{display:none}}

/* Version 7: living shelves and animated book */
.library-heading{text-align:center;margin:15px auto 30px;max-width:720px}.library-heading h2{font-family:Georgia,serif;font-weight:normal;font-size:clamp(36px,7vw,62px);margin:8px}.library-heading p:not(.eyebrow),.library-note{color:#c5b59b}.library-note{text-align:center;font-size:13px;margin:22px auto;max-width:680px}.library-shelves{max-width:1000px;margin:0 auto}.library-round{margin:0 0 33px}.library-plaque{width:max-content;max-width:95%;margin:0 auto 12px;padding:7px 25px;border:2px ridge #d5b780;background:linear-gradient(#c3a36c,#765933);color:#23180d;font:600 14px Georgia,serif;letter-spacing:.12em;box-shadow:0 3px 10px #0009}.library-case{border:9px ridge #50321d;background:linear-gradient(90deg,#21140c,#3d281a 3%,#21150e 97%,#4b2c1a);box-shadow:inset 0 15px 22px #000b,0 13px 24px #0007;padding:15px 10px 0}.library-spines{display:flex;align-items:flex-end;gap:4px;min-height:385px;overflow-x:auto;padding:12px 4px 0;scrollbar-color:#97774b #2c1d12}.library-spine{position:relative;flex:0 0 52px;height:var(--height);background:linear-gradient(90deg,#0008,#ffffff18 18%,transparent 38%,#0009),var(--leather);border:1px solid #24140c;border-radius:4px 6px 2px 2px;box-shadow:inset 2px 0 2px #ffffff24,inset -4px 0 5px #0008,3px 3px 5px #000a;cursor:pointer;color:#f5dfad;transition:transform .22s,filter .22s;transform-origin:bottom;overflow:hidden}.library-spine:hover,.library-spine:focus-visible{transform:translateY(-13px);filter:brightness(1.2);z-index:2;outline:2px solid #d8b77b;outline-offset:2px}.library-spine:before,.library-spine:after{content:"";position:absolute;left:2px;right:2px;height:5px;border-top:1px solid #e4bc78;border-bottom:1px solid #ae824d;background:#0004}.library-spine:before{top:12px}.library-spine:after{bottom:11px}.spine-lettering{position:absolute;left:50%;top:calc((var(--height) - 100px)/2);width:calc(var(--height) - 125px);height:20px;transform:translate(-50%,-50%) rotate(-90deg);white-space:nowrap;text-align:center;line-height:20px;font:bold 13px Georgia,serif;text-shadow:0 1px 3px #000;pointer-events:none}.spine-byline{position:absolute;left:50%;top:calc(var(--height) - 49px);width:76px;height:17px;transform:translate(-50%,-50%) rotate(-90deg);white-space:nowrap;text-align:center;font:10px Georgia,serif;color:#f3ddb3;pointer-events:none}.library-spine.is-current{outline:2px solid #d6ba7a;outline-offset:-3px}.library-shelf-edge{height:25px;margin:0 -10px;background:linear-gradient(#9c7049,#64402a 22%,#2e1b10 70%,#140d08);border-top:4px solid #b08455;box-shadow:0 9px 15px #000a}.book-overlay{position:fixed;inset:0;z-index:99;background:#090806ed;display:flex;align-items:center;justify-content:center;padding:20px 12px;overflow-y:auto;backdrop-filter:blur(6px)}.book-overlay.hidden{display:none}.book-stage{width:min(830px,100%);margin:auto;perspective:1300px;text-align:center}.open-volume{position:relative;min-height:430px;transform-style:preserve-3d;filter:drop-shadow(0 25px 25px #000a)}.volume-pages{display:grid;grid-template-columns:1fr 1fr;min-height:430px;background:#e4d2ab;color:#33271d;border:8px solid #422719;border-radius:5px 15px 15px 5px;box-shadow:inset 0 0 30px #795b3670;transform-origin:left center;animation:pagesReveal .65s both}.volume-page{text-align:left;padding:clamp(18px,3.5vw,38px);background:repeating-linear-gradient(0deg,#ffffff08 0 3px,transparent 4px 8px),linear-gradient(100deg,#cbb78e,#f1e4c6 14%,#e9d8b2 92%,#cbb48b)}.left-page{border-right:2px solid #a68b64;box-shadow:inset -13px 0 20px #6c4a2c27}.right-page{box-shadow:inset 12px 0 20px #6c4a2c27}.volume-page .eyebrow,.volume-page .page-label{color:#866139;font-size:10px;letter-spacing:.15em}.volume-page h2{font:normal clamp(23px,4vw,41px)/1.12 Georgia,serif;color:#35251b;margin:25px 0 12px}.volume-page h3{font:normal 25px Georgia,serif;margin:22px 0}.volume-page p{font:15px/1.5 Georgia,serif;color:#4c3828}.page-ornament{text-align:center;font-size:36px;color:#9d7b4b}.page-divider{border-top:1px solid #b2966b;margin:28px 0}.page-label{margin:24px 0 5px}.opened-author{font-style:italic}.uncertain{color:#805225!important;font-size:12px!important}.current-tag{margin-top:25px;padding:10px;border:1px solid #9b7b49;font-size:11px!important}.volume-cover{position:absolute;inset:0 50% 0 0;z-index:3;display:flex;flex-direction:column;justify-content:space-around;align-items:center;padding:24px;background:linear-gradient(100deg,#1d0f0c,#61372a 12%,#45251c 90%,#24120d);border:8px ridge #986f42;border-radius:6px 3px 3px 6px;box-shadow:6px 8px 18px #0009;transform-origin:left center;animation:coverOpen 1s ease-in-out both;backface-visibility:hidden}.volume-cover span{color:#e4c78d;font-family:Georgia,serif}.volume-cover #volumeCoverTitle{font-size:clamp(17px,3vw,29px);font-weight:bold}.volume-flower{font-size:42px}.close-volume{margin:24px auto 0;cursor:pointer;background:#6e4c2b;color:#f9e8c6;border:1px solid #d4b782;border-radius:4px;padding:12px 24px;font:15px Georgia,serif}.book-overlay.closing .volume-cover{animation:coverClose .6s ease-in both}.book-overlay.closing .volume-pages{animation:pagesHide .6s ease-in both}@keyframes coverOpen{from{transform:rotateY(0)}to{transform:rotateY(-165deg)}}@keyframes coverClose{from{transform:rotateY(-165deg)}to{transform:rotateY(0)}}@keyframes pagesReveal{from{transform:scaleX(.72);opacity:.5}to{transform:scaleX(1);opacity:1}}@keyframes pagesHide{to{transform:scaleX(.72);opacity:.4}}body.book-open{overflow:hidden}@media(max-width:650px){.book-overlay{align-items:flex-start}.open-volume{min-height:0}.volume-pages{grid-template-columns:1fr;min-height:0}.volume-page{padding:22px}.left-page{border-right:0;border-bottom:1px solid #ac8e5d}.volume-cover{right:0;transform-origin:left;animation:mobileCoverOpen .75s ease both}.volume-cover #volumeCoverTitle{font-size:23px}@keyframes mobileCoverOpen{from{transform:rotateY(0);opacity:1}to{transform:rotateY(-100deg);opacity:0;visibility:hidden}}.book-overlay.closing .volume-cover{animation:mobileCoverClose .5s ease both}@keyframes mobileCoverClose{from{transform:rotateY(-100deg);opacity:0}to{transform:rotateY(0);opacity:1}}.library-spine{flex-basis:49px}.library-spines{min-height:390px}}@media(prefers-reduced-motion:reduce){.library-spine,.volume-cover,.volume-pages,.book-overlay.closing .volume-cover,.book-overlay.closing .volume-pages{animation:none!important;transition:none!important}.volume-cover{display:none}}

/* V8: slower, clearly visible sequential parchment page turns. */
.book-stage{perspective:1700px}
.open-volume{isolation:isolate;perspective:1700px}
.turning-leaves{position:absolute;inset:8px 50% 8px 0;z-index:4;pointer-events:none;transform-style:preserve-3d;perspective:1500px}
.turning-leaf{position:absolute;inset:0;transform-origin:left center;backface-visibility:visible;border:1px solid #b99a6a;border-radius:2px 12px 12px 2px;background:repeating-linear-gradient(0deg,transparent 0 19px,#9d835d22 20px 21px,transparent 22px 29px),linear-gradient(95deg,#c6ad7f 0%,#f2e6c9 12%,#ead8b4 78%,#c7ac7e 100%);box-shadow:inset 10px 0 20px #7354342e,6px 5px 14px #25140655;opacity:0;transform:rotateY(0deg);animation:leafTurn 1.1s cubic-bezier(.42,.05,.2,1) both}
.leaf-one{animation-delay:.75s;z-index:4}.leaf-two{animation-delay:1.12s;z-index:3}.leaf-three{animation-delay:1.49s;z-index:2}.leaf-four{animation-delay:1.86s;z-index:1}
@keyframes leafTurn{0%{opacity:0;transform:rotateY(0)}8%{opacity:1}72%{opacity:1}100%{opacity:0;transform:rotateY(-174deg)}}
.volume-cover{animation:coverOpen 1.35s cubic-bezier(.35,.04,.18,1) both;z-index:5}
.volume-pages{animation:pagesReveal 1.2s ease-out both;animation-delay:1.8s}
.book-overlay.closing .volume-cover{animation:coverClose 1.15s ease-in-out both;animation-delay:.95s}
.book-overlay.closing .volume-pages{animation:pagesHide 1.65s ease-in both}
.book-overlay.closing .turning-leaf{animation:leafReturn .75s ease-in-out both}
.book-overlay.closing .leaf-four{animation-delay:0s}.book-overlay.closing .leaf-three{animation-delay:.24s}.book-overlay.closing .leaf-two{animation-delay:.48s}.book-overlay.closing .leaf-one{animation-delay:.72s}
@keyframes leafReturn{0%{opacity:0;transform:rotateY(-174deg)}12%{opacity:1}85%{opacity:1}100%{opacity:0;transform:rotateY(0)}}
@media(max-width:650px){.turning-leaves{inset:0;transform-origin:left center}.turning-leaf{border-radius:3px 12px 12px 3px}.volume-cover{animation:mobileCoverOpen 1.4s ease-in-out both}.book-overlay.closing .volume-cover{animation:mobileCoverClose 1.1s ease both;animation-delay:.95s}}
@media(prefers-reduced-motion:reduce){.turning-leaves{display:none!important}.volume-pages{animation:none!important}.volume-cover{display:none!important}}

/* Version 9: published cover art inside the opened volume */
.published-cover-frame{display:flex;align-items:center;justify-content:center;min-height:205px;margin:13px auto 12px;max-width:220px}
.published-cover-image{display:block;max-width:100%;width:auto;height:auto;max-height:250px;object-fit:contain;border:1px solid #8e724c;box-shadow:4px 7px 12px #4d332b66;background:#e2d2ad}
.published-cover-fallback{display:flex;align-items:center;justify-content:center;width:150px;height:210px;border:5px double #9b7846;background:#4c2c22;color:#dec28d;font-size:65px;box-shadow:4px 7px 12px #4d332b66}
.published-cover-fallback.hidden,.published-cover-image.hidden{display:none}
.left-page h2{font-size:clamp(19px,2.6vw,29px);margin:13px 0 7px}
.left-page .page-divider{margin:14px 0}
@media(max-width:650px){.published-cover-frame{min-height:190px}.published-cover-image{max-height:230px}.left-page h2{font-size:25px}}

/* V10: live meeting records, preserving the approved book presentation. */
.meeting-archive{padding:10px 0;border-top:1px solid #b2966b55;color:#4c3828}
.meeting-archive p{margin:8px 0;font:15px/1.5 Georgia,serif}
.meeting-archive .meeting-state{font-weight:bold;color:#644323}
.meeting-archive .meeting-note{font-size:12px;color:#745b43}

/* V11: The Gathering · dark-academia ledger */
.ledger-heading{text-align:center;margin:10px auto 32px;max-width:720px}.ledger-heading h2{font-size:clamp(42px,7vw,70px);margin:10px 0}.ledger-heading>p:last-child{color:var(--muted);line-height:1.6}.ledger-message{text-align:center;color:#bba786;font-size:13px;margin:25px 0}.meeting-ledger{display:grid;gap:22px;max-width:930px;margin:0 auto 35px}.ledger-card{border:1px solid #795c3b;background:linear-gradient(135deg,#33271d,#1c1612);box-shadow:0 15px 30px #0005;padding:23px}.ledger-card-heading{display:flex;gap:23px;align-items:center}.ledger-cover{width:92px;max-height:135px;object-fit:cover;box-shadow:4px 7px 13px #0008}.ledger-book-details h3{font:600 clamp(26px,4vw,39px)/1.1 'Cormorant Garamond',serif;margin:10px 0}.ledger-book-details p{margin:7px 0;font-size:13px}.ledger-muted{color:#ae9c84!important;font-size:13px;line-height:1.6}.ledger-toggle{margin-top:22px;background:#71532f;color:#fff0d4;border:1px solid #b28b54;width:100%;font-size:13px}.ledger-expanded{border-top:1px solid #59442c;margin-top:20px;padding-top:10px}.ledger-expanded h4{font:600 29px 'Cormorant Garamond',serif;color:#e5c993;margin:30px 0 14px}.ledger-edit,.ledger-minutes,.ledger-rating-form,.ledger-upload{display:grid;gap:12px;max-width:640px}.ledger-edit label,.ledger-minutes label,.ledger-rating-form label{display:grid;gap:7px;font-size:13px;color:#c7b69b}.ledger-edit select,.ledger-rating-form select,.ledger-minutes textarea{width:100%;padding:12px;border:1px solid #665036;background:#130f0c;color:#eee4d1;border-radius:8px;font:inherit}.ledger-minutes textarea{resize:vertical}.ledger-edit button,.ledger-minutes button,.ledger-rating-form button,.ledger-upload button{width:max-content;max-width:100%;font-size:13px}.ledger-feedback{color:#d3b987;font-size:12px;overflow-wrap:anywhere}.ledger-field-label{font-size:11px;color:var(--gold);letter-spacing:.13em;text-transform:uppercase;margin:20px 0 5px}.ledger-minute-copy{white-space:pre-wrap;color:#ddd0b9;line-height:1.7;margin:0}.ledger-ratings{display:grid;gap:9px}.ledger-average{font:600 24px 'Cormorant Garamond',serif;color:#e5c993;margin:14px 0}.ledger-rating-row{border-bottom:1px solid #ffffff12;padding:9px 0;margin:0;font-size:13px}.ledger-attachments{display:grid;gap:12px}.ledger-file{text-align:left;background:transparent;color:#e6cb97;border:1px solid #6b5133;font-size:13px;overflow-wrap:anywhere}.ledger-upload input[type=file]{padding:12px}.ledger-card button:focus-visible,.ledger-card input:focus-visible,.ledger-card select:focus-visible,.ledger-card textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media(max-width:580px){.ledger-card{padding:17px}.ledger-card-heading{align-items:flex-start;gap:14px}.ledger-cover{width:65px}.ledger-book-details h3{font-size:27px}}

/* Version 12: PowerPoint archive filing */
.archive-bulk{max-width:930px;margin:0 auto 32px;padding:25px;border:1px solid #9b784b;background:linear-gradient(145deg,#34271b,#1a1410)}
.archive-bulk h3{font:600 37px 'Cormorant Garamond',serif;margin:10px 0}.archive-bulk>p:not(.eyebrow){color:#c8b69d;line-height:1.6;font-size:13px}
.archive-drop{border:2px dashed #a28253;border-radius:10px;padding:34px 20px;text-align:center;background:#20180f;color:#ead3a6;cursor:pointer;margin:20px 0;line-height:1.7}
.archive-drop small{display:block;color:#aa987e}.archive-drop:hover,.archive-drop:focus-visible,.archive-drop.is-dragging{border-color:#e8c584;background:#3b2b1a;outline:none}
.archive-queue{display:grid;gap:12px;margin:20px 0}.archive-queue-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,1fr) auto;gap:12px;align-items:end;padding:13px;border:1px solid #5d482e;background:#1a1410}
.archive-file-name{overflow-wrap:anywhere;color:#f0d8ad;font-size:13px}.archive-queue-row label{display:grid;gap:6px;color:#c8b69d;font-size:12px}.archive-queue-row select{width:100%;background:#110d0a;color:#eee4d1;border:1px solid #80633e;border-radius:7px;padding:10px}.archive-queue-row .ledger-feedback{grid-column:1/-1;margin:0}.archive-remove{background:transparent;border:1px solid #80633e;color:#decba9;padding:10px}.book-archive-link{margin-top:8px;padding:9px 12px;background:#70512f;color:#fff2d7;border:1px solid #8f6d41;font:13px Georgia,serif}
@media(max-width:680px){.archive-queue-row{grid-template-columns:1fr}.archive-queue-row .ledger-feedback{grid-column:auto}}

/* V13 · Countdown and Discord link */
.discord-nav{display:inline-flex;align-items:center;text-decoration:none;font-family:Inter,sans-serif;font-weight:500}
.discord-nav:hover,.discord-nav:focus-visible{color:#ead9b8;text-decoration:underline;text-underline-offset:5px}
.countdown-panel{margin:38px auto 0;max-width:920px;text-align:center;padding:28px 25px 30px;border:1px solid #80633e;background:linear-gradient(145deg,#35271c,#1b1510);box-shadow:inset 0 0 0 4px #100c092e,0 12px 30px #0004}
.countdown-panel h3{font:600 clamp(29px,4vw,44px)/1.1 'Cormorant Garamond',serif;margin:13px 0;color:#f0e0c4}
.countdown-date{color:#b9a487;font-size:13px;line-height:1.7;margin:0 auto 20px}
.countdown-digits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:580px;margin:18px auto}
.countdown-digits>div{display:flex;flex-direction:column;gap:6px;align-items:center;background:#37291d;border:1px solid #695034;padding:15px 5px}
.countdown-digits strong{font:600 clamp(28px,5vw,47px) 'Cormorant Garamond',serif;color:#e5c58e;font-variant-numeric:tabular-nums}
.countdown-digits span{font:10px Inter,sans-serif;letter-spacing:.13em;color:#b9a487}
.countdown-action{margin-top:8px;font-size:12px}
@media(max-width:580px){.countdown-panel{padding:23px 14px}.countdown-digits{gap:6px}.countdown-digits>div{padding:12px 2px}.countdown-digits span{font-size:8px;letter-spacing:.05em}}

/* Version 14 · The Veiled Wheel of Fate — decorative first stage */
.wheel-room{text-align:center}.wheel-heading{max-width:700px;margin:0 auto 28px}.wheel-heading h2{font:600 clamp(48px,7vw,80px)/1 'Cormorant Garamond',serif;color:#f0dec0;margin:12px 0}.wheel-heading>p:last-child{font:22px/1.4 'Cormorant Garamond',serif;color:#c6b39a}
.fate-chamber{position:relative;isolation:isolate;max-width:970px;min-height:680px;margin:0 auto;border:9px ridge #624528;overflow:hidden;background:radial-gradient(ellipse at 50% 31%,#76513280,transparent 48%),repeating-linear-gradient(90deg,#281c14 0 72px,#322219 73px 77px,#1a120e 78px 80px),linear-gradient(#30231a,#100d0b);box-shadow:inset 0 0 95px 40px #050403,0 22px 45px #0008}
.fate-chamber:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(ellipse at 50% 46%,transparent 18%,#0c0806c9 98%)}
.fate-chamber:after{content:'';position:absolute;bottom:0;left:0;right:0;height:70px;background:linear-gradient(#36271b,#170e09 24%,#29170c 35%,#090605 100%);border-top:7px ridge #6c4929;z-index:1}
.fate-bookshelf{position:absolute;top:4%;bottom:11%;width:25%;opacity:.75;background:repeating-linear-gradient(0deg,transparent 0 120px,#6d4527 121px 132px,#120c09 133px 140px),repeating-linear-gradient(90deg,#352017 0 14px,#ad7648 15px 17px,#1d2c28 18px 34px,#b68b55 35px 37px,#4c2931 38px 57px,#7b4f2e 58px 61px,#221710 62px 67px);box-shadow:inset 0 0 30px #000}
.fate-bookshelf-left{left:0;border-right:13px ridge #65442a}.fate-bookshelf-right{right:0;border-left:13px ridge #65442a}.fate-glow{position:absolute;left:50%;top:2%;transform:translateX(-50%);width:55%;height:65%;background:radial-gradient(ellipse,#c69b5c40,transparent 65%);filter:blur(12px);animation:fateFlicker 6s ease-in-out infinite}
.fate-wheel-scene{position:relative;z-index:1;width:min(580px,82%);margin:8px auto 12px;filter:drop-shadow(0 24px 17px #000b)}.fate-covered-art{width:100%;height:auto;display:block}.fate-sign-group{transform-origin:280px 270px;animation:fateSignSway 6s ease-in-out infinite}.fate-chamber-caption{position:relative;z-index:3;margin:-14px auto 25px;font:13px Georgia,serif;letter-spacing:.22em;color:#b9965c;text-shadow:0 2px 7px #000}
.fate-room-note{font:italic 23px 'Cormorant Garamond',serif;color:#c6b69b;margin:24px auto 0}.fate-leadership-note{max-width:650px;margin:20px auto 0;padding:14px 20px;border:1px solid #6a5031;color:#bfae93;font-size:12px;line-height:1.6}
@keyframes fateFlicker{0%,100%{opacity:.78}38%{opacity:1}40%{opacity:.68}43%{opacity:.96}70%{opacity:.82}}@keyframes fateSignSway{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(-3deg)}}
@media(max-width:620px){.wheel-room{padding-left:12px;padding-right:12px}.fate-chamber{min-height:0;border-width:5px}.fate-wheel-scene{width:100%;margin:15px auto}.fate-bookshelf{width:18%}.fate-chamber-caption{font-size:8px;letter-spacing:.09em;margin:-6px auto 16px}.wheel-heading>p:last-child{font-size:19px}}
@media(prefers-reduced-motion:reduce){.fate-glow,.fate-sign-group{animation:none}}

/* Version 14.1: photographic Wheel of Fate chamber */
.fate-photo-frame{max-width:1040px;margin:0 auto;padding:0;position:relative;overflow:hidden;border:7px ridge #684b30;background:#140e0a;box-shadow:0 24px 55px #000a,inset 0 0 40px #0009}
.fate-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center}
.fate-photo-caption{position:absolute;bottom:0;left:0;right:0;padding:26px 8px 14px;background:linear-gradient(transparent,#100a08db);font:12px Georgia,serif;letter-spacing:.2em;color:#e4c18a;text-shadow:0 2px 6px #000}
@media(max-width:620px){.fate-photo-frame{border-width:4px}.fate-photo{aspect-ratio:4/5;object-fit:cover}.fate-photo-caption{font-size:9px;letter-spacing:.08em;padding-bottom:10px}}

/* V14.2 · cinematic unveiling prototype. The two photographic states are distinct
   renders; the transition is an art-directed approximation, not simulated fabric. */
.fate-scene{isolation:isolate;aspect-ratio:3/2}
.fate-scene .fate-photo{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
.fate-scene .fate-unveiled{z-index:0}
.fate-scene .fate-veiled{z-index:2;opacity:1;transform:translateY(0);filter:drop-shadow(0 9px 15px #08050288);transition:opacity 1.2s ease,transform 2.5s cubic-bezier(.24,.7,.28,1),filter 2.5s ease}
.fate-scene .fate-curtain-shadow{position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,transparent 32%,#0b070544 95%)}
.fate-scene .fate-photo-caption{z-index:4}
.fate-scene.is-unveiling .fate-veiled{opacity:0;transform:translateY(-16%) scale(1.04);filter:drop-shadow(0 35px 30px #080502aa)}
.fate-scene.is-unveiling .fate-unveiled{animation:fateLightUp 2.8s ease-out both}
@keyframes fateLightUp{0%{filter:brightness(.5) saturate(.6)}55%{filter:brightness(.75) saturate(.9)}100%{filter:brightness(1) saturate(1)}}
.fate-leadership-note{max-width:650px}.fate-leadership-note p:not(.eyebrow){line-height:1.7}
.fate-preview-button{margin:10px auto 0;background:#bb965d;color:#1d130b}
@media(max-width:620px){.fate-scene{aspect-ratio:4/5}.fate-scene .fate-photo{object-fit:cover}}
@media(prefers-reduced-motion:reduce){.fate-scene .fate-veiled{transition:none}.fate-scene.is-unveiling .fate-unveiled{animation:none}}

/* V15: photorealistic rotating disc cut from the approved wheel photograph. */
.practice-wheel-disc{position:absolute;z-index:1;left:50.46%;top:42.97%;width:33.86%;aspect-ratio:1;transform:translate(-50%,-50%) rotate(0deg);transform-origin:center;will-change:transform;pointer-events:none;visibility:hidden;filter:drop-shadow(0 1px 2px #0008)}
.practice-wheel-disc>img{width:100%;height:100%;display:block;border-radius:50%}
.practice-wheel-names{position:absolute;inset:0;border-radius:50%;overflow:hidden}
.practice-wheel-name{position:absolute;left:50%;top:50%;width:32%;height:8%;display:flex;align-items:center;justify-content:center;transform-origin:0 50%;padding:1px 3px;background:linear-gradient(90deg,#160f0bbb,#28180ac4);border:1px solid #d2ad6a99;border-radius:4px;color:#f6e8c8;font:600 clamp(6px,.75vw,11px) Georgia,serif;text-shadow:0 1px 2px #000;white-space:nowrap;overflow:hidden;letter-spacing:0;text-align:center}
.fate-scene.is-unveiling .practice-wheel-disc{visibility:visible}
.practice-pointer{position:absolute;z-index:1;left:50.46%;top:16.7%;width:2.2%;height:11.8%;transform:translateX(-50%);background:linear-gradient(90deg,#543418,#e2bd74 35%,#9a632e 70%,#3c2715);clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 3px 2px #000);visibility:hidden;pointer-events:none}
.fate-scene.is-unveiling .practice-pointer{visibility:visible}
.practice-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.practice-actions button:disabled{opacity:.45;cursor:not-allowed}
.fate-practice-result{min-height:1.5em;color:#ead2a5;font:600 20px 'Cormorant Garamond',serif;margin:12px 0 0}
@media(max-width:620px){.practice-wheel-disc{width:83%;left:50%;top:43%}.practice-pointer{left:50%;top:16%;width:5%;height:12%}.practice-wheel-name{font-size:clamp(6px,1.6vw,10px)}}
@media(prefers-reduced-motion:reduce){.practice-wheel-disc{will-change:auto}}

/* V15.1: dynamically equal, translucent brass-lined wedges and readable labels. */
.practice-wheel-sectors{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 1px 1px #080503)}
.practice-sector-label{fill:#fff1ce;stroke:#1a0d07;stroke-width:2.5px;paint-order:stroke fill;stroke-linejoin:round;font-family:Georgia,serif;font-weight:700;letter-spacing:.15px}

/* V15.2: unmistakable jewel-toned member slices, like a traditional prize wheel. */
.practice-wheel-names{inset:0;border-radius:50%;overflow:hidden}
.practice-wheel-sectors{width:100%;height:100%;display:block;filter:drop-shadow(0 1px 2px #000a)}
.practice-sector-label{fill:#fff6dc;stroke:#1a100c;stroke-width:3.5px;paint-order:stroke fill;stroke-linejoin:round;font-family:Georgia,serif;font-weight:700;letter-spacing:.2px}

/* V16: reading-completion ledger */
.reading-completion-panel{margin:34px 0;padding:28px 30px;border:1px solid #80633e80;background:linear-gradient(135deg,#32271d,#1d1712);box-shadow:inset 0 0 0 4px #100c0933}
.reading-completion-panel h3{font:600 34px "Cormorant Garamond",serif;margin:10px 0}
.reading-completion-panel>p:not(.eyebrow){color:#c9b99f;line-height:1.65}
.reading-completion-panel button{margin-top:8px}
.reading-completion-panel button:disabled{opacity:.55;cursor:not-allowed}
.reading-completion-status{font-size:14px}
.reading-completion-note{font-size:12px}
@media(max-width:580px){.reading-completion-panel{padding:23px 19px}}

/* V16.1: clearly distinguished completion choices */
.completion-choices{display:flex;flex-wrap:wrap;gap:12px;margin-top:15px}
.completion-choices .completion-choice{margin-top:0;border:1px solid #92744a;background:#2b221a;color:#eee0c7;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s}
.completion-choices .completion-choice:hover:not(:disabled){border-color:#d5ae70;background:#433222}
.completion-choices .completion-choice.is-selected{background:#c6a15b;color:#21170d;border-color:#f1d18f;box-shadow:0 0 0 2px #c6a15b50}
.completion-choices .completion-choice.is-selected:before{content:'✓ ';font-weight:800}
.completion-choices .completion-choice:focus-visible{outline:3px solid #f1d18f;outline-offset:3px}
@media(max-width:580px){.completion-choices{flex-direction:column}.completion-choices .completion-choice{width:100%}}

/* V17: official controls, original V15.2 wheel styling retained. */
.official-fate-panel{max-width:720px;margin:26px auto 22px;padding:23px 25px;text-align:center;border:1px solid #8a6a3f;background:linear-gradient(135deg,#34261a,#1b1510)}
.official-fate-panel>p:not(.eyebrow){color:#d8c6a7;line-height:1.6}
.official-fate-panel .practice-actions{margin-top:16px}
.official-fate-panel button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:580px){.official-fate-panel{padding:20px 14px}}

/* V17.3 functional preview: warm wood and brass */
:root{--gold:#d5b377;--ink:#f5e8d3;--muted:#d3c0a3;--line:#856746}
body.in-library{background:radial-gradient(ellipse at 70% 0%,#59452a 0%,#1b1b15 55%,#10130f 100%)}
.room-nav{background:linear-gradient(90deg,#10271e,#17190f,#10271e);border-bottom-color:#b89655aa}
.nav-tab.active{color:#f6db9b}
.room-content{position:relative}
.current-book,.reading-completion-panel,.countdown-panel,.official-fate-panel,.feature-card{background-color:#1b211bcf;backdrop-filter:blur(6px)}
.library-case{border:14px ridge #855831;border-radius:7px;background:linear-gradient(90deg,#3b2415,#6c482c 4%,#2e1e13 9%,#382619 90%,#795031 96%,#362116);box-shadow:inset 0 14px 24px #000a,0 14px 26px #0008,0 0 0 3px #aa8150}
.library-case:before{content:'❧   ✦   ❧';display:block;text-align:center;font:26px Georgia,serif;letter-spacing:.5em;color:#c99c58;text-shadow:0 2px 4px #000;padding:5px 0;border-bottom:3px double #b58a55}
.library-shelf-edge{height:35px;background:linear-gradient(#b68a56 0%,#68442c 23%,#422718 68%,#1d130d 100%);border-top:5px ridge #d5a56c}
.library-plaque{border-radius:3px}
.volume-cover,.turning-leaves{display:none!important}
.volume-pages{animation:volumeArrive .45s ease-out both;transform:none!important;min-height:500px}
.book-overlay.closing .volume-pages{animation:volumeDepart .25s ease-in both}
@keyframes volumeArrive{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes volumeDepart{to{opacity:0;transform:translateY(14px) scale(.97)}}
.book-reading-actions{display:flex;gap:8px;flex-wrap:wrap}.book-reading-actions button{font-size:12px;padding:10px;background:#ece0c7;color:#342315;border:1px solid #a18152}
.book-reading-actions button.is-selected{background:#2e5641;color:#fff3d3}
.book-rating-stars{display:flex;gap:2px;flex-wrap:wrap}.book-rating-stars button{background:transparent;color:#8b7355;padding:4px 6px;font-size:27px;line-height:1}.book-rating-stars button.is-selected{color:#b88632}
.book-feedback{font:12px/1.4 Georgia,serif!important;margin:7px 0 12px!important}.book-doc{display:block;margin:7px 0;padding:8px 10px;font-size:12px}
.archive-bulk{margin-top:48px}
/* Photographic imagery will be added after asset validation; avoid pretending CSS is a photograph. */
.entrance-scene{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:1;background:radial-gradient(ellipse at 50% 30%,#97764d 0%,#382e21 35%,#14150f 80%);transition:opacity .85s ease}
.entrance-arch{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1);width:min(75vw,660px);height:min(88vh,850px);border:24px ridge #5e5038;border-radius:48% 48% 3% 3% / 18% 18% 2% 2%;overflow:hidden;background:linear-gradient(#e1b56d,#332c1e);box-shadow:0 0 0 35px #312e22,0 0 80px #000;animation:approach 1.9s ease-out both}
.entrance-crest{position:absolute;top:6%;width:100%;z-index:4;text-align:center;color:#f1d29b;font:44px Georgia,serif;text-shadow:0 3px 8px #000}.entrance-crest small{display:block;font:10px Georgia,serif;letter-spacing:.25em}
.entrance-door{position:absolute;top:18%;height:82%;width:50%;background:repeating-linear-gradient(90deg,#2c180f 0 13%,#6e462b 15%,#412819 20%,#6b4429 24%,#321d12 27%);border:9px ridge #a87a48;box-shadow:inset 0 0 45px #0009;transition:transform 1.3s cubic-bezier(.18,.7,.2,1)}
.entrance-left{left:0;transform-origin:left center}.entrance-right{right:0;transform-origin:right center}
.entrance-light{position:absolute;inset:20% 0 0;z-index:-1;background:radial-gradient(#ffe2a1,#59492d 50%,#1b201a)}
body.entrance-opening .entrance-left{transform:perspective(900px) rotateY(-85deg)}body.entrance-opening .entrance-right{transform:perspective(900px) rotateY(85deg)}
body.entrance-opening .entrance-arch{animation:enterHall 1.65s .35s ease-in forwards}
body.in-library .entrance-scene,body.entrance-done .entrance-scene{opacity:0}
body:not(.in-library) .shell{position:relative;z-index:1}body:not(.in-library) .card{background:#111e19e8;border-color:#b99a5b}
.entrance-skip{position:fixed;right:18px;bottom:18px;z-index:110;background:#12271e;color:#e6c78d;border:1px solid #b99658;padding:9px 13px;font-size:12px}
body.in-library .entrance-skip,body.entrance-done .entrance-skip{display:none}
@keyframes approach{from{transform:translate(-50%,-50%) scale(.88);filter:brightness(.7)}to{transform:translate(-50%,-50%) scale(1);filter:brightness(1)}}
@keyframes enterHall{to{transform:translate(-50%,-50%) scale(1.55);opacity:0}}
@media(max-width:650px){.entrance-arch{width:92vw;height:80vh;border-width:13px}.volume-pages{display:block;max-height:76vh;overflow-y:auto}.volume-page{min-height:auto}.book-stage{width:min(560px,100%)}.entrance-crest{font-size:28px}}
@media(prefers-reduced-motion:reduce){.entrance-arch,.volume-pages{animation:none!important}.entrance-door,.entrance-scene{transition:none!important}}


/* V17.3 Preview 2: desktop book presentation and responsive shelf corrections */
@media(min-width:801px){
  .library-shelves{max-width:760px}
  .library-case{width:max-content;max-width:100%;min-width:min(100%,360px);margin:0 auto;padding:11px 12px 0;border-width:11px}
  .library-case:before{font-size:17px;line-height:1.15;padding:2px 0 6px}
  .library-spines{min-height:304px;max-width:100%;padding-top:8px;gap:5px}
  .library-spine{flex-basis:46px;height:calc(var(--height) * .76)}
  .library-shelf-edge{height:26px}
  .library-round{margin-bottom:27px}
  .library-plaque{font-size:12px;padding:5px 20px;margin-bottom:9px}
}
/* Keep mobile's larger, horizontally scrollable shelves unchanged. */
@media(max-width:800px){
  .library-spine{height:var(--height)}
  .library-spines{overflow-x:auto}
}
/* A proper cover flap: starts over the right page, opens across the center seam. */
@media(min-width:651px){
  .open-volume{isolation:isolate;transform-style:preserve-3d}
  .volume-pages{position:relative;transform:none!important;animation:spreadReveal .9s ease-out both;animation-delay:.15s}
  .volume-cover{display:flex!important;inset:8px 8px 8px 50%;z-index:8;
    transform-origin:left center;backface-visibility:hidden;
    background:linear-gradient(95deg,#1d1712 0%,#60432e 10%,#412b20 82%,#24160f 100%);
    border:7px ridge #b08a53;border-radius:3px 13px 13px 3px;
    box-shadow:inset 10px 0 25px #0008,8px 12px 25px #0009;
    animation:realisticBookOpen 1.15s cubic-bezier(.28,.07,.18,1) both;
  }
  .volume-cover #volumeCoverTitle{font-size:clamp(17px,2.2vw,27px);text-align:center;line-height:1.2}
  .turning-leaves{display:none!important}
  .book-overlay.closing .volume-cover{animation:realisticBookClose .65s ease-in both!important}
  .book-overlay.closing .volume-pages{animation:spreadDepart .65s ease-in both!important}
}
@keyframes realisticBookOpen{
  0%{transform:perspective(1600px) rotateY(0);opacity:1;visibility:visible}
  65%{opacity:1;visibility:visible}
  99%{transform:perspective(1600px) rotateY(-165deg);opacity:.8;visibility:visible}
  100%{transform:perspective(1600px) rotateY(-165deg);opacity:0;visibility:hidden}
}
@keyframes realisticBookClose{
  0%{transform:perspective(1600px) rotateY(-165deg);opacity:0;visibility:visible}
  20%{opacity:1}
  100%{transform:perspective(1600px) rotateY(0);opacity:1;visibility:visible}
}
@keyframes spreadReveal{from{opacity:.55;filter:brightness(.65)}to{opacity:1;filter:brightness(1)}}
@keyframes spreadDepart{to{opacity:.5;filter:brightness(.65)}}
/* Visually useful local fallback, never a blank panel or broken image icon. */
.published-cover-frame{position:relative;min-height:215px}
.published-cover-fallback{width:160px;min-height:220px;height:auto;max-height:none;padding:15px 12px;
  flex-direction:column;gap:17px;text-align:center;
  background:linear-gradient(95deg,#0d100fb8,transparent 18%,#ffffff0b 45%,#0005 100%),var(--jacket-color,#314638);
  color:#ead2a1;border:5px double #b99a62;box-shadow:4px 7px 14px #4d332b77,inset 7px 0 8px #0006;
  overflow-wrap:anywhere}
.published-cover-fallback .fallback-mark{font:9px/1.3 Georgia,serif;letter-spacing:.12em;color:#cfb985}
.published-cover-fallback .fallback-title{font:600 clamp(15px,2vw,22px)/1.12 Georgia,serif;text-transform:uppercase}
.published-cover-fallback .fallback-author{font:italic 13px/1.3 Georgia,serif;color:#ead5ad}
@media(max-width:650px){
  .volume-cover{display:none!important}
  .published-cover-fallback{min-height:195px;width:145px}
}
@media(prefers-reduced-motion:reduce){
  .volume-cover{display:none!important}
  .volume-pages{animation:none!important}
}

/* V17.3 Preview 3 — photographic architectural direction; preserve all existing wheel RPC behavior. */
:root{--gold:#d3b16e;--ink:#f4e9d3;--muted:#d3c2a5;--line:#866b42}
body.in-library{background:#1b211a;background-image:linear-gradient(90deg,#0c1712c9,#18261eb8),url('reading-room-photo.jpg');background-size:cover;background-position:center;background-attachment:fixed}
body.in-library:has(#librarySection:not(.hidden)){background-image:linear-gradient(90deg,#09140ed9,#172319c8),url('library-hall-photo.jpg')}
body.in-library:has(#wheelSection:not(.hidden)){background-image:linear-gradient(90deg,#11160dba,#2c291db8),url('reading-room-photo.jpg')}
.room-header{background:linear-gradient(90deg,#13271fee,#34291fe8);max-width:none;padding-left:max(24px,calc((100vw - 1156px)/2));padding-right:max(24px,calc((100vw - 1156px)/2));border-bottom:1px solid #bb96544a}
.room-nav{background:#0e221be8;border-color:#aa88554f}
.room-content{position:relative}
.hero-intro{text-shadow:0 2px 20px #000d}
.current-book,.reading-completion-panel,.countdown-panel,.feature-card,.official-fate-panel,.fate-leadership-note{background:linear-gradient(130deg,#12221ce8,#30251bea)!important;backdrop-filter:blur(8px);border-color:#b58a4d9c!important;box-shadow:0 18px 50px #0007,inset 0 0 0 1px #c6a66c16}
.library-heading{text-shadow:0 3px 18px #000}
.library-case{background:linear-gradient(90deg,#25140b,#59381e 3%,#27190f 97%,#654026);border:11px ridge #8c5b31;box-shadow:inset 0 16px 24px #000c,0 16px 30px #000b,inset 0 0 0 4px #b68a4d55}
.library-case:before{content:'❦   TBC   ❦';display:block;text-align:center;font:16px Georgia,serif;letter-spacing:.22em;color:#d1aa69;text-shadow:0 2px 3px #000;padding:4px 0 10px;border-bottom:2px groove #956b3d}
.library-shelf-edge{background:linear-gradient(#d0a36a,#946238 20%,#4b2b19 68%,#1a0e08);border-top:5px solid #d0a16c;box-shadow:0 11px 17px #000b}
.library-round{filter:drop-shadow(0 12px 18px #0009)}
/* Always show the illustrated jacket; remote publisher cover overlays only after confirmed load. */
.published-cover-frame{position:relative;min-height:225px;isolation:isolate}
.published-cover-fallback{display:flex!important;position:relative;z-index:1;min-height:215px}
.published-cover-fallback.hidden{display:flex!important}
.published-cover-image{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);max-height:245px;max-width:100%}
.published-cover-image.hidden{display:none!important}
/* Real photographic entrance: a slow approach followed by a gentle push into the doorway. */
.entrance-scene{background:linear-gradient(#09160b33,#0b0e0b88),url('entrance-doors.jpg') center center / cover no-repeat;filter:saturate(1.08);transition:opacity 1.15s ease}
.entrance-arch{display:none!important}
body:not(.in-library) .card{background:#0c1d18e8;backdrop-filter:blur(13px);border:1px solid #bc9a60;box-shadow:0 25px 90px #000b}
body:not(.in-library) .entrance-scene{animation:cinematicApproach 5.5s ease-out both}
body.entrance-opening .entrance-scene{animation:cinematicEnter 2.5s ease-in-out forwards}
@keyframes cinematicApproach{from{transform:scale(1.01);filter:brightness(.75)}to{transform:scale(1.095);filter:brightness(1)}}
@keyframes cinematicEnter{0%{transform:scale(1.09);opacity:1}65%{transform:scale(1.35);opacity:.96;filter:brightness(.8)}100%{transform:scale(1.48);opacity:0;filter:brightness(.25)}}
/* Deliberate heavy hardcover movement, slower in both directions. */
@media(min-width:651px){
 .volume-cover{animation-duration:1.55s!important;animation-timing-function:cubic-bezier(.32,.03,.16,1)!important}
 .book-overlay.closing .volume-cover{animation-duration:1.25s!important;animation-timing-function:cubic-bezier(.42,0,.2,1)!important}
 .book-overlay.closing .volume-pages{animation-duration:1.25s!important}
 .volume-pages{animation-duration:1.3s!important}
}
@media(max-width:650px){body.in-library{background-attachment:scroll;background-position:center top}.entrance-scene{background-position:center}}
@media(prefers-reduced-motion:reduce){body:not(.in-library) .entrance-scene,body.entrance-opening .entrance-scene{animation:none!important}}

/* V17.3 Preview 4 — let the photographic rooms breathe. */
body.in-library{background-image:linear-gradient(90deg,rgba(10,19,14,.38),rgba(20,26,18,.25)),url('reading-room-photo.jpg')!important}
body.in-library:has(#librarySection:not(.hidden)){background-image:linear-gradient(90deg,rgba(10,20,15,.35),rgba(20,26,18,.22)),url('library-hall-photo.jpg')!important}
body.in-library:has(#wheelSection:not(.hidden)){background-image:linear-gradient(90deg,rgba(10,20,15,.27),rgba(20,26,18,.18)),url('reading-room-photo.jpg')!important}
.current-book,.reading-completion-panel,.countdown-panel,.feature-card,.official-fate-panel,.fate-leadership-note{background:linear-gradient(125deg,rgba(13,29,22,.83),rgba(42,31,22,.80))!important;backdrop-filter:blur(3px)!important}
.hero-intro{text-shadow:0 2px 15px #000,0 0 22px #0009}
.library-heading{text-shadow:0 2px 12px #000,0 0 28px #000}
.fate-photo-frame{border-color:#b18a55;box-shadow:0 20px 70px #0009,0 0 0 2px #e0ba6c33}
/* Distinct wheel chamber: sunlit antique wood and brass, retaining the original aligned disc. */
@media(max-width:650px){body.in-library{background-attachment:scroll!important}}

/* V17.3 Preview 5 — author bands, unobscured background and coordinated Fate imagery */
.library-spine{overflow:hidden}
.library-spine .spine-lettering{top:calc((var(--height) - 80px)/2);width:calc(var(--height) - 128px);max-width:none}
.library-spine .spine-byline{position:absolute;left:5px;right:5px;bottom:24px;top:auto;width:auto;height:61px;transform:none;display:flex;align-items:center;justify-content:center;white-space:normal;overflow:hidden;line-height:1.18;text-align:center;word-break:normal;hyphens:auto;font:9px/1.18 Georgia,serif;color:#f3ddb3;padding:3px 1px;border-top:1px solid #d5ad7366;background:#100b0926}
/* Keep new illustrated scene and its independent rotating face registered together. */
.fate-scene .fate-photo{object-fit:fill}
.practice-wheel-disc{left:37.9%;top:49.6%;width:55.5%;filter:drop-shadow(0 1px 2px #0007)}
.practice-pointer{left:37.9%;top:1.5%;width:3.2%;height:13%}
@media(max-width:620px){.fate-scene{aspect-ratio:3/2}.fate-scene .fate-photo{object-fit:fill}.practice-wheel-disc{left:37.9%;top:49.6%;width:55.5%}.practice-pointer{left:37.9%;top:1.5%;width:3.2%;height:13%}}

/* Preview 6: measured, variable-height book spines; author bands cannot overlap titles. */
.library-spines{min-height:460px;align-items:flex-end}
.library-spine{flex-basis:58px;overflow:hidden}
.library-spine .spine-lettering{
 position:absolute;left:7px;right:7px;top:19px;bottom:104px;
 width:auto;height:auto;transform:rotate(180deg);
 writing-mode:vertical-rl;text-orientation:mixed;
 display:flex;align-items:center;justify-content:center;
 white-space:nowrap;overflow:hidden;text-align:center;
 font-family:Georgia,serif;font-weight:700;line-height:1;
}
.library-spine .spine-byline{
 position:absolute;left:4px;right:4px;bottom:20px;top:auto;
 width:auto;height:78px;transform:none;
 display:flex;align-items:center;justify-content:center;
 padding:7px 2px 3px;border-top:1px solid #d5ad7399;
 font-family:Georgia,serif;font-size:9px;line-height:1.22;
 white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:auto;
 text-align:center;overflow:hidden;
}
/* Face of the new photographic wheel: only the face rotates; the frame stays still. */
.practice-wheel-disc{left:50.65%;top:39.25%;width:38.6%;filter:none}
.practice-wheel-disc>img{border-radius:50%;object-fit:contain}
.practice-pointer{visibility:hidden!important} /* Pointer is part of the stationary brass frame. */
@media(max-width:620px){
 .library-spines{min-height:460px}
 .library-spine{flex-basis:55px}
 .fate-scene{aspect-ratio:3/2}
 .fate-scene .fate-photo{object-fit:fill}
 .practice-wheel-disc{left:50.65%;top:39.25%;width:38.6%}
}

/* Preview 7: measured rotated titles, entirely separate from the author compartment. */
.library-spines{min-height:445px}
.library-spine{flex-basis:58px}
.library-spine .spine-lettering{
 position:absolute;top:calc((var(--height) - 105px)/2);left:50%;right:auto;bottom:auto;
 width:calc(var(--height) - 145px);height:24px;
 display:block;writing-mode:horizontal-tb;text-orientation:mixed;
 transform:translate(-50%,-50%) rotate(-90deg);transform-origin:center center;
 line-height:24px;white-space:nowrap;overflow:visible;text-align:center;
 font-family:Georgia,serif;font-weight:bold;letter-spacing:0;
}
.library-spine .spine-byline{bottom:20px;top:auto;height:78px}
/* Small optical correction: center the spinning face inside the existing brass rim. */
.practice-wheel-disc{top:39.95%}
@media(max-width:620px){.library-spines{min-height:445px}.practice-wheel-disc{top:39.95%}}

/* Preview 8: physically separate title and author compartments.
   Vertical writing keeps the full measured title inside the spine without
   the transform-origin/centering overflow that affected previews 5–7. */
.library-spines{min-height:455px;align-items:flex-end}
.library-spine{flex-basis:62px;min-width:62px;overflow:hidden}
.library-spine .spine-lettering{
 position:absolute!important;left:7px!important;right:7px!important;
 top:20px!important;bottom:111px!important;
 width:auto!important;height:auto!important;
 transform:rotate(180deg)!important;transform-origin:center center!important;
 writing-mode:vertical-rl!important;text-orientation:mixed!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 white-space:nowrap!important;overflow:hidden!important;
 text-align:center!important;line-height:1.15!important;
 padding:0 1px!important;
}
.library-spine .spine-byline{
 position:absolute!important;left:4px!important;right:4px!important;
 top:auto!important;bottom:19px!important;height:86px!important;
 transform:none!important;width:auto!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 white-space:normal!important;overflow:hidden!important;
 border-top:1px solid #d5ad7399;
 padding:5px 2px!important;line-height:1.16!important;
}
/* Optical vertical adjustment only. Do not alter wheel spin mechanics. */
.practice-wheel-disc{top:40.35%!important}
@media(max-width:620px){.library-spines{min-height:455px}.library-spine{flex-basis:60px;min-width:60px}.practice-wheel-disc{top:40.35%!important}}

/* Preview 9: final geometry is established behind the cinematic entrance.
   Keep the existing photographic animation; prevent the sign-in card's narrow
   width from being visible during the first frames of the transition. */
body.entrance-pending .shell{display:block!important;padding:0!important;min-height:100vh!important}
body.entrance-pending .card{width:100%!important;max-width:none!important;min-height:100vh!important;border:0!important;border-radius:0!important;padding:0!important;background:transparent!important}
body.entrance-pending #memberPanel{visibility:hidden!important}
body.entrance-pending .entrance-scene{z-index:105!important;opacity:1!important}
body.entrance-pending .entrance-skip{z-index:110!important;display:block!important}
body.entrance-pending .shell{visibility:hidden!important}
body.entrance-done .shell{visibility:visible!important}
/* Preview 9: a true bounded vertical text region. No transform, so scrollHeight
   reports the title's actual height and can be checked against available space. */
.library-spines{min-height:555px!important;align-items:flex-end!important}
.library-spine{flex-basis:62px!important;min-width:62px!important;overflow:hidden!important}
.library-spine .spine-lettering{
 position:absolute!important;top:24px!important;bottom:126px!important;
 left:6px!important;right:6px!important;width:auto!important;height:auto!important;
 writing-mode:vertical-rl!important;text-orientation:mixed!important;
 transform:rotate(180deg)!important;transform-origin:center!important;
 display:flex!important;justify-content:center!important;align-items:center!important;
 white-space:nowrap!important;overflow:hidden!important;
 line-height:1.12!important;padding:0!important;box-sizing:border-box!important;
}
.library-spine .spine-byline{
 position:absolute!important;bottom:18px!important;top:auto!important;
 left:4px!important;right:4px!important;height:94px!important;
 transform:none!important;width:auto!important;overflow:hidden!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 white-space:normal!important;text-align:center!important;line-height:1.2!important;
 padding:5px 2px!important;box-sizing:border-box!important;
}
@media(max-width:620px){.library-spines{min-height:555px!important}.library-spine{flex-basis:60px!important;min-width:60px!important}}

/* Preview 10: final spine geometry, deliberately overrides all legacy experiments. */
.library-spines{min-height:555px!important;align-items:flex-end!important}
.library-spine{flex:0 0 62px!important;min-width:62px!important;height:var(--height)!important;overflow:hidden!important}
.library-spine .spine-lettering{
 position:absolute!important;top:34px!important;bottom:133px!important;left:8px!important;right:8px!important;
 width:auto!important;height:auto!important;max-width:none!important;
 writing-mode:vertical-rl!important;text-orientation:mixed!important;transform:rotate(180deg)!important;
 white-space:nowrap!important;display:flex!important;align-items:center!important;justify-content:center!important;
 overflow:hidden!important;padding:0!important;line-height:1!important;box-sizing:border-box!important;
}
.library-spine .spine-byline{
 position:absolute!important;top:auto!important;bottom:20px!important;left:4px!important;right:4px!important;
 width:auto!important;height:91px!important;transform:none!important;white-space:normal!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 overflow:hidden!important;padding:3px!important;box-sizing:border-box!important;line-height:1.18!important;text-align:center!important;
}
@media(max-width:620px){.library-spine{flex-basis:60px!important;min-width:60px!important}}
/* Preview-only Open Library cover selector. */
.cover-change-button{margin:12px 0 0;padding:8px 12px;border:1px solid #8c693c;border-radius:4px;background:#e7d5b4;color:#4a301b;cursor:pointer;font:12px Georgia,serif}
.cover-chooser{position:fixed;inset:0;z-index:150;background:#080806df;overflow:auto;display:flex;align-items:center;justify-content:center;padding:20px}
.cover-chooser.hidden{display:none!important}
.cover-chooser-inner{width:min(820px,100%);max-height:90vh;overflow:auto;background:#1d281f;color:#f4e5c8;border:2px solid #ac8a52;padding:20px;border-radius:8px;box-shadow:0 18px 50px #000}
.cover-chooser-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.cover-chooser-head h3{font:normal 26px Georgia,serif;margin:0}.cover-chooser-head button{background:#4d3825;color:#fff1d6;border:1px solid #c8a779;padding:8px 15px;cursor:pointer}
.cover-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;min-height:70px;margin:20px 0}.cover-choice{background:#32281d;border:1px solid #ac8a52;padding:5px;cursor:pointer}.cover-choice:hover,.cover-choice:focus-visible{outline:3px solid #e0bb77}.cover-choice img{display:block;width:100%;height:160px;object-fit:contain}
.cover-upload-label{display:block;margin:15px 0}.cover-upload-label input{display:block;margin:8px 0;max-width:100%}.cover-preview-warning{font-size:12px;color:#d3b98a}

/* Preview 11: Published cover and decorative jacket are mutually exclusive.
   Overrides the older preview rule that forced the jacket visible under every image. */
.published-cover-frame .published-cover-fallback.hidden{display:none!important}
.published-cover-frame .published-cover-fallback:not(.hidden){display:flex!important}
.published-cover-frame .published-cover-image:not(.hidden){display:block}

/* Preview 12: higher-resolution entrance background; existing doors and timing untouched. */
.entrance-scene{background-image:linear-gradient(#09160b33,#0b0e0b88),url('entrance-doors-hires.jpg')}
/* The published cover replaces the decorative jacket only after a valid image loads. */
.book-art{position:relative;overflow:hidden}
.reading-room-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.reading-room-cover.hidden{display:none!important}
.book-art:has(.reading-room-cover:not(.hidden)){padding:0}
.book-art:has(.reading-room-cover:not(.hidden)) .book-art-inner{display:none}

/* V17.3 Preview 13 — Members' Gallery: visual concept, no real member data */
.members-gallery{color:#e7d6b8}
.members-gallery-heading{text-align:center;margin:0 auto 44px;max-width:760px}
.members-gallery-heading h2{font:600 clamp(46px,6vw,76px)/1.1 "Cormorant Garamond",Georgia,serif;margin:12px 0}
.members-gallery-heading>p:not(.eyebrow){font:italic 24px "Cormorant Garamond",Georgia,serif;color:#c4af91}
.members-preview-label{display:inline-block;border:1px solid #a58750;padding:10px 14px;margin-top:22px;font:10px/1.5 Inter,sans-serif;letter-spacing:.12em;color:#c7a86d}
.member-portrait-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.member-portrait-card{min-width:0;display:flex;align-items:center;flex-direction:column;background:linear-gradient(145deg,#2d241b,#171914);border:1px solid #79603c;padding:17px 17px 22px;color:#ecdcb9;cursor:pointer;box-shadow:0 14px 34px #0006}
.member-portrait-card:hover,.member-portrait-card:focus-visible{border-color:#e4c486;transform:translateY(-3px)}
.portrait-art{display:grid;place-items:center;position:relative;width:100%;aspect-ratio:4/5;border:10px ridge #a37d45;box-shadow:inset 0 0 55px #0008,0 5px 15px #0008}
.portrait-art:before{content:"";position:absolute;inset:12px;border:1px solid #dec18c70}
.portrait-art span{font:italic 80px Georgia,serif;color:#f4e2ba99;text-shadow:0 3px 12px #000}
.portrait-a{background:radial-gradient(ellipse at 50% 25%,#766147,#28382f 65%,#0d1b18)}
.portrait-b{background:radial-gradient(ellipse at 50% 25%,#87674b,#3c2831 65%,#1c151d)}
.portrait-c{background:radial-gradient(ellipse at 50% 25%,#777154,#233a44 65%,#111d23)}
.portrait-nameplate{font:600 30px "Cormorant Garamond",Georgia,serif;margin-top:17px}
.portrait-role{font:italic 17px "Cormorant Garamond",Georgia,serif;color:#c5a97e;margin-top:3px}
.portrait-link{font:11px Inter,sans-serif;color:#dfc48c;margin-top:20px;letter-spacing:.05em}
.member-profile-preview{margin:45px auto 0;max-width:970px;padding:35px;border:1px solid #977647;background:linear-gradient(140deg,#34271e,#15271f);box-shadow:0 12px 40px #0007}
.member-profile-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.member-profile-top h3{font:600 50px "Cormorant Garamond",Georgia,serif;margin:8px 0}
.member-profile-top p:not(.eyebrow){font:19px/1.6 "Cormorant Garamond",Georgia,serif;max-width:610px;color:#d6c6aa}
.member-profile-subtitle{font:small-caps 16px Georgia,serif;color:#d6b982;margin-top:28px}
.member-genre-tags{display:flex;gap:9px;flex-wrap:wrap}
.member-genre-tags span{border:1px solid #b5965d;padding:7px 12px;font-size:12px}
.member-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:32px}
.member-stats-grid>div{display:flex;flex-direction:column;align-items:center;padding:23px 10px;background:#0b171480;border:1px solid #8b6a3e80}
.member-stats-grid strong{font:600 35px "Cormorant Garamond",Georgia,serif}
.member-stats-grid span{font-size:11px;color:#cbb79a;margin-top:8px}
.member-tastes{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}
.member-tastes>div{border-top:1px solid #b5955b;padding-top:10px}
.member-tastes h4{font:600 22px "Cormorant Garamond",Georgia,serif}
.member-tastes p{font:16px/1.5 "Cormorant Garamond",Georgia,serif;color:#d1bda0}
.member-demo-disclaimer,.members-gallery-footnote{text-align:center;color:#b9a489;font-size:12px;line-height:1.6;margin-top:30px}
@media(max-width:700px){.member-portrait-grid{grid-template-columns:1fr;max-width:380px;margin:auto}.member-profile-top{flex-direction:column}.member-profile-top h3{font-size:39px}.member-profile-preview{padding:22px}.member-tastes{grid-template-columns:1fr}.member-stats-grid strong{font-size:25px}}

/* Revised Preview 15: original entrance framing restored. */
/* Gallery wall: its own room, not the Reading Room background. */
body.in-library:has(#membersSection:not(.hidden)){
 background-color:#20150f!important;
 background-image:
  linear-gradient(90deg,rgba(13,9,7,.26),rgba(0,0,0,0) 25%,rgba(0,0,0,0) 75%,rgba(13,9,7,.26)),
  repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 5px),#140d0a calc(25% - 4px),#5e3820 calc(25% - 1px),#a16b3a 25%,#1b100b calc(25% + 5px)),
  repeating-linear-gradient(0deg,#27190f 0,#342117 15px,#452d1b 110px,#24150e 235px)!important;
 background-size:100% 100%,100% 100%,100% 100%!important;
 background-attachment:fixed!important;
}
.members-gallery{max-width:1380px;padding:66px 36px 80px}
.members-gallery-heading{position:relative;margin-bottom:65px;padding:22px 20px 30px;background:linear-gradient(90deg,transparent,#1b100bcf 17%,#1b100bcf 83%,transparent)}
.members-gallery-heading h2{color:#f2d9a3;text-shadow:0 4px 14px #000}
.member-portrait-grid{gap:38px;align-items:start}
.member-portrait-card{
 position:relative;
 padding:72px 19px 27px;
 overflow:visible;
 border:0;
 border-radius:0;
 background:transparent;
 box-shadow:none;
 transition:transform .25s ease,filter .25s ease;
}
.member-portrait-card:hover,.member-portrait-card:focus-visible{border:0;transform:translateY(-4px);outline:1px solid #b9985b;outline-offset:5px}
.member-portrait-card:after{
 content:"";
 position:absolute;
 top:93px;left:8%;right:8%;height:78%;
 pointer-events:none;
 background:radial-gradient(ellipse at 50% 0%,rgba(255,218,144,.20),transparent 67%);
 mix-blend-mode:screen;
}
.portrait-art{
 border:14px ridge #b58b48;
 outline:2px solid #dfb76c;
 outline-offset:4px;
 box-shadow:
  0 0 0 8px #513115,
  0 0 0 10px #a2793d,
  inset 0 0 0 8px #392311,
  inset 0 0 48px #0008,
  12px 20px 22px #000b;
 border-radius:2px;
}
.portrait-art:before{inset:8px;border:3px double #e3bd78}
.portrait-art:after{
 content:"❧";
 position:absolute;
 bottom:10px;left:50%;transform:translateX(-50%);
 color:#d5a75d;
 font:32px Georgia,serif;
 opacity:.85;
}
.gallery-picture-light{
 position:absolute;
 top:4px;
 left:50%;
 width:76%;
 height:70px;
 transform:translateX(-50%);
 z-index:4;
 pointer-events:none;
 filter:drop-shadow(2px 4px 3px #000a);
}
.picture-light-mount{
 position:absolute;left:50%;top:0;
 width:23px;height:23px;transform:translateX(-50%);
 border-radius:50%;
 background:radial-gradient(circle at 34% 28%,#f7db8b,#a06b2d 55%,#53310e 80%);
 border:2px solid #b48a4b;
 box-shadow:inset 0 0 0 3px #5b391a;
}
.picture-light-arm{
 position:absolute;top:13px;left:50%;
 width:4px;height:21px;transform:translateX(-50%);
 background:linear-gradient(90deg,#704a22,#f8db84,#8a5c24);
}
.picture-light-bar{
 position:absolute;top:30px;left:4%;right:4%;height:17px;
 border-radius:10px 10px 6px 6px;
 background:linear-gradient(180deg,#fff0a7 0%,#d2a34b 19%,#9b6b2f 65%,#4b2c11 100%);
 border:1px solid #dfb96c;
 box-shadow:0 4px 5px #0006,0 11px 19px #f2b75b36;
}
.picture-light-bar:after{
 content:"";position:absolute;top:16px;left:3%;right:3%;height:105px;
 background:linear-gradient(180deg,rgba(255,224,158,.19),rgba(255,213,135,0));
 clip-path:polygon(8% 0,92% 0,100% 100%,0 100%);
}
.portrait-nameplate{
 display:block;
 padding:9px 16px 7px;
 margin-top:26px;
 background:linear-gradient(125deg,#6c451d,#e1bc74 22%,#ae7f38 65%,#6a421d);
 color:#25170c;
 border:2px ridge #e3c17c;
 box-shadow:2px 5px 10px #000b;
 text-shadow:0 1px #fff6;
 font-size:clamp(23px,2.4vw,31px);
}
.portrait-role{margin-top:11px;text-shadow:0 2px 5px #000;font-size:19px}
.portrait-link{color:#eed4a0;text-shadow:0 2px 5px #000}
.member-profile-preview{
 background:linear-gradient(145deg,rgba(52,36,24,.96),rgba(21,34,26,.96));
 border:7px ridge #987141;
 box-shadow:0 0 0 2px #dfb86c,0 20px 45px #000b;
}
.members-gallery-footnote{background:#1b100bcc;padding:12px}
@media(max-width:700px){
 body.in-library:has(#membersSection:not(.hidden)){background-attachment:scroll!important}
 .members-gallery{padding:38px 19px 60px}
 .member-portrait-grid{gap:15px}
 .member-portrait-card{padding-top:76px}
 .members-gallery-heading{margin-bottom:38px}
}

/* Preview 15: photographic, not CSS-illustrated, portrait hall.
   Photo assets are sample animal portraits, never actual members. */
body.in-library:has(#membersSection:not(.hidden)){
 background-color:#24160e!important;
 background-image:
 linear-gradient(90deg,rgba(15,8,4,.72),rgba(18,10,6,.1) 20%,rgba(18,10,6,.1) 80%,rgba(15,8,4,.72)),
 linear-gradient(0deg,rgba(19,11,6,.52),rgba(28,17,9,.10)),
 url('portrait-wall.jpg')!important;
 background-repeat:no-repeat,no-repeat,repeat!important;
 background-size:cover,cover,780px 240px!important;
 background-attachment:fixed!important;
}
.members-gallery{max-width:1400px;padding-top:62px}
.members-gallery-heading{background:linear-gradient(90deg,transparent,#1d1209d9 16%,#1d1209d9 84%,transparent)}
.member-portrait-grid{gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1240px;margin:auto}
.member-portrait-card{
 background:none!important;
 box-shadow:none!important;
 padding:0 6px 24px!important;
 border:none!important;
}
.member-portrait-card:after{display:none!important}
.photo-gallery-portrait{
 display:block;
 width:100%;
 aspect-ratio:350/387;
 background-size:100% 100%;
 background-repeat:no-repeat;
 box-shadow:0 15px 22px #000b;
 filter:saturate(.92);
}
.photo-gallery-1{background-image:url('portrait-photo-1.jpg')}
.photo-gallery-2{background-image:url('portrait-photo-2.jpg')}
.photo-gallery-3{background-image:url('portrait-photo-3.jpg')}
.member-portrait-card .portrait-art{display:none!important}
.member-portrait-card .portrait-nameplate{
 position:relative;
 margin:-6px auto 0;
 width:76%;
 z-index:1;
 font:600 clamp(19px,2.1vw,27px) Georgia,serif;
 background:linear-gradient(110deg,#62401e,#d2a960 21%,#b48a49 75%,#674321);
 border:1px solid #e1c58a;
 box-shadow:0 5px 12px #0009;
}
.member-portrait-card .portrait-role{margin-top:15px;color:#eed1a1;font-size:17px}
.member-portrait-card .portrait-link{margin-top:12px;color:#f3dcb0}
.member-portrait-card:hover .photo-gallery-portrait,
.member-portrait-card:focus-visible .photo-gallery-portrait{filter:saturate(1.02) brightness(1.07)}
.member-profile-preview{
 background:linear-gradient(125deg,rgba(25,21,16,.97),rgba(20,32,25,.96))!important;
 border:2px solid #9b7640!important;
 outline:5px solid #3b2411;
 box-shadow:0 16px 50px #000c!important;
}
@media(max-width:700px){
 body.in-library:has(#membersSection:not(.hidden)){background-attachment:scroll!important}
 .member-portrait-grid{grid-template-columns:1fr!important;max-width:360px}
 .member-portrait-card .portrait-nameplate{font-size:23px}
}

/* Preview 15 final entrance: user-approved natural-light hallway artwork; original entrance motion retained. */
.entrance-scene{background-image:url("entrance-approved-natural-light.png")!important;background-position:center center!important;background-size:cover!important;filter:none}

/* Preview 16: keep approved photographic gallery wall and light/frame assets;
   replace sample animal portraits with honest initials until members upload photos. */
.member-portrait-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.member-monogram{
 display:flex!important;align-items:center;justify-content:center;
 background-image:linear-gradient(135deg,rgba(12,18,15,.86),rgba(43,28,20,.90)),url('portrait-photo-1.jpg')!important;
 background-position:center!important;background-size:cover!important;
 color:#e5c990;font:italic clamp(34px,5vw,66px) Georgia,serif;
 border:11px ridge #aa7d3f;outline:2px solid #d7ae65;outline-offset:-17px;
 box-shadow:inset 0 0 35px #0009,0 16px 25px #000b;
 text-shadow:0 4px 10px #000;
}
.member-portrait-card .portrait-nameplate{width:90%;font-size:clamp(14px,1.6vw,22px)}
.member-editor{margin-top:26px;padding:20px;border:1px solid #ab8854;background:#141a16e8}
.member-editor h4{font:600 26px Georgia,serif;margin:0 0 8px}
.member-editor p{font-size:13px;color:#d2bea0}
.member-editor label{display:block;margin:15px 0;color:#e8d5b1;font-size:14px}
.member-editor textarea,.member-editor input:not([type=file]){
 display:block;width:100%;max-width:600px;margin-top:8px;padding:12px;
 background:#efe3c8;color:#24180e;border:1px solid #9a7b4a;border-radius:3px;
 font:15px Georgia,serif;
}
.member-editor input[type=file]{display:block;margin-top:8px;max-width:100%}
@media(max-width:900px){.member-portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.member-portrait-grid{grid-template-columns:1fr;max-width:340px}.member-portrait-card .portrait-nameplate{font-size:23px}}

/* Preview 17: preserve the photographic gilded frames and brass picture lamps
   from the approved photorealistic gallery imagery. Overlay only the canvas. */
.member-portrait-card .realistic-framed-portrait{
 position:relative;display:block!important;
 width:100%;aspect-ratio:350/387;
 background-repeat:no-repeat!important;
 background-size:100% 100%!important;
 border:0!important;outline:0!important;
 box-shadow:0 14px 25px #000a!important;
 overflow:hidden;
}
.realistic-framed-portrait.photo-gallery-1{background-image:url('portrait-photo-1.jpg')!important}
.realistic-framed-portrait.photo-gallery-2{background-image:url('portrait-photo-2.jpg')!important}
.realistic-framed-portrait.photo-gallery-3{background-image:url('portrait-photo-3.jpg')!important}
.realistic-portrait-inset{
 position:absolute;left:24%;right:23.5%;top:26%;bottom:8.6%;
 display:flex;align-items:center;justify-content:center;
 background:radial-gradient(ellipse at 50% 30%,#4c4b40 0%,#27332f 40%,#151b1a 85%);
 color:#d7bc85;font:italic clamp(24px,3vw,55px) Georgia,serif;
 text-shadow:0 3px 9px #000b;
 box-shadow:inset 0 0 24px 12px #090e0dd1;
 overflow:hidden;
}
.realistic-portrait-inset.has-member-photo{
 background-size:cover;background-position:center;
 box-shadow:inset 0 0 12px #0006;
}
.member-portrait-card:hover .realistic-framed-portrait,
.member-portrait-card:focus-visible .realistic-framed-portrait{filter:brightness(1.05)}

/* Preview 18: inactive portraits retain the approved photographic frames.
   The picture-light fixture stays, but its warm illumination is extinguished. */
.gallery-section-heading{font:600 clamp(26px,3vw,39px) "Cormorant Garamond",Georgia,serif;text-align:center;color:#e8cb91;margin:30px 0 22px;text-shadow:0 3px 8px #000}
.quiet-corner{margin-top:70px;padding-top:22px;border-top:1px solid #9d7b4e88;background:linear-gradient(180deg,#130d0966,transparent 65%)}
.quiet-corner-intro{text-align:center;font:italic 19px Georgia,serif;color:#c0ad94;margin:0 0 25px}
.portrait-inactive .realistic-framed-portrait{filter:brightness(.57) saturate(.68)!important}
.portrait-inactive:hover .realistic-framed-portrait,.portrait-inactive:focus-visible .realistic-framed-portrait{filter:brightness(.69) saturate(.76)!important}
.portrait-inactive .realistic-portrait-inset{filter:brightness(.84)}
.portrait-inactive .portrait-nameplate{filter:brightness(.72) saturate(.65)}
.portrait-inactive .portrait-role,.portrait-inactive .portrait-link{color:#b9a891}
/* Lamp artwork is baked into the photograph. A dark mask removes the visible
   warm light; fixture remains visible. This is a preview, not a separate lamp layer. */
.portrait-inactive .realistic-framed-portrait:before{content:"";position:absolute;z-index:2;left:6%;right:6%;top:0;height:27%;background:linear-gradient(180deg,#140e09c9,#140e098c 65%,transparent);pointer-events:none}
.portrait-lamp-status{display:block;margin-top:9px;font:11px Georgia,serif;letter-spacing:.07em;color:#d8bd87}
.portrait-inactive .portrait-lamp-status{color:#9f998d}
.gallery-roster-notice{text-align:center;color:#d7bd93;font-size:12px;line-height:1.6;margin:22px auto;max-width:720px}

/* Preview 20: mobile-safe portrait canvas. The photographic gilded frame is
   baked into each image; place the editable canvas strictly INSIDE its opening.
   Per-photo coordinates compensate for different original crops. */
.member-portrait-card .realistic-framed-portrait{aspect-ratio:auto!important;}
.realistic-framed-portrait.photo-gallery-1{aspect-ratio:350 / 387!important}
.realistic-framed-portrait.photo-gallery-2{aspect-ratio:345 / 387!important}
.realistic-framed-portrait.photo-gallery-3{aspect-ratio:340 / 387!important}
.member-portrait-card .realistic-portrait-inset{
 top:35.5%!important;bottom:11.2%!important;
 left:27%!important;right:26%!important;
 box-sizing:border-box!important;
}
.realistic-framed-portrait.photo-gallery-2 .realistic-portrait-inset,
.realistic-framed-portrait.photo-gallery-3 .realistic-portrait-inset{
 left:25%!important;right:25%!important;
}

/* Preview 21: original animal paintings physically removed from frame assets.
   The editable image fills the opening exactly; no hidden image can peek out. */
.member-portrait-card .realistic-framed-portrait.photo-gallery-1 .realistic-portrait-inset{left:24.57%!important;right:21.72%!important;top:34.37%!important;bottom:8.79%!important}
.member-portrait-card .realistic-framed-portrait.photo-gallery-2 .realistic-portrait-inset{left:23.77%!important;right:19.71%!important;top:34.37%!important;bottom:8.79%!important}
.member-portrait-card .realistic-framed-portrait.photo-gallery-3 .realistic-portrait-inset{left:23.53%!important;right:20.00%!important;top:34.37%!important;bottom:8.79%!important}

/* Preview 22: nudge frame variants 2 and 3 photo canvas left ~3px,
   without changing the opening size or the approved frame artwork. */
.member-portrait-card .realistic-framed-portrait.photo-gallery-2 .realistic-portrait-inset{left:22.87%!important;right:20.61%!important}
.member-portrait-card .realistic-framed-portrait.photo-gallery-3 .realistic-portrait-inset{left:22.63%!important;right:20.90%!important}

/* Preview 23: align editable canvases to measured INNER edges of each actual frame asset.
   Replaces cumulative nudges with explicit per-frame coordinates. */
.member-portrait-card .realistic-framed-portrait.photo-gallery-2 .realistic-portrait-inset{left:22.32%!important;right:19.42%!important;top:34.11%!important;bottom:8.27%!important}
.member-portrait-card .realistic-framed-portrait.photo-gallery-3 .realistic-portrait-inset{left:22.06%!important;right:19.41%!important;top:34.11%!important;bottom:8.27%!important}

/* Preview 24: frame variants 2 and 3 were themselves offset right in the
   original photographic crop. The underlying photos have been recentered
   five source pixels left; canvases now match the actual openings. */
.member-portrait-card .realistic-framed-portrait.photo-gallery-2 .realistic-portrait-inset{left:20.58%!important;right:20.58%!important;top:34.11%!important;bottom:8.27%!important}
.member-portrait-card .realistic-framed-portrait.photo-gallery-3 .realistic-portrait-inset{left:20.59%!important;right:21.18%!important;top:34.11%!important;bottom:8.27%!important}

/* Preview 25: final robust alignment: one proven frame geometry for ALL members.
   Prevent variant-dependent misregistration on desktop and mobile. */
.member-portrait-card .realistic-framed-portrait.photo-gallery-1,
.member-portrait-card .realistic-framed-portrait.photo-gallery-2,
.member-portrait-card .realistic-framed-portrait.photo-gallery-3{
  background-image:url('portrait-photo-1.jpg')!important;
  aspect-ratio:350 / 387!important;
}
.member-portrait-card .realistic-framed-portrait.photo-gallery-1 .realistic-portrait-inset,
.member-portrait-card .realistic-framed-portrait.photo-gallery-2 .realistic-portrait-inset,
.member-portrait-card .realistic-framed-portrait.photo-gallery-3 .realistic-portrait-inset{
  left:24.57%!important;right:21.72%!important;top:34.37%!important;bottom:8.79%!important;
}

/* Preview 26: discreet, responsive direct access to your own profile. */
.header-my-profile{border:1px solid rgba(218,190,134,.48);background:rgba(62,47,33,.35);color:#ead7b4;border-radius:8px;padding:.55rem .85rem;font:inherit;cursor:pointer;white-space:nowrap}
.header-my-profile:hover,.header-my-profile:focus-visible{background:rgba(128,91,47,.45);outline-offset:3px}
.header-my-profile:disabled{opacity:.6;cursor:wait}
@media(max-width:600px){.header-my-profile{padding:.45rem .55rem;font-size:.8rem}.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem}}

/* Preview 27: onboarding uses the existing invitation visual language. */
#onboardingPanel{max-width:620px;margin:1.5rem auto 2rem;text-align:left}
#onboardingPanel h2,#onboardingPanel>.eyebrow,#onboardingPanel>.lede{text-align:center}
#onboardingForm textarea{width:100%;box-sizing:border-box;min-height:120px;resize:vertical;background:rgba(13,20,19,.82);color:#f0e4ce;border:1px solid rgba(214,185,129,.55);border-radius:7px;padding:.8rem;font:inherit}
#onboardingForm input[type=file]{max-width:100%;box-sizing:border-box}
.onboarding-hint{font-size:.85rem;opacity:.8;line-height:1.5}
#onboardingSignOut{display:block;margin:1rem auto}

/* Preview 28: shared member portrait displayed again beside expanded biography. */
.member-profile-identity{display:flex;align-items:flex-start;gap:26px;flex:1;min-width:0}
.member-profile-identity>div:last-child{flex:1;min-width:0}
.member-profile-photo{width:clamp(130px,20vw,205px);aspect-ratio:3/4;flex:none;position:relative;overflow:hidden;border:9px ridge #ba9554;outline:2px solid #5d3b19;background:radial-gradient(ellipse at 50% 30%,#4c4b40,#27332f 45%,#151b1a 85%);box-shadow:inset 0 0 22px #0009,0 12px 24px #0009;display:grid;place-items:center}
.member-profile-photo img{width:100%;height:100%;object-fit:cover;display:block}
.member-profile-photo img.hidden{display:none!important}
.member-profile-photo span{font:italic 46px Georgia,serif;color:#d7bc85;text-shadow:0 3px 9px #000b}
@media(max-width:700px){.member-profile-identity{flex-direction:column;gap:18px}.member-profile-photo{width:min(210px,75%)}.member-profile-top{gap:16px}}

/* Preview 31: restore the existing cinematic mobile cover animation.
   The prior mobile override hid the cover regardless of motion preferences. */
@media (max-width:650px) and (prefers-reduced-motion:no-preference){
  .book-overlay:not(.hidden) .volume-cover{display:flex!important;animation:mobileCoverOpen 1.4s ease-in-out both!important}
  .book-overlay.closing .volume-cover{animation:mobileCoverClose 1.1s ease both!important}
}
/* The historical meeting ledger is a nested Library subsection. */
#librarySection #meetingsSection{margin-top:38px}

/* Preview 32: Never start an entrance animation during session restoration. */
body:not(.entrance-opening) .entrance-scene{animation:none!important}
body:not(.entrance-opening) .entrance-skip{display:none!important}
body.entrance-opening.entrance-pending .entrance-scene{animation:cinematicEnter 2.5s ease-in-out forwards!important}
/* Preserve the approved cinematic images and wheel geometry. */
#meetingsSection{display:none!important}
.meeting-editor{margin-top:18px;border-top:1px solid #a18458;padding-top:16px}
.meeting-editor form{display:flex;flex-wrap:wrap;align-items:end;gap:12px}
.meeting-editor label{display:grid;gap:6px;font-size:13px}
.meeting-editor input{min-width:135px;max-width:210px}
.meeting-editor button{margin:0}
.meeting-editor .ledger-feedback{flex-basis:100%}

/* Preview 33 foundation: fixed foreground pointer and warm equal wedge palette. */
.fate-scene.is-unveiling .practice-pointer{z-index:6!important;filter:drop-shadow(0 2px 3px #100b08cc)!important}
.practice-wheel-names{z-index:2}
.practice-sector-label{font-family:Georgia,serif;font-weight:700;paint-order:stroke;stroke-width:.7px}

/* Preview 34: Classic Walnut artifact with mathematically centered independent layers. */
.fate-scene{aspect-ratio:745/1024!important;max-width:745px}
.fate-scene .fate-photo{object-fit:fill!important}
.fate-scene .fate-unveiled{z-index:0}
.fate-scene .walnut-door-set{position:absolute;inset:0;z-index:5;display:block;overflow:hidden;pointer-events:none;background:transparent;transform:none!important;filter:none!important;opacity:1;transition:opacity .45s ease}
.walnut-door{position:absolute;top:19%;height:56%;width:36%;background:repeating-linear-gradient(90deg,#3a2215 0px,#6d4628 8px,#3b2415 16px,#52331f 28px);border:9px ridge #9b6e37;box-shadow:inset 0 0 30px #0b0705,0 6px 22px #000b;transition:transform 1.7s cubic-bezier(.25,.7,.25,1)}
.walnut-door.left{left:16%;transform-origin:left center;border-radius:46% 0 0 46%}
.walnut-door.right{right:16%;transform-origin:right center;border-radius:0 46% 46% 0}
.walnut-seal{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);padding:18px;border:3px double #e6c488;border-radius:50%;background:#302013;color:#ebd0a0;font:700 18px Georgia,serif;letter-spacing:.1em;box-shadow:0 3px 14px #000b;transition:opacity .5s ease}
.fate-scene.is-unveiling .walnut-door.left{transform:perspective(550px) rotateY(-72deg)}
.fate-scene.is-unveiling .walnut-door.right{transform:perspective(550px) rotateY(72deg)}
.fate-scene.is-unveiling .walnut-seal{opacity:0}
.fate-scene.is-unveiling .walnut-door-set{opacity:0;transition-delay:1.4s}
.practice-wheel-disc,.practice-wheel-disc[style]{left:52.4%!important;top:46.4%!important;width:70.5%!important;z-index:2!important;filter:none!important}
.practice-wheel-disc>img{display:none!important}
.practice-wheel-names{inset:0!important}
.practice-wheel-sectors{filter:none!important}
.practice-sector-label{stroke:none!important;paint-order:normal!important;text-shadow:none}
.fate-scene .practice-pointer{display:block!important;visibility:hidden;z-index:8!important;left:52.4%!important;top:15.5%!important;width:5%!important;height:13%!important;background:linear-gradient(90deg,#573417,#ffe4a2 36%,#c08b3c 65%,#51301b)!important;clip-path:polygon(50% 100%,0 5%,45% 0,55% 0,100% 5%)!important;filter:drop-shadow(1px 3px 3px #140b06)!important}
.fate-scene.is-unveiling .practice-pointer{visibility:visible!important}
.wheel-center-medallion{position:absolute;left:52.4%;top:46.4%;width:12%;aspect-ratio:1;transform:translate(-50%,-50%);z-index:7;display:none;align-items:center;justify-content:center;border:5px double #d4a45d;border-radius:50%;background:radial-gradient(circle,#84572b,#27190e);box-shadow:0 2px 9px #000a;color:#f8e6c2;font-size:clamp(18px,3vw,37px);pointer-events:none}
.fate-scene.is-unveiling .wheel-center-medallion{display:flex}
.wheel-plaque{position:absolute;z-index:10;bottom:3%;left:18%;right:18%;min-height:10%;padding:10px 12px;background:linear-gradient(130deg,#583817,#d7b16a 35%,#f1d99a 52%,#8c5c2d 100%);border:5px ridge #a77a3d;box-shadow:0 8px 20px #000b;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;transform:translateY(150%);opacity:0;transition:transform 1s cubic-bezier(.17,.7,.23,1),opacity .6s;pointer-events:none;color:#2c1a0e;text-align:center}
.wheel-plaque.is-open{transform:translateY(0);opacity:1}
.wheel-plaque-kicker{font:700 clamp(8px,1.5vw,13px) Georgia,serif;letter-spacing:.12em}
.wheel-plaque strong{font:700 clamp(16px,3vw,30px) Georgia,serif}
.fate-scene .fate-photo-caption{z-index:11;pointer-events:none}
@media(max-width:620px){.fate-scene{aspect-ratio:745/1024!important}.practice-wheel-disc{width:70.5%!important;left:52.4%!important;top:46.4%!important}.fate-scene .practice-pointer{left:52.4%!important;top:15.5%!important}}
@media(prefers-reduced-motion:reduce){.walnut-door,.wheel-plaque{transition:none}}

/* Preview 35: exact photographic geometry, restrained overlay and static veiling. */
.fate-scene{aspect-ratio:745/1024!important;max-width:min(590px,calc((100dvh - 155px)*745/1024),96vw)!important;min-width:0}
.fate-scene .fate-photo{object-fit:fill!important}
.fate-scene .fate-veiled-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:6;opacity:1;transition:opacity .95s ease;pointer-events:none}
.fate-scene.is-unveiling .fate-veiled-photo{opacity:0}
.practice-wheel-disc,.practice-wheel-disc[style]{left:52.21%!important;top:47.56%!important;width:65.9%!important;z-index:2!important}
.practice-wheel-sectors{width:100%;height:100%}
.fate-scene .practice-pointer-photo{position:absolute;display:block;left:52.21%;top:2.25%;width:18.8%;height:26.9%;transform:translateX(-50%);z-index:8;object-fit:fill;pointer-events:none;visibility:hidden;filter:drop-shadow(0 3px 3px #180e07a8)}
.fate-scene.is-unveiling .practice-pointer-photo{visibility:visible}
.fate-scene .practice-pointer{display:none!important}
.fate-scene .wheel-center-medallion{display:none!important}
.practice-sector-label{stroke:none!important;paint-order:normal!important}
.archive-native-picker{display:flex;flex-direction:column;gap:10px;align-items:flex-start;color:#ead3a6;font-weight:600;margin:12px 0 22px}
.archive-native-picker input{display:block;max-width:100%;font-size:16px;color:#ead3a6;background:#21190f;border:1px solid #b18a55;border-radius:8px;padding:12px}
.archive-drop{cursor:default;padding:18px}
@media(max-width:620px){.fate-scene{max-width:min(100%,480px)!important}.practice-wheel-disc,.practice-wheel-disc[style]{left:52.21%!important;top:47.56%!important;width:65.9%!important}.fate-scene .practice-pointer-photo{left:52.21%;top:2.25%;width:18.8%;height:26.9%}}
@media(prefers-reduced-motion:reduce){.fate-scene .fate-veiled-photo{transition:none}}

/* Preview 36: label contrast, unobstructed winner announcement, fixed wheel geometry. */
.practice-wheel-sectors .practice-sector-label{stroke:none!important;paint-order:normal!important;text-shadow:none!important}
.fate-scene:has(.wheel-plaque.is-open) .fate-photo-caption{opacity:0!important;visibility:hidden!important}
.fate-photo-caption{transition:opacity .25s ease}

/* Preview 38 lightweight Archivist filing route */
.archive-dedicated-link{display:inline-block;margin:16px 0;padding:15px 23px;border:1px solid #b38c58;background:#382817;color:#f5dfb4;text-decoration:none;border-radius:8px;font:600 18px Georgia,serif}.archive-dedicated-link:hover{background:#52381e}.archive-dedicated-note{color:#e5cba2;line-height:1.6}

/* Preview 44 Part 1: quiet, read-only archive discovery */
.library-discovery{display:flex;align-items:end;justify-content:center;flex-wrap:wrap;gap:12px 16px;margin:22px auto 28px;max-width:960px;padding:18px 20px;border:1px solid rgba(196,160,104,.32);border-radius:12px;background:rgba(30,24,19,.5)}
.library-discovery label{font:600 12px Georgia,serif;letter-spacing:.06em;color:#e5c99a;align-self:center}
.library-discovery input,.library-discovery select{min-width:180px;max-width:320px;flex:1 1 190px;padding:11px 12px;border:1px solid #8a6b48;border-radius:6px;background:#f3e6d1;color:#34271d;font-size:15px}
.library-discovery button{margin:0;padding:10px 14px}
.library-result-count{width:100%;text-align:center;margin:0;font-size:13px;color:#d8c5a6}
.library-no-results{text-align:center;padding:28px;color:#e4cfad}
.opened-metadata{margin:12px 0;font-size:12px;line-height:1.45;color:inherit}
.opened-metadata-line{margin:3px 0}.opened-metadata-empty{font-style:italic;opacity:.7}
@media(max-width:600px){.library-discovery{align-items:stretch;flex-direction:column}.library-discovery input,.library-discovery select{max-width:none;width:100%;flex:auto}}

/* Preview 44 Part 2: book-record leadership editor */
.book-leadership{margin:18px 0 8px;border:1px solid #a68c5b;border-radius:5px;padding:10px;background:rgba(100,77,43,.10);font:13px Georgia,serif}.book-leadership.hidden{display:none!important}.book-leadership summary{cursor:pointer;font-weight:bold;line-height:1.4}.book-edit-form{display:grid;grid-template-columns:1fr;gap:9px;margin-top:12px}.book-edit-form label{display:grid;gap:3px;font-size:12px}.book-edit-form input{box-sizing:border-box;max-width:100%;width:100%;padding:7px 8px;border:1px solid #a68c5b;border-radius:3px;background:#fff9ec;color:#2e251b;font:14px Georgia,serif}.book-edit-form button{padding:9px;background:#4d3825;color:#fff1d6;border:1px solid #c8a779;cursor:pointer}.book-edit-form button:disabled{opacity:.6}.book-edit-hint{font-size:11px;line-height:1.5;opacity:.85;margin:0}

/* Preview 45: isolated read-only Club Chronicles */
.chronicles-room{max-width:1150px;margin:0 auto;padding:12px 0 50px}
.chronicles-heading{text-align:center;margin:18px auto 24px;max-width:800px}
.chronicles-heading h2{font:normal clamp(34px,6vw,62px) Georgia,serif;color:#ead3a6;margin:10px 0;text-shadow:0 3px 16px #000}
.chronicles-heading p:not(.eyebrow){color:#d2bc98;font:17px/1.5 Georgia,serif}
.chronicles-status{text-align:center;color:#d6b986;font:italic 13px Georgia,serif}
.chronicles-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:28px auto}
.chronicles-stat,.chronicles-panel{border:2px ridge #8e6c40;background:linear-gradient(150deg,rgba(67,44,27,.92),rgba(26,19,14,.96));box-shadow:inset 0 0 26px #0008,0 10px 25px #0005;border-radius:5px}
.chronicles-stat{padding:22px 14px;text-align:center;display:flex;flex-direction:column;gap:9px}
.chronicles-stat-label{text-transform:uppercase;letter-spacing:.13em;font-size:11px;color:#d7b983}
.chronicles-stat-value{font:normal clamp(29px,4vw,47px) Georgia,serif;color:#f4dfb5}
.chronicles-stat-note{font:12px/1.4 Georgia,serif;color:#bba888}
.chronicles-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}
.chronicles-panel{padding:25px}
.chronicles-panel h3{font:normal 25px Georgia,serif;color:#f0d8a6;text-align:center;margin:0 0 23px;border-bottom:1px solid #8d6b3c;padding-bottom:15px}
.chronicles-rank{margin-bottom:17px}
.chronicles-rank-heading{display:flex;justify-content:space-between;gap:14px;font:14px/1.4 Georgia,serif;color:#ebd9b6;margin-bottom:7px}
.chronicles-rank-heading strong{white-space:nowrap;color:#d6b479;font-weight:normal}
.chronicles-track{height:7px;background:#120c09;border:1px solid #6d5234;border-radius:7px;overflow:hidden}
.chronicles-bar{height:100%;background:linear-gradient(90deg,#83623b,#e5c48a)}
.chronicles-empty{font:italic 14px Georgia,serif;color:#bca787;text-align:center}
.chronicles-footnote{max-width:790px;margin:22px auto 28px;color:#b9a58a;text-align:center;font:13px/1.6 Georgia,serif}
@media(max-width:850px){.chronicles-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.chronicles-panels{grid-template-columns:1fr}.chronicles-panel{padding:20px}.chronicles-summary{gap:9px}.chronicles-stat{padding:18px 10px}}

/* Preview 45 Part 2 — award sections */
.chronicles-section-title{text-align:center;font:normal clamp(25px,4vw,38px) Georgia,serif;color:#f1d9a9;margin:44px 0 20px;text-shadow:0 3px 12px #000}
.chronicles-awards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.chronicles-award{border:2px ridge #9a7746;border-radius:5px;background:linear-gradient(145deg,rgba(65,43,28,.95),rgba(22,16,13,.98));padding:21px;box-shadow:inset 0 0 24px #0007,0 8px 18px #0005}
.chronicles-award h4{font:normal 20px/1.25 Georgia,serif;color:#edcf95;margin:0 0 15px;padding-bottom:12px;border-bottom:1px solid #785b36}
.chronicles-award-winner{display:flex;flex-direction:column;gap:6px;margin-bottom:13px;color:#d7c3a1;font:14px/1.4 Georgia,serif}
.chronicles-award-winner strong{color:#f4e1b9;font:normal 19px/1.25 Georgia,serif}
.chronicles-award-winner span{color:#c8ad7d}


/* Preview 45 Part 3: The Archivist's Study — isolated presentation layer */
body.in-library:has(#chroniclesSection:not(.hidden)){
 background-image:linear-gradient(90deg,rgba(23,15,9,.35),rgba(23,15,9,.18)),url('entrance-approved-natural-light.png')!important;
 background-position:center top!important;background-size:cover!important;background-attachment:fixed!important;
}
#chroniclesSection{max-width:1440px;margin:0 auto;padding:0 20px 55px;color:#352213}
#chroniclesSection .chronicles-heading{max-width:900px;margin:8px auto 24px;padding:38px 20px 25px;background:linear-gradient(#1a1009a6,#1a100986);border:1px solid #ae8851;border-radius:6px;box-shadow:0 10px 45px #0007}
#chroniclesSection .chronicles-heading h2{font:normal clamp(38px,5.6vw,67px)/1.1 Georgia,serif;color:#f8dba2;text-transform:uppercase;letter-spacing:.055em}
#chroniclesSection .chronicles-heading p{color:#f5dfba}
#chroniclesSection .chronicles-heading .eyebrow{font-size:12px;letter-spacing:.15em;color:#dbbd81}
#chroniclesSection .chronicles-status{background:#1b110dc9;border:1px solid #a58250;padding:9px 16px;border-radius:4px;max-width:740px;margin:12px auto;color:#f4d5a2}
#chroniclesSection .chronicles-section-heading{text-align:center;background:linear-gradient(90deg,#f2dfb8,#fff0d1,#f2dfb8);border:5px double #956d3c;border-bottom:0;padding:15px 15px 12px;box-shadow:0 9px 26px #0007}
#chroniclesSection .chronicles-section-title{margin:0 0 7px;color:#3d2615;text-shadow:none;font:normal clamp(25px,3vw,38px) Georgia,serif;text-transform:uppercase}
#chroniclesSection .chronicles-section-heading p{font:15px/1.4 Georgia,serif;color:#6c4c2b;margin:0 0 6px}
#chroniclesSection .chronicles-section-heading small{display:inline-block;background:#ead1a6;border:1px solid #b48a53;border-radius:3px;padding:6px 12px;color:#5b3a22;font:12px Georgia,serif}
#chroniclesSection .chronicles-summary{margin:18px auto 25px}
#chroniclesSection .chronicles-stat{background:linear-gradient(145deg,#2c1a10e8,#130e0bed);border:3px ridge #9b713d;box-shadow:inset 0 0 18px #000,0 8px 25px #0009}
#chroniclesSection .chronicles-awards-books{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:20px 15px 26px;background:linear-gradient(130deg,#f4dfb8,#fff0d1 55%,#e5c998);border:5px double #956d3c;border-top:0;box-shadow:0 15px 28px #0008}
#chroniclesSection .chronicles-award{min-width:0;position:relative;text-align:center;overflow:hidden}
#chroniclesSection .chronicles-book-award{padding:13px 8px 18px;background:radial-gradient(ellipse at 50% 35%,#362318,#120e0b 80%);border:6px ridge #c59a46;border-radius:9px 9px 3px 3px;box-shadow:inset 0 0 0 2px #4d341d,inset 0 0 20px #000,0 5px 12px #0006}
#chroniclesSection .chronicles-book-award.chronicles-crimson{border-color:#a73b37}
#chroniclesSection .chronicles-book-award.chronicles-green{border-color:#688248}
#chroniclesSection .chronicles-book-award.chronicles-thorn{border-color:#665c51}
#chroniclesSection .chronicles-book-award.chronicles-violet{border-color:#8a5b9b}
#chroniclesSection .chronicles-award-ornament{display:block;font:32px/1 Georgia,serif;color:#d5a54e;text-shadow:0 2px 5px #000;margin-bottom:6px}
#chroniclesSection .chronicles-crimson .chronicles-award-ornament{color:#dd6660}
#chroniclesSection .chronicles-green .chronicles-award-ornament{color:#b2ce79}
#chroniclesSection .chronicles-violet .chronicles-award-ornament{color:#b995dc}
#chroniclesSection .chronicles-book-award h4{font:normal clamp(12px,1.2vw,16px)/1.25 Georgia,serif;text-transform:uppercase;color:#f5dba5;min-height:40px;margin:0 0 10px;padding:0;border:0}
#chroniclesSection .chronicles-award-cover{display:block;width:min(100%,125px);height:164px;object-fit:contain;margin:0 auto 12px;filter:drop-shadow(0 5px 6px #000);background:#231910}
#chroniclesSection .chronicles-cover-fallback{display:grid;place-items:center;height:164px;font-size:65px}
#chroniclesSection .chronicles-award-winner strong{font:normal 17px/1.3 Georgia,serif;color:#f5dfb5;overflow-wrap:anywhere}
#chroniclesSection .chronicles-award-winner span{font:13px/1.4 Georgia,serif;color:#dfc390}
#chroniclesSection .chronicles-book-award .chronicles-empty{font-size:13px;line-height:1.5;color:#d8c4a5;padding:22px 3px}
#chroniclesSection .chronicles-tied{margin-top:12px;border-top:1px solid #82653e;padding-top:10px;color:#f0d2a3;text-align:left;font:12px/1.5 Georgia,serif}
#chroniclesSection .chronicles-tied summary{cursor:pointer;text-align:center;color:#f2d7a5}
#chroniclesSection .chronicles-tied-list{max-height:210px;overflow-y:auto;padding:5px}
#chroniclesSection .chronicles-tied-list p{border-bottom:1px solid #80603a;padding:6px 0;margin:0;display:flex;flex-direction:column;gap:3px}
#chroniclesSection .chronicles-tied-list strong{font-weight:normal;color:#fff0cc}
#chroniclesSection .chronicles-awards-members{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:12px;background:linear-gradient(120deg,#e4c494,#fff1d0,#ead2a7);border:5px double #956d3c;border-top:0;box-shadow:0 12px 25px #0008}
#chroniclesSection .chronicles-member-award{border:0;border-right:1px solid #b89a6a;border-radius:0;box-shadow:none;background:transparent;padding:13px 8px;color:#432b19}
#chroniclesSection .chronicles-member-award:last-child{border-right:0}
#chroniclesSection .chronicles-member-award .chronicles-award-ornament{display:none}
#chroniclesSection .chronicles-member-award h4{font:normal 16px/1.3 Georgia,serif;color:#4c311d;min-height:43px;border:0;padding:0}
#chroniclesSection .chronicles-member-illustration{font-size:56px;display:block;margin:5px auto 14px;filter:sepia(.4) drop-shadow(0 5px 3px #76553766)}
#chroniclesSection .chronicles-member-award .chronicles-award-winner strong{color:#442b17}
#chroniclesSection .chronicles-member-award .chronicles-award-winner span{color:#745130}
#chroniclesSection .chronicles-member-award .chronicles-empty{color:#745130}
#chroniclesSection .chronicles-panels{margin:0 0 24px;gap:16px}
#chroniclesSection .chronicles-panel{background:linear-gradient(155deg,#302015f5,#150f0cf7);border:4px ridge #99723c;box-shadow:inset 0 0 24px #0009,0 10px 20px #0008}
#chroniclesSection .chronicles-panel h3{font:normal 22px Georgia,serif}
#chroniclesSection .chronicles-footnote{background:#1d130edc;padding:12px 18px;border:1px solid #957246;color:#e5c99d}
@media(min-width:921px){#chroniclesSection .chronicles-awards-books{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:920px){#chroniclesSection .chronicles-awards-books{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:14px;overscroll-behavior-inline:contain}#chroniclesSection .chronicles-book-award{flex:0 0 min(63vw,260px);scroll-snap-align:center}#chroniclesSection .chronicles-awards-members{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}#chroniclesSection .chronicles-member-award{flex:0 0 min(55vw,220px);scroll-snap-align:center}}
@media(max-width:650px){body.in-library:has(#chroniclesSection:not(.hidden)){background-attachment:scroll!important;background-position:center top!important}#chroniclesSection{padding:0 8px 30px}#chroniclesSection .chronicles-heading{padding:24px 12px;margin:4px auto 14px}#chroniclesSection .chronicles-heading h2{font-size:32px}#chroniclesSection .chronicles-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}#chroniclesSection .chronicles-stat{padding:12px 7px}#chroniclesSection .chronicles-stat-value{font-size:29px}#chroniclesSection .chronicles-section-title{font-size:25px}#chroniclesSection .chronicles-section-heading{padding:12px 8px}#chroniclesSection .chronicles-panels{grid-template-columns:1fr}#chroniclesSection .chronicles-book-award{flex-basis:74vw}#chroniclesSection .chronicles-member-award{flex-basis:70vw}}
@media(prefers-reduced-motion:reduce){#chroniclesSection *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Preview 45 Part 4: separate Archivist's Study with photographic artwork and accessible tabbed panels */
body.in-library:has(#chroniclesSection:not(.hidden)){
 background-image:linear-gradient(180deg,rgba(19,12,7,.17) 0%,rgba(25,15,9,.52) 38%,#1b120c 92%),url('archivists-study-room.jpg')!important;
 background-size:cover,cover!important;background-position:center top!important;background-attachment:fixed!important;
}
#chroniclesSection{max-width:1370px}
#chroniclesSection .chronicles-heading{background:linear-gradient(90deg,#120d09dc,#2c1b10b0,#120d09dc);backdrop-filter:blur(5px);padding:34px 16px 24px;max-width:870px;border:1px solid #977344}
#chroniclesSection .chronicles-heading h2{font-size:clamp(31px,4.7vw,56px)}
#chroniclesSection .chronicles-tabs{display:flex;justify-content:center;gap:0;max-width:840px;margin:16px auto 24px;background:#110f0ddf;border:2px ridge #af8549;box-shadow:0 10px 28px #0009;border-radius:5px;overflow:hidden}
#chroniclesSection .chronicles-tabs button{flex:1;min-width:0;padding:15px 10px;color:#e8c99a;background:linear-gradient(#27201b,#11100e);border:0;border-right:1px solid #947449;font:normal clamp(12px,1.4vw,17px) Georgia,serif;cursor:pointer;transition:background .2s}
#chroniclesSection .chronicles-tabs button:last-child{border-right:0}
#chroniclesSection .chronicles-tabs button[aria-selected=true]{background:linear-gradient(#f9e9c6,#d6ad71);color:#382212;text-shadow:none;box-shadow:inset 0 0 0 2px #a57d46}
#chroniclesSection .chronicles-tabs button:focus-visible{outline:3px solid #ffe1a5;outline-offset:-4px}
#chroniclesSection .chronicles-view[hidden]{display:none!important}
#chroniclesSection .chronicles-view{animation:chroniclesReveal .3s ease-out}
@keyframes chroniclesReveal{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:none}}
#chroniclesSection .chronicles-section-heading{background:linear-gradient(135deg,#e2c79a,#f8e6bf 30%,#ebd4a7 70%,#d6b783);border:6px double #876039;box-shadow:inset 0 0 25px #b68d5666,0 14px 30px #0009}
#chroniclesSection .chronicles-awards-books{background:linear-gradient(135deg,#e0c295,#f9e6bd 50%,#ddba84);border:6px double #876039;box-shadow:inset 0 0 45px #a4744155,0 16px 32px #000a}
#chroniclesSection .chronicles-book-award{border-width:8px;border-style:ridge;box-shadow:inset 0 0 0 2px #bba073,inset 0 0 0 6px #21160e,inset 0 0 25px #000,0 8px 16px #0008;border-radius:15px 15px 5px 5px}
#chroniclesSection .chronicles-member-illustration{display:block;width:100%;max-width:142px;height:110px;object-fit:cover;object-position:center;margin:8px auto 13px;border-radius:2px;mix-blend-mode:multiply;filter:sepia(.1) contrast(1.08)}
#chroniclesSection .chronicles-awards-members{background:linear-gradient(135deg,#e7c99a,#fff0cc 50%,#e2c194);box-shadow:inset 0 0 36px #9d713b55,0 15px 28px #0008}
#chroniclesSection .chronicles-panels{margin-top:22px}
#chroniclesSection .chronicles-panel{background:linear-gradient(135deg,#4a3020f7,#20150ffb);border:6px ridge #9e7442}
@media(max-width:650px){
 body.in-library:has(#chroniclesSection:not(.hidden)){background-attachment:scroll!important;background-size:auto,auto 100vh!important;background-position:center top!important}
 #chroniclesSection .chronicles-tabs{margin:10px 0 18px}
 #chroniclesSection .chronicles-tabs button{padding:12px 5px;font-size:12px;line-height:1.2}
 #chroniclesSection .chronicles-heading{padding:25px 10px 15px}
 #chroniclesSection .chronicles-awards-books{gap:10px;padding:12px}
 #chroniclesSection .chronicles-member-illustration{height:115px}
}
@media(prefers-reduced-motion:reduce){#chroniclesSection .chronicles-view{animation:none}}

/* Preview 45 Part 6 — full-illustration framing, genre enrichment */
#chroniclesSection .chronicles-member-illustration{width:min(100%,180px);max-width:180px;height:148px;object-fit:contain;object-position:center;mix-blend-mode:multiply;filter:none;border:0;margin:8px auto 14px}
#chroniclesSection .chronicles-member-award h4{min-height:48px}
#chroniclesSection .chronicles-award-body{min-width:0}
#chroniclesSection .genre-enrichment{margin:24px auto;background:linear-gradient(125deg,#e7d0a6,#f6e6c5);border:5px double #8e6639;padding:18px 22px;color:#442b18;box-shadow:0 12px 28px #0009}
#chroniclesSection .genre-enrichment summary{font:normal 22px Georgia,serif;cursor:pointer}
#chroniclesSection .genre-enrichment p{color:#624628}
#chroniclesSection .genre-enrichment button{background:#52361f;color:#f8e9ca;border:1px solid #a77b46;border-radius:4px;padding:10px 14px;cursor:pointer;font:15px Georgia,serif}
#chroniclesSection .genre-enrichment button:disabled{opacity:.55;cursor:wait}
#chroniclesSection .genre-enrichment-result{border-top:1px solid #aa8858;padding:16px 0;display:grid;gap:9px}
#chroniclesSection .genre-enrichment-result strong{font:normal 19px Georgia,serif}
#chroniclesSection .genre-enrichment-result label{display:block;font:14px Georgia,serif}
#chroniclesSection .genre-enrichment-result input{width:100%;padding:10px;border:1px solid #9b7548;background:#fff4d9;color:#3b2514;font:16px Georgia,serif}
#chroniclesSection .genre-enrichment-result small{color:#755837;font:13px Georgia,serif}
#chroniclesSection .genre-enrichment-result .genre-save-status{color:#5c3a1d}
#bookLeadershipControls #suggestBookGenres{margin:8px 0}
@media(max-width:650px){#chroniclesSection .chronicles-member-illustration{height:154px;width:180px}#chroniclesSection .genre-enrichment{padding:13px}}
