@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--paper:#f4f0e8;--paper2:#ebe5da;--ink:#222421;--muted:#625f5a;--rule:#c7c1b6;--red:#9d363e;--deep:#283b3a;--gold:#ab8a5b;--serif:'Libre Caslon Display',Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:4px}::selection{background:#cebdae;color:#211b18}
.skip{position:absolute;top:-100px;left:20px;z-index:20;background:#fff;padding:12px}.skip:focus{top:10px}
.site-head{background:var(--paper);position:relative;z-index:5;border-bottom:1px solid var(--ink)}.head-overline{display:flex;justify-content:space-between;gap:24px;padding:8px clamp(18px,4.5vw,80px);background:var(--deep);color:#f2efe7;font:10px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase}.masthead{padding:20px clamp(18px,4.5vw,80px) 16px;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:15px}.masthead-left{font:11px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#57534e}.logo{font:normal clamp(40px,6.2vw,88px)/.89 var(--serif);letter-spacing:-.06em;white-space:nowrap}.logo i{font-weight:normal;color:var(--red);font-style:normal}.masthead-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.action-link,.bag-action{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:11px 16px;border:1px solid var(--ink);background:transparent;font:10px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .2s,color .2s}.action-link{background:var(--ink);color:white}.action-link:hover,.buy-button:hover{background:var(--red);color:white;border-color:var(--red)}.bag-action{display:none}.is-connected .bag-action{display:inline-flex}.bag-action:hover{background:var(--paper2)}.top-nav{display:flex;flex-wrap:wrap;gap:3px clamp(15px,2vw,31px);align-items:center;justify-content:center;padding:12px 22px;border-top:1px solid var(--rule)}.top-nav a{font:10px/1.7 var(--mono);letter-spacing:.045em;text-transform:uppercase;white-space:nowrap;border-bottom:2px solid transparent;padding:3px 1px}.top-nav a:hover,.top-nav a[aria-current=page]{border-color:var(--red)}.mobile-menu{display:none}
main{min-height:70vh}.eyebrow,.meta,.num{font:10px/1.55 var(--mono);letter-spacing:.08em;text-transform:uppercase}.eyebrow{color:var(--red)}.inline-arrow{display:inline-block;margin-left:12px}.text-link{display:inline-flex;align-items:center;gap:14px;border-bottom:1px solid var(--ink);padding:8px 0 7px;font:11px/1.35 var(--mono);text-transform:uppercase;letter-spacing:.04em;transition:gap .2s}.text-link:hover{gap:21px;color:var(--red);border-color:var(--red)}.text-link::after{content:'↗';font-size:15px}.section-shell{padding:clamp(58px,8vw,130px) clamp(18px,6vw,100px)}.section-topline{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:13px;border-top:1px solid var(--ink);margin-bottom:34px}.section-topline span{font:10px var(--mono);text-transform:uppercase;letter-spacing:.1em}.section-topline span:last-child{color:var(--muted)}.section-title{font:normal clamp(55px,8.5vw,144px)/.86 var(--serif);letter-spacing:-.045em;margin:0}.section-title em{font-style:italic;color:var(--red)}
/* Home hero: one exceptionally clear editorial statement, not a series of aphorisms. */
.home-hero{border-bottom:1px solid var(--ink);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);min-height:590px}.hero-left{padding:clamp(28px,5vw,76px) clamp(24px,6vw,100px) 38px;display:flex;flex-direction:column}.hero-index{display:flex;justify-content:space-between;gap:20px;padding-bottom:13px;border-bottom:1px solid var(--rule)}.hero-type{margin:auto 0;position:relative}.hero-type h1{font:normal clamp(104px,15.8vw,280px)/.76 var(--serif);letter-spacing:-.075em;margin:42px 0 6px;white-space:nowrap}.hero-type h1 span{display:block;font-size:.78em;letter-spacing:-.065em;font-style:italic;padding-left:clamp(10px,5vw,86px);color:var(--red)}.hero-statement{display:flex;align-items:end;gap:30px;justify-content:space-between;padding-top:40px;border-top:1px solid var(--ink)}.hero-statement p{font:normal clamp(25px,3vw,45px)/1.08 var(--serif);max-width:420px;margin:0}.hero-statement .text-link{flex-shrink:0}.hero-right{position:relative;padding:26px 30px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:#283c3c;color:#fff}.hero-right .eyebrow{color:#dfc7b0}.hero-pieces{display:grid;grid-template-columns:.96fr .87fr;align-items:center;gap:0;min-height:375px;padding:14px 0}.hero-piece{display:block;min-width:0;aspect-ratio:3/4.3;position:relative;box-shadow:12px 19px 28px #0005;transform:rotate(-8deg);overflow:hidden}.hero-piece:nth-child(2){transform:translate(-18px,45px) rotate(8deg);z-index:2}.hero-piece .cover-fallback{min-height:100%;height:100%}.hero-piece img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-right-end{font:10px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:end;gap:10px;border-top:1px solid #778883;padding-top:14px}.hero-right-end a{color:#fff;border-bottom:1px solid #d8ddd8}.hero-right-end a:hover{color:#efd6bf}.thin-rail{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--ink);padding:12px clamp(18px,6vw,100px);font:10px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:#56544f}.thin-rail b{font-weight:400;color:var(--red)}
/* Books: artwork leads; cards intentionally offset like an exhibition wall. */
.book-intro{display:grid;grid-template-columns:1fr 260px;gap:28px;align-items:end;margin-bottom:40px}.book-intro p{margin:0 0 4px;font:15px/1.6 var(--sans);color:var(--muted)}.books-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,56px);align-items:start}.book-card:nth-child(2){margin-top:48px}.book-card:nth-child(4){margin-top:75px}.book-image{aspect-ratio:3/4.15;display:block;position:relative;box-shadow:7px 10px 15px #24211c15;overflow:hidden;background:#bbb2a5}.book-image .cover-fallback{height:100%}.book-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.cover-fallback{display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:22px 18px;background:#d7c4b2;color:#241e21;min-height:100%}.cover-fallback.terracotta{background:#92706e;color:#fff0e5}.cover-fallback.olive{background:#b8bba5;color:#1a2b27}.cover-fallback.wine{background:#713b47;color:#f5e7de}.cover-fallback.slate{background:#455b6a;color:#f4eadc}.cover-fallback.ochre{background:#bf8d61;color:#281d1f}.fallback-top{font:9px var(--mono);text-transform:uppercase;letter-spacing:.08em;opacity:.8}.fallback-title{font:normal clamp(27px,3.1vw,48px)/.98 var(--serif);letter-spacing:-.02em}.fallback-bottom{font:10px/1.35 var(--mono);opacity:.8;text-transform:uppercase;letter-spacing:.02em}.book-under{padding-top:18px}.book-under h3{font:normal clamp(25px,2.6vw,35px)/1.05 var(--serif);letter-spacing:-.02em;margin:8px 0}.book-under .byline{font:12px/1.55 var(--sans);margin:0 0 18px;color:var(--muted);min-height:36px}.book-actions{display:flex;gap:11px;align-items:end;flex-wrap:wrap}.book-actions .text-link{font-size:10px}.buy-slot{min-height:46px}.buy-button{border:1px solid var(--ink);background:var(--ink);color:white;cursor:pointer;font:10px/1.25 var(--mono);letter-spacing:.045em;text-transform:uppercase;padding:14px 15px;min-height:43px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:.2s;white-space:nowrap}.buy-button:disabled{opacity:.5;cursor:not-allowed}.buy-button--quiet{background:transparent;color:var(--ink)}.buy-widget{display:grid;gap:8px}.buy-widget .buy-button{width:100%}.shopify-price{font:12px var(--mono);color:var(--red)}shopify-variant-selector{display:block;max-width:100%;margin:3px 0}.section-ending{display:flex;justify-content:flex-end;padding-top:45px}
/* Event design: typographic, calendar-ready, no fictional bookings. */
.events-section{background:#dedcd4;padding-top:90px;padding-bottom:100px}.events-top{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:end}.events-top p{max-width:440px;margin:0 0 8px;font:clamp(22px,2.5vw,34px)/1.17 var(--serif)}.events-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ink);border:1px solid var(--ink);margin-top:52px}.event-card{background:#dedcd4;padding:25px 25px 28px;min-height:260px;display:flex;flex-direction:column}.event-card:nth-child(2){background:#293a3a;color:#f4f0e8}.event-card:nth-child(3){background:#e8dfd5}.event-card h3{margin:35px 0 14px;font:normal clamp(33px,4vw,56px)/.95 var(--serif);letter-spacing:-.025em}.event-card p{font-size:13px;line-height:1.6;margin:auto 0 0;max-width:340px}.event-card .num{opacity:.8}.events-footer{margin-top:28px;display:flex;justify-content:space-between;gap:20px;align-items:center}.events-footer p{font:11px var(--mono);color:var(--muted);margin:0}.events-footer .text-link{white-space:nowrap}
/* Inner pages */
.page-hero{padding:70px clamp(18px,6vw,100px) 62px;border-bottom:1px solid var(--ink);display:grid;grid-template-columns:1fr minmax(210px,340px);gap:25px;align-items:end}.page-hero h1{font:normal clamp(90px,13vw,205px)/.85 var(--serif);letter-spacing:-.058em;margin:15px 0 0;overflow-wrap:anywhere}.page-hero h1.smaller{font-size:clamp(72px,9vw,150px)}.page-hero h1 em{color:var(--red);font-style:italic}.page-hero p{font:clamp(19px,2vw,28px)/1.19 var(--serif);margin:0 0 8px}.quiet-detail{font:11px/1.5 var(--mono);color:var(--muted)}.intro-strip{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--rule);padding:14px clamp(18px,6vw,100px);font:10px var(--mono);text-transform:uppercase;letter-spacing:.05em}.inner{padding:clamp(50px,7vw,110px) clamp(18px,6vw,100px)}.inner h2{font:normal clamp(36px,5vw,78px)/.99 var(--serif);letter-spacing:-.035em;margin:0 0 25px}.inner .intro{font:21px/1.4 var(--serif);max-width:680px;margin:0 0 35px}.textblock{max-width:600px;font:16px/1.8 var(--sans);color:#373937}.textblock p{margin:0 0 22px}.row-list{border-top:1px solid var(--ink)}.person-row,.info-row{display:grid;grid-template-columns:minmax(120px,.38fr) minmax(200px,1fr) minmax(200px,1.15fr);gap:20px;border-bottom:1px solid var(--rule);padding:23px 0;align-items:start}.person-row h3,.info-row h3{font:normal clamp(28px,3vw,46px)/1 var(--serif);margin:0}.person-row p,.info-row p{margin:1px 0 0;color:var(--muted);font:14px/1.7 var(--sans);max-width:520px}.person-row .num,.info-row .num{padding-top:10px}.split-panel{display:grid;grid-template-columns:1fr 1fr;gap:clamp(25px,7vw,120px)}.split-panel h2{max-width:600px}.split-panel p{font:16px/1.8 var(--sans);max-width:540px}.direct-panel{padding:30px;border:1px solid var(--rule);background:var(--paper2);margin-top:40px}.direct-panel h3{font:normal 36px var(--serif);margin:0 0 8px}.direct-panel p{margin:0 0 20px;font-size:14px}.subscriptions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.sub-card{background:#ece6dd;border-top:3px solid var(--ink);padding:25px;display:flex;flex-direction:column;min-height:350px}.sub-card:nth-child(2){border-color:var(--red)}.sub-card h3{font:normal 39px/1.1 var(--serif);margin:24px 0 22px}.sub-card .price{font:normal 53px/1 var(--serif)}.sub-card .price small{font:12px var(--mono)}.sub-card p{font:13px/1.7 var(--sans);color:var(--muted);margin:22px 0 25px;flex:1}.sub-card .text-link{align-self:flex-start}
/* Cover art is not duplicated or reinterpreted as decorative page backgrounds. */
.banner-note{background:var(--deep);color:#eee8dd;padding:52px clamp(18px,6vw,100px);display:grid;grid-template-columns:1.2fr 1fr;gap:35px}.banner-note h2{font:normal clamp(37px,5vw,75px)/.99 var(--serif);margin:0}.banner-note p{margin:0 0 24px;font:16px/1.7 var(--sans)}.banner-note .text-link{border-color:#eee8dd;color:#eee8dd}.footer{border-top:1px solid var(--ink);padding:60px clamp(18px,6vw,100px) 25px;background:#eee9e0}.footer-main{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:30px}.footer-logo{font:normal clamp(64px,7vw,115px)/.8 var(--serif);letter-spacing:-.05em}.footer-list{display:flex;flex-direction:column;gap:8px}.footer-list a{font-size:13px}.footer-list a:hover{text-decoration:underline}.footer small,.footer-bottom{font:10px/1.6 var(--mono);color:var(--muted)}.footer-bottom{border-top:1px solid var(--rule);padding-top:17px;margin-top:65px;display:flex;justify-content:space-between;gap:20px}
/* Closed-store purchase message. */
.setup-dialog{padding:0;border:1px solid var(--ink);max-width:min(530px,calc(100% - 40px));background:var(--paper);color:var(--ink);box-shadow:0 30px 120px #0004}.setup-dialog::backdrop{background:#111b1c99}.setup-inner{padding:30px}.setup-inner h2{font:normal 46px/1 var(--serif);margin:10px 0}.setup-inner p{font:14px/1.75 var(--sans);margin:0 0 24px}.setup-inner code{font:11px var(--mono);background:#ded8ce;padding:3px 6px}.setup-actions{display:flex;justify-content:space-between;align-items:center;gap:20px}.close-setup{cursor:pointer;border:0;background:transparent;text-decoration:underline;font:11px var(--mono)}.shop-note{font:10px/1.6 var(--mono);color:var(--muted);margin:15px 0 0}shopify-cart::part(dialog){background:#f5f1e9;color:#242421;border:1px solid #262521;border-radius:0}shopify-cart::part(primary-button){background:#283b3a;color:white;border:0;border-radius:0;font-family:var(--mono)}shopify-cart::part(secondary-button){background:transparent;color:#242421;border:1px solid #242421;border-radius:0}
@media(max-width:1100px){.hero-type h1{font-size:clamp(85px,15vw,180px)}.book-intro{grid-template-columns:1fr 220px}.books-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.book-card:nth-child(2),.book-card:nth-child(4){margin-top:0}.book-card:nth-child(even){margin-top:50px}.person-row,.info-row{grid-template-columns:80px 1fr 1fr}.page-hero h1{font-size:clamp(82px,12vw,165px)}}
@media(max-width:760px){.head-overline span:last-child,.masthead-left{display:none}.masthead{grid-template-columns:1fr auto;padding:19px 20px;align-items:center}.logo{font-size:58px}.masthead-actions{gap:6px}.action-link,.bag-action{font-size:9px;min-height:38px;padding:9px 11px}.top-nav{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:10px 18px;gap:19px;scrollbar-width:thin}.top-nav a{flex-shrink:0}.home-hero{grid-template-columns:1fr}.hero-left{min-height:490px;padding:30px 24px}.hero-type h1{font-size:clamp(110px,21vw,190px);margin:50px 0 40px}.hero-statement p{font-size:31px}.hero-right{min-height:380px}.hero-pieces{min-height:270px;max-width:480px;margin:auto}.hero-piece{max-height:240px}.thin-rail span:nth-child(2){display:none}.book-intro{grid-template-columns:1fr}.books-grid{gap:45px 18px}.events-top{grid-template-columns:1fr}.events-row{grid-template-columns:1fr}.event-card{min-height:215px}.events-footer{align-items:start;flex-direction:column}.page-hero{grid-template-columns:1fr;min-height:290px;padding:48px 24px}.page-hero h1{font-size:clamp(75px,14vw,130px)}.page-hero h1.smaller{font-size:clamp(64px,12vw,105px)}.page-hero p{font-size:23px;max-width:480px}.person-row,.info-row{grid-template-columns:35px 1fr;gap:12px}.person-row p,.info-row p{grid-column:2}.split-panel,.banner-note{grid-template-columns:1fr}.subscriptions{grid-template-columns:1fr}.footer-main{grid-template-columns:1fr 1fr}.footer-main>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column}.section-topline{margin-bottom:25px}}
@media(max-width:480px){.head-overline{padding:8px 17px}.masthead{padding:16px}.logo{font-size:52px}.action-link{padding:9px}.hero-left{min-height:480px;padding:22px 19px}.hero-type h1{font-size:clamp(94px,23vw,120px);margin:52px 0 32px}.hero-statement{flex-direction:column;align-items:start;gap:10px}.hero-statement p{font-size:30px}.hero-right{padding:18px}.hero-pieces{min-height:260px}.section-shell{padding:58px 20px}.books-grid{grid-template-columns:1fr 1fr;gap:38px 13px}.book-image{aspect-ratio:3/4.2}.cover-fallback{padding:15px 11px;gap:10px}.fallback-title{font-size:clamp(23px,6.7vw,38px)}.fallback-top,.fallback-bottom{font-size:7px}.book-under h3{font-size:26px}.book-under .byline{font-size:11px;min-height:52px}.buy-button{font-size:9px;padding:11px 9px;min-height:39px;white-space:normal;text-align:center}.book-actions{gap:4px}.book-actions .text-link{font-size:9px}.book-card:nth-child(even){margin-top:36px}.page-hero h1{font-size:clamp(69px,15vw,92px)}.page-hero h1.smaller{font-size:clamp(58px,11.5vw,76px)}.inner{padding:55px 20px}.intro-strip{padding:14px 20px}.intro-strip span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}


/* Media page and optional editorial portrait assets — inherits the existing design. */
.person-row.with-portrait{grid-template-columns:54px 116px minmax(190px,1fr) minmax(180px,1.1fr);gap:24px;align-items:center}
.person-row.with-portrait h3{grid-column:3}
.person-row.with-portrait p{grid-column:4}
.portrait-frame{width:116px;height:132px;background:#dfdad1;overflow:hidden;box-shadow:4px 5px 0 #2a383214}
.portrait-frame img{display:block;width:100%;height:100%;object-fit:cover}
.media-page-hero{background:var(--paper)}
.media-page-hero h1{font-size:clamp(104px,15vw,222px)}
.media-head{display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:end;margin-bottom:44px}
.media-head h2{font:normal clamp(60px,8vw,136px)/.88 var(--serif);letter-spacing:-.05em;margin:0}
.media-head h2 em{font-style:italic;color:var(--red)}
.media-description{max-width:440px;margin-left:auto}
.media-description p:first-child{font:normal clamp(22px,2.3vw,32px)/1.15 var(--serif);margin:0 0 16px}
.media-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.media-video-card{border-top:1px solid var(--ink);padding-top:15px;min-width:0}
.media-thumb{padding:0;border:0;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:#293b3a;position:relative;cursor:pointer}
.media-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s}
.media-thumb:hover img{transform:scale(1.03)}
.media-play-symbol{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;display:flex;align-items:center;justify-content:center;border:1px solid #f3eee5;border-radius:50%;font-size:23px;color:#f3eee5;background:#21292799;padding-left:5px}
.media-card-meta{display:flex;align-items:center;justify-content:space-between;margin-top:18px}
.media-video-card h3{font:normal 35px/1.06 var(--serif);margin:9px 0 15px}
.media-video-card p{color:var(--muted);font:13px/1.65 var(--sans)}
.media-empty{display:grid;grid-template-columns:minmax(270px,1.1fr) 1fr;gap:clamp(30px,7vw,100px);border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);align-items:center;padding:30px 0}
.media-empty[hidden]{display:none}
.media-empty-art{min-height:320px;background:var(--deep);color:#f2ebe0;display:flex;align-items:center;justify-content:center;position:relative}
.media-empty-art span{font-size:70px;width:120px;height:120px;border:1px solid #d7c9ae;border-radius:50%;display:flex;align-items:center;justify-content:center;padding-left:9px}
.media-empty-art small{position:absolute;bottom:23px;left:27px;font:11px var(--mono);letter-spacing:.11em}
.media-empty h3{font:normal clamp(38px,4vw,64px)/1.04 var(--serif);margin:15px 0}
.media-empty p{color:var(--muted);font-size:14px;line-height:1.75;max-width:440px}
.media-empty code{font-size:12px;background:#e6dcd2;padding:2px 4px;overflow-wrap:anywhere}
.media-source-section{background:#e8e3db}
.media-source-intro{display:grid;grid-template-columns:1.2fr .8fr;align-items:end;gap:30px;margin-bottom:35px}
.media-source-intro p{font:19px/1.45 var(--serif);max-width:420px;margin:0}
.media-source-list{border-top:1px solid var(--ink)}
.media-source-list a{display:grid;grid-template-columns:210px 1fr auto;gap:22px;align-items:center;padding:30px 0;border-bottom:1px solid var(--rule)}
.media-source-list a:hover strong,.media-source-list a:hover .source-action{color:var(--red)}
.media-source-list strong{font:normal clamp(35px,5vw,66px)/.98 var(--serif)}
.source-action{font:11px var(--mono);white-space:nowrap;text-transform:uppercase}
.media-lightbox{border:0;background:#202f2d;padding:0;width:min(94vw,980px);max-width:none;color:#f7f3eb;box-shadow:0 30px 120px #0008}
.media-lightbox::backdrop{background:#111c1de8}
.media-lightbox-inner{padding:18px 20px 24px}
.media-lightbox-top{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:18px}
.media-lightbox-top .eyebrow{color:#eee6dc}
.media-lightbox-top button{background:transparent;border:1px solid #bec3bd;padding:8px 12px;color:#fff;cursor:pointer}
.media-frame{aspect-ratio:16/9;background:#111}
.media-frame iframe{display:block;width:100%;height:100%;border:0}
.media-lightbox .text-link{margin-top:15px;color:#fff;border-color:#fff}
@media(max-width:1100px){.person-row.with-portrait{grid-template-columns:42px 94px 1fr 1fr;gap:18px}.portrait-frame{width:94px;height:112px}.media-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.person-row.with-portrait{grid-template-columns:30px 86px minmax(0,1fr);gap:14px}.portrait-frame{width:86px;height:101px;grid-column:2;grid-row:1/3}.person-row.with-portrait h3{grid-column:3;grid-row:1}.person-row.with-portrait p{grid-column:3;grid-row:2}.media-head,.media-empty,.media-source-intro{grid-template-columns:1fr}.media-description{margin:0}.media-source-list a{grid-template-columns:80px 1fr;gap:14px}.source-action{grid-column:2}.media-empty-art{min-height:270px}}
@media(max-width:480px){.media-video-grid{grid-template-columns:1fr}.media-page-hero h1{font-size:100px}.media-source-list a{grid-template-columns:1fr;gap:5px}.source-action{grid-column:1}.person-row.with-portrait{grid-template-columns:22px 70px minmax(0,1fr);gap:10px}.portrait-frame{width:70px;height:88px}}

/* Content-managed editorial cards: extends the existing design */
.book-cover-link{display:block;text-decoration:none;color:inherit}
.book-short-description{font:13px/1.65 var(--sans);color:var(--muted);margin:8px 0 14px;min-height:35px}
.book-details{font:13px/1.6 var(--sans);border-top:1px solid var(--rule);padding:10px 0 13px;margin-bottom:12px}
.book-details summary,.person-bio summary{cursor:pointer;font:11px var(--mono);text-transform:uppercase;letter-spacing:.045em;list-style:none;display:inline-block;border-bottom:1px solid currentColor}
.book-details summary::-webkit-details-marker,.person-bio summary::-webkit-details-marker{display:none}
.book-details p{margin:10px 0 0;color:var(--muted)}.book-details .book-facts{font:10px/1.7 var(--mono)}
.creator-link{color:inherit;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px}
.person-entry{scroll-margin-top:35px}.person-entry .person-text{grid-column:4}.person-text p{margin:0 0 8px}.person-bio p{margin:10px 0 0;max-width:700px;font:14px/1.7 var(--sans)}
.person-bio summary{color:var(--red)}.person-works a{color:var(--ink);text-underline-offset:3px}
.book-card{scroll-margin-top:25px}
.channel-banner{padding:28px 32px;border:1px solid var(--ink);background:var(--paper2);margin:24px 0 45px;max-width:760px}
.channel-banner h3{font:normal clamp(32px,4vw,54px)/1.04 var(--serif);margin:13px 0}
.channel-banner p{font:14px/1.6 var(--sans);max-width:560px}
.channel-banner .buy-button{margin-top:8px;text-decoration:none}
@media(max-width:760px){.person-entry .person-text{grid-column:3;grid-row:2}.person-entry .person-text p{grid-column:auto}.person-entry .portrait-frame{grid-row:1/3}}
@media(max-width:480px){.book-short-description{font-size:12px;min-height:0}.person-entry .person-text{grid-column:3;grid-row:2}.channel-banner{padding:22px}}

/* Fidessa's official logo replaces the former text-generated wordmark. */
.logo,.footer-logo{display:inline-flex;align-items:center;justify-content:center;line-height:1;letter-spacing:0;min-width:0}
.logo .brand-logo-image{display:block;width:clamp(168px,21vw,273px);height:auto;max-height:118px;object-fit:contain;mix-blend-mode:multiply}
.footer-logo .brand-logo-image{display:block;width:clamp(175px,22vw,260px);height:auto;object-fit:contain;mix-blend-mode:multiply}
.setup-dialog{width:min(530px,calc(100% - 32px));border-radius:0}
.setup-dialog .setup-inner h2{font-size:clamp(35px,5vw,54px);line-height:1.04}
@media(max-width:760px){.logo .brand-logo-image{width:clamp(155px,35vw,230px);max-height:95px}}
@media(max-width:480px){.logo .brand-logo-image{width:155px;max-height:78px}.masthead-actions .action-link{font-size:8px;padding:8px}}

/* Official circular logo — provided by Fidessa; transparently self-hosted. */
.logo .brand-logo-image{width:clamp(100px,11vw,145px);height:auto;max-height:none;object-fit:contain;mix-blend-mode:normal}
.footer-logo .brand-logo-image{width:clamp(125px,14vw,172px);height:auto;object-fit:contain;mix-blend-mode:normal}
.masthead{align-items:center}
@media(max-width:760px){.logo .brand-logo-image{width:104px;max-height:none}}
@media(max-width:480px){.logo .brand-logo-image{width:76px;max-height:none}.masthead{gap:8px}.masthead-actions .action-link{font-size:8px}}
/* Live event listings use the existing editorial grid without placeholder cards. */
.events-row[data-event-list]{margin-top:30px}
.events-archive{margin-top:68px;border-top:1px solid var(--ink);padding-top:30px}
.events-archive h2{font:normal clamp(35px,4vw,58px)/1.1 var(--serif);margin:0}
.event-image{display:block;width:100%;height:170px;object-fit:cover;margin:16px 0}
.event-meta{font:11px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.event-book-link,.event-booking-link{display:inline-block;margin:12px 12px 0 0;border-bottom:1px solid currentColor;font:11px/1.4 var(--mono);text-transform:uppercase}
.event-booking-link:hover,.event-book-link:hover{color:var(--red)}
.events-empty{font:normal clamp(22px,3vw,34px)/1.25 var(--serif);padding:24px 0;grid-column:1/-1;margin:0}

/* Regional checkout controls are available only after the shop opens. */
.market-select-wrap[hidden]{display:none!important}.market-select{appearance:auto;border:1px solid var(--ink);background:var(--paper);padding:10px 8px;max-width:125px;font:10px var(--mono);text-transform:uppercase;color:var(--ink);cursor:pointer}.book-entry-number{display:block;color:var(--red);margin:0 0 4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:600px){.market-select{max-width:85px;padding:8px 4px;font-size:9px}.masthead-actions{gap:4px}}

/* Author's country is understated editorial metadata, below their name. */
.authors-page .person-row.with-portrait h3 .person-country{display:block;margin-top:12px;font:500 11px/1.45 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--red)}

/* Author country: separate text line immediately under the author name. */
.authors-page .person-row.with-portrait .person-heading{grid-column:3;min-width:0}
.authors-page .person-row.with-portrait .person-heading h3{grid-column:auto;max-width:100%;overflow-wrap:break-word}
.authors-page .person-row.with-portrait .person-heading .person-country{display:block;margin-top:10px;font:600 11px/1.45 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
@media(max-width:760px){.authors-page .person-row.with-portrait .person-heading{grid-column:3;grid-row:1}}


/* Homepage covers: standard 6:9 book ratio across the featured grid and hero covers.
   The homepage's editorial stagger and the Works page's level rows are preserved. */
[data-book-list="featured"] .book-image,
.hero-piece,
.hero-piece > .book-image {
  aspect-ratio: 6 / 9;
}
.hero-piece { max-height: none; }
.hero-piece > .book-image { width: 100%; height: 100%; }

/* Authors page: country selection only; keeps original entry order and layout. */
.authors-page .author-country-filter{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:-4px 0 25px;padding:0 0 22px;border-bottom:1px solid var(--rule)}
.authors-page .author-country-filter-field{display:grid;gap:9px;min-width:min(100%,260px)}
.authors-page .author-country-filter label{font:10px/1.45 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.authors-page .author-country-filter select{background:var(--paper);color:var(--ink);border:1px solid var(--ink);border-radius:0;padding:13px 38px 13px 13px;width:100%;min-height:46px;font:13px/1.35 var(--sans);cursor:pointer}
.authors-page .author-country-filter select:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.authors-page .author-country-count{margin:0 0 8px;color:var(--muted);font:11px/1.5 var(--mono);letter-spacing:.02em}
.authors-page .person-entry[hidden]{display:none!important}
@media(max-width:480px){.authors-page .author-country-filter-field{width:100%}.authors-page .author-country-filter{align-items:start}.authors-page .author-country-count{margin:0}}

/* Upcoming event attendance: simple editorial button, independent per event. */
.event-attend-actions{margin-top:22px;display:flex;align-items:center}
.event-attend-button{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:12px 22px;border:1px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;cursor:pointer;font:11px/1.25 var(--mono);letter-spacing:.06em;text-transform:uppercase;transition:background-color .18s,color .18s}
.event-attend-button:hover:not(:disabled){background:transparent;color:var(--ink)}
.event-attend-button:focus-visible{outline:3px solid var(--red);outline-offset:4px}
.event-attend-button:disabled{opacity:.5;cursor:not-allowed}
.event-card:nth-child(2) .event-attend-button{border-color:#f4f0e8;background:#f4f0e8;color:#293a3a}
.event-card:nth-child(2) .event-attend-button:hover:not(:disabled){background:transparent;color:#f4f0e8}


/* Forthcoming publication schedule: cover-free, publication-date order. */
.forthcoming-list{border-top:1px solid var(--ink)}
.forthcoming-row{display:grid;grid-template-columns:minmax(155px,.6fr) minmax(0,1.8fr) minmax(170px,.75fr);gap:clamp(18px,3vw,50px);padding:30px 0 34px;border-bottom:1px solid var(--rule);align-items:start;scroll-margin-top:25px}
.forthcoming-row .eyebrow{display:block;margin:0 0 9px}
.forthcoming-date p,.forthcoming-programme p{margin:0;font:13px/1.55 var(--sans);color:var(--ink)}
.forthcoming-row h2{font:normal clamp(30px,3vw,46px)/1.05 var(--serif);letter-spacing:-.018em;margin:0 0 13px}
.forthcoming-row .byline{margin:0;color:var(--muted);font:13px/1.65 var(--sans)}
.forthcoming-row .forthcoming-subtitle{margin:0 0 10px;color:var(--muted);font:italic 18px/1.4 var(--serif)}
@media(max-width:760px){.forthcoming-row{grid-template-columns:minmax(105px,.56fr) minmax(0,1.44fr);gap:14px 23px}.forthcoming-programme{grid-column:2}}
@media(max-width:480px){.forthcoming-row{grid-template-columns:1fr;gap:16px;padding:26px 0}.forthcoming-programme{grid-column:1}.forthcoming-date p{font-size:12px}.forthcoming-row h2{font-size:35px}}

/* Image clarity: retain natural, sharp browser resampling; protect full cover lettering.
   Responsive image sources are selected from generated high-resolution variants. */
.book-image img, .hero-piece img { object-fit:contain; object-position:center; image-rendering:auto; }
.brand-logo-image, .portrait-frame img, .event-image, .media-thumb img, .sub-card img { image-rendering:auto; }

/* Homepage cover panel — responsive 6:9 covers, with room for the editorial tilt.
   The old fixed gallery height / sideways translation caused covers to resize
   poorly or be clipped at narrow and very wide viewport sizes. */
.home-hero .hero-pieces {
  width: 100%;
  max-width: 540px;
  min-height: 0;
  margin: 20px auto 24px;
  padding: 18px 24px 34px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: auto;
  align-items: center;
  gap: clamp(12px, 2vw, 25px);
}
.home-hero .hero-piece {
  display: block;
  position: relative;
  width: 100%;
  min-width: 0;
  height: auto;
  max-height: none;
  aspect-ratio: 2 / 3;
  transform: translateY(-8px) rotate(-4deg);
  transform-origin: center;
  overflow: hidden;
}
.home-hero .hero-piece:nth-child(2) {
  transform: translateY(14px) rotate(4deg);
}
.home-hero .hero-piece > .book-image {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  aspect-ratio: 2 / 3;
  overflow: hidden;
}
.home-hero .hero-piece .cover-fallback {
  position: absolute;
  inset: 0;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow-wrap: anywhere;
}
.home-hero .hero-piece .book-image img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}
@media (max-width: 760px) {
  .home-hero .hero-right { min-height: 0; }
  .home-hero .hero-pieces {
    max-width: 450px;
    margin: 20px auto 28px;
    padding: 14px 24px 34px;
  }
}
@media (max-width: 480px) {
  .home-hero .hero-pieces {
    padding: 14px 20px 34px;
    gap: 16px;
  }
}
/* When a cover image is available, don't expose the brown fallback as letterboxing. */
.home-hero .hero-piece .book-image:has(img) { background: transparent; }
.home-hero .hero-piece .book-image:has(img) .cover-fallback { display: none; }


/* Selected Works — neutral, non-brown fallback when a cover file is missing.
   Book images themselves keep the original artwork and 6:9 dimensions.
   Upload the actual files named in data/catalogue.js to display real covers. */
#selected-works .book-image {
  aspect-ratio: 2 / 3;
  background: #f4f3ef;
}
#selected-works .cover-fallback,
#selected-works .cover-fallback.terracotta {
  background: #f4f3ef;
  color: #252420;
  outline: 1px solid #d2cec6;
  outline-offset: -1px;
}
#selected-works .cover-fallback .fallback-top,
#selected-works .cover-fallback .fallback-bottom { color: #66615a; }
#selected-works .book-image.cover-loaded .cover-fallback,
.home-hero .hero-piece .book-image.cover-loaded .cover-fallback { display: none; }
#selected-works .book-image.cover-loaded,
.home-hero .hero-piece .book-image.cover-loaded { background: transparent; }
/* The hero cover placeholders should also not present themselves as brown books. */
.home-hero .hero-piece .cover-fallback,
.home-hero .hero-piece .cover-fallback.terracotta { background: #e8e6df; color: #252420; }
.home-hero .hero-piece .cover-fallback .fallback-top,
.home-hero .hero-piece .cover-fallback .fallback-bottom { color: #57534d; }

/* Selected Works cover fix: only real cover artwork is shown. No painted
   brown/white surrogate cover can appear while an image is missing/loading. */
#selected-works .book-image,
.home-hero .hero-piece .book-image {
  background: transparent !important;
  aspect-ratio: 2 / 3;
}
#selected-works .cover-fallback,
.home-hero .hero-piece .cover-fallback { display: none !important; }
#selected-works .book-image img,
.home-hero .hero-piece .book-image img {
  object-fit: cover;
  object-position: center;
  display: block;
  width: 100%;
  height: 100%;
}
#selected-works .book-image.cover-loading img,
.home-hero .hero-piece .book-image.cover-loading img { opacity: 0; }
#selected-works .book-image.cover-loaded img,
.home-hero .hero-piece .book-image.cover-loaded img { opacity: 1; }
/* If neither local nor verified backup image is accessible, show no false cover. */
#selected-works .book-image.cover-missing,
.home-hero .hero-piece .book-image.cover-missing { display: none !important; }
.home-hero .hero-piece:has(.cover-missing) { display: none !important; }

/* Regional Subscription Service — follows site's Shopify country selection. */
.subscription-region{margin:0 0 24px;font:11px/1.55 var(--mono);letter-spacing:.055em;text-transform:uppercase;color:var(--muted)}
.subscriptions [data-subscription-price] .price-value{display:inline}
.subscriptions [data-subscription-price] small{white-space:nowrap}
@media(max-width:760px){.subscription-region{margin-bottom:19px}}

.subscriptions [data-subscription-price]{font-size:clamp(29px,3.4vw,53px);overflow-wrap:anywhere;line-height:1.12}
.subscriptions [data-subscription-price].is-unpriced{font:normal 26px/1.2 var(--serif)}

/* Cover viewing improvements: clearer cover presentation and a large preview modal.
   Clicking a cover opens an enlarged image so fine title typography remains legible. */
.book-title-link{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .18s ease,color .18s ease}
.book-title-link:hover{border-color:currentColor}
.book-image{cursor:zoom-in}
.cover-view-button{border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font:10px/1.25 var(--mono);letter-spacing:.045em;text-transform:uppercase;padding:14px 15px;min-height:43px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:.2s;white-space:nowrap}
.cover-view-button:hover{background:var(--ink);color:#fff}
.cover-view-button:focus-visible,.book-cover-link:focus-visible,.hero-piece:focus-visible{outline:2px solid var(--red);outline-offset:4px}
.cover-lightbox{border:0;padding:0;background:#111c1de6;color:#f7f3eb;width:min(94vw,1280px);max-width:none;box-shadow:0 30px 120px #0009}
.cover-lightbox::backdrop{background:#111c1de8}
.cover-lightbox-inner{padding:20px 20px 24px}
.cover-lightbox-top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}
.cover-lightbox-text{display:grid;gap:8px}
.cover-lightbox-title{font:normal clamp(30px,4vw,52px)/1 var(--serif);letter-spacing:-.03em;margin:0}
.cover-lightbox-meta{margin:0;color:#d8d2c8;font:13px/1.6 var(--sans)}
.cover-lightbox-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.cover-lightbox-close{background:transparent;border:1px solid #bec3bd;padding:9px 13px;color:#fff;cursor:pointer;font:10px/1.25 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.cover-lightbox-figure{margin:0;display:grid;gap:14px;justify-items:center}
.cover-lightbox-image{display:block;max-width:min(88vw,820px);max-height:78vh;width:auto;height:auto;box-shadow:0 16px 36px #0007;background:#fff}
.cover-lightbox-caption{max-width:78ch;color:#ddd4c6;text-align:center;font:12px/1.6 var(--sans)}
.cover-lightbox-error{margin:0;color:#f2dfd1;font:14px/1.6 var(--sans);text-align:center}
@media(max-width:760px){.cover-lightbox-top{flex-direction:column}.cover-lightbox-controls{justify-content:flex-start}.cover-view-button{padding:12px 13px;min-height:41px}}

/* Fidessa: consistent 6:9 thumbnails. The responsive srcset still selects
   sharp high-density artwork, while object-fit:cover prevents letterboxing
   whenever source artwork is slightly wider or taller than 6:9.
   The click-to-enlarge viewer retains the uncropped original. */
.books-grid .book-image,
#selected-works .book-image,
.home-hero .hero-piece > .book-image {
  aspect-ratio: 2 / 3;
  background: transparent !important;
  overflow: hidden;
}
.books-grid .book-image img,
#selected-works .book-image img,
.home-hero .hero-piece .book-image img {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center;
  image-rendering: auto;
  filter: none;
}
/* Empty or loading frames should not show grey strips. */
.books-grid .book-image.cover-loading,
.books-grid .book-image.cover-loaded { background-color: transparent !important; }

/* Cover legibility: the original images are the same in the list and the
   enlargement. Give fine cover lettering more *screen pixels* in the list.
   No filters, forced sharpening, or thumbnail substitutions are applied. */
@media (min-width: 1101px) {
  /* Works: three comfortably sized covers instead of four narrow ones. */
  [data-book-list="published"].books-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(28px, 3vw, 50px);
    row-gap: clamp(45px, 5vw, 75px);
  }
  /* Selected Works: four featured books in a large two-column spread.
     Keep the existing stagger; the images now approach viewer size. */
  #selected-works .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 1100px;
    margin-inline: auto;
    column-gap: clamp(28px, 5vw, 75px);
    row-gap: 55px;
  }
  [data-book-list="published"] .book-card {
    margin-top: 0;
  }
}
@media (min-width: 641px) and (max-width: 1100px) {
  [data-book-list="published"].books-grid,
  #selected-works .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  [data-book-list="published"] .book-card { margin-top: 0; }
}
@media (max-width: 640px) {
  [data-book-list="published"].books-grid,
  #selected-works .books-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 500px;
    margin-inline: auto;
    row-gap: 52px;
  }
  [data-book-list="published"] .book-card,
  #selected-works .book-card { margin-top: 0 !important; }
  [data-book-list="published"] .book-image,
  #selected-works .book-image { width: 100%; }
}


/* FINAL WORKS GRID: compact catalogue format. Five covers on wide screens.
   Works stays level; Selected Works keeps the editorial stagger.
   Original cover artwork and zoom viewer are unchanged. */
@media (min-width: 1200px) {
  [data-book-list="published"].books-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: clamp(16px, 1.8vw, 27px);
    row-gap: 58px;
  }
  #selected-works .books-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: none;
    margin-inline: 0;
    column-gap: clamp(16px, 2vw, 30px);
    row-gap: 55px;
  }
}
@media (min-width: 900px) and (max-width: 1199px) {
  [data-book-list="published"].books-grid {grid-template-columns:repeat(4,minmax(0,1fr));gap:46px 20px;}
  #selected-works .books-grid {grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;}
}
@media (min-width: 640px) and (max-width: 899px) {
  [data-book-list="published"].books-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 19px;}
  #selected-works .books-grid {grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;}
}
@media (max-width: 639px) {
  [data-book-list="published"].books-grid,
  #selected-works .books-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
    max-width:none;
    gap:38px 15px;
  }
}
[data-book-list="published"].books-grid .book-card {margin-top:0 !important;}
/* Preserve a slight editorial stagger only for Selected Works. */
@media (min-width: 640px) {
  #selected-works .books-grid .book-card:nth-child(2){margin-top:35px;}
  #selected-works .books-grid .book-card:nth-child(4){margin-top:60px;}
}
@media (max-width: 639px) {
  #selected-works .books-grid .book-card:nth-child(even){margin-top:32px !important;}
}


/* Catalogue buttons: View cover and Buy book share one aligned, equal-height row.
   The Shopify selling widget switches back to full-width when the shop is live. */
.book-actions:has(> .buy-slot) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 8px;
}
.book-actions > .cover-view-button,
.book-actions > .buy-slot > .buy-button {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  height: 100%;
  min-height: 44px;
  margin: 0;
  padding: 10px 6px;
  white-space: normal;
  line-height: 1.25;
  text-align: center;
}
.book-actions > .buy-slot {
  display: flex;
  align-items: stretch;
  min-width: 0;
  min-height: 0;
  margin: 0;
}
.book-actions:has(.buy-widget) { grid-template-columns: minmax(0, 1fr); }
.book-actions:has(.buy-widget) > .cover-view-button { height: auto; }


/* Equal baseline for each row of book actions.
   The grid row takes the height of its tallest title/description. All cards
   stretch to that height, their information stacks vertically, and the action
   groups anchor to the bottom. Works keeps level covers; Selected Works may
   retain its offset covers without displacing the buttons. */
[data-book-list="published"].books-grid,
#selected-works .books-grid {
  align-items: stretch;
}
[data-book-list="published"].books-grid > .book-card,
#selected-works .books-grid > .book-card {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-height: 0;
}
[data-book-list="published"].books-grid > .book-card > .book-under,
#selected-works .books-grid > .book-card > .book-under {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
[data-book-list="published"].books-grid .book-under > .book-actions,
#selected-works .books-grid .book-under > .book-actions {
  margin-top: auto;
  padding-top: 20px;
}
