/*
Theme Name: Space 2047 Impossible Author Study
Theme URI: https://space2047.com
Author: Benjamin Robinson / ChatGPT
Description: A fresh cinematic interactive author website theme built as an Impossible Author's Study for Space 2047, with hotspots, music library popup, portal navigation, sponsor button, blog/transmission panels and responsive mobile scene sections.
Version: 1.0.23
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: space2047-study
*/

:root{--s2047-gold:#f4c33a;--s2047-blue:#1463b7;--s2047-deep:#05070b;--s2047-ink:#101319;--s2047-panel:rgba(9,12,18,.88);--s2047-cream:#fff5df;--s2047-line:rgba(244,195,58,.5)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#05070b;color:#fff;font-family:Inter,Arial,sans-serif;overflow-x:hidden}body.s2047-menu-open,body.s2047-search-open,body.s2047-music-open{overflow:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.screen-reader-text{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.s2047-site{min-height:100vh;background:radial-gradient(circle at 50% 15%,rgba(42,100,190,.18),transparent 38%),#05070b}.s2047-topbar{position:sticky;top:0;z-index:2000;background:linear-gradient(180deg,#080b10,#040508);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 10px 35px rgba(0,0,0,.45)}.s2047-header{height:72px;display:flex;align-items:center;gap:22px;padding:0 28px}.s2047-logo{display:flex;align-items:center;gap:16px;min-width:320px}.s2047-mark{font-family:Georgia,serif;font-style:italic;color:var(--s2047-gold);font-size:40px;line-height:1;text-shadow:0 0 18px rgba(244,195,58,.35)}.s2047-brand-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1}.s2047-brand-title{display:block;font-family:Georgia,serif;letter-spacing:.18em;font-size:24px;white-space:nowrap}.s2047-brand-sub{display:block;color:var(--s2047-gold);font-size:11px;text-transform:uppercase;letter-spacing:.22em;margin-top:7px;white-space:nowrap}.s2047-nav{display:flex;align-items:stretch;height:100%;margin-left:auto}.s2047-nav button,.s2047-nav a{appearance:none;border:0;background:transparent;color:#fff;padding:0 21px;display:flex;align-items:center;gap:9px;font-size:14px;letter-spacing:.08em;text-transform:uppercase;border-left:1px solid rgba(255,255,255,.08);cursor:pointer}.s2047-nav .active{color:var(--s2047-gold);box-shadow:inset 0 -3px 0 var(--s2047-gold)}.s2047-nav svg{width:22px;height:22px}.s2047-socials{display:flex;gap:10px;align-items:center;padding-left:15px}.s2047-socials a{font-weight:800;color:#fff;opacity:.95}.s2047-socials .s2047-social-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;overflow:hidden;transition:transform .18s ease,filter .18s ease}.s2047-socials .s2047-social-icon:hover,.s2047-socials .s2047-social-icon:focus-visible{transform:translateY(-2px) scale(1.08);filter:drop-shadow(0 0 7px rgba(255,255,255,.6));outline:none}.s2047-socials .s2047-social-icon img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.s2047-sponsor-btn{margin-left:8px;border:1px solid var(--s2047-gold);background:linear-gradient(180deg,#ffd85b,#d99b13);color:#090909;border-radius:4px;padding:13px 22px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 0 28px rgba(244,195,58,.28)}.s2047-thanks{background:linear-gradient(90deg,#e6a918,#ffda55,#e8ab18);color:#080808;font-weight:800;text-align:center;letter-spacing:.16em;text-transform:uppercase;padding:11px 18px;font-size:13px}.s2047-hero{position:relative;min-height:calc(100vh - 110px);overflow:hidden;background:#111}.s2047-scene{position:relative;min-height:760px;background-image:url('assets/img/impossible-study-homepage.png');background-size:cover;background-position:center top}.s2047-scene:after{content:"";position:absolute;inset:0;background:transparent;pointer-events:none}.s2047-hotspot{position:absolute;z-index:5;background:var(--s2047-panel);border:1px solid var(--s2047-line);border-radius:10px;padding:14px 18px;min-width:150px;box-shadow:0 8px 28px rgba(0,0,0,.45),0 0 15px rgba(244,195,58,.14);backdrop-filter:none;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease}.s2047-hotspot:hover,.s2047-hotspot:focus-visible{transform:translateY(-4px) scale(1.02);border-color:#ffd85b;box-shadow:0 12px 32px rgba(0,0,0,.5),0 0 26px rgba(244,195,58,.38);outline:none}.s2047-hotspot strong{display:flex;gap:8px;align-items:center;color:var(--s2047-gold);font-size:15px;text-transform:uppercase;letter-spacing:.06em}.s2047-hotspot span{display:block;color:#fff;font-size:13px;line-height:1.35;margin-top:6px}.hs-books{left:6%;top:11%}.hs-radio{left:5%;top:37%}.hs-poetry{left:11%;top:69%}.hs-type{left:29%;top:33%}.hs-window{left:37%;top:17%}.hs-manuscript{left:46%;top:44%}.hs-search{left:51%;top:66%}.hs-about{left:54%;top:16%}.hs-characters{left:51%;top:28%}.hs-portal{right:14%;top:14%}.hs-games{right:8%;top:35%}.hs-phone{right:31%;top:55%}.hs-sponsor{right:8%;top:58%}.hs-archive{right:2%;top:48%}.hs-secret{right:4%;top:71%;border-color:#ffd21b;box-shadow:0 0 26px rgba(244,195,58,.3)}.s2047-portal-glow{position:absolute;right:17%;top:14%;width:23%;height:45%;border-radius:50%;z-index:2;background:radial-gradient(circle,rgba(61,172,255,.28),transparent 58%);filter:blur(12px);animation:s2047Pulse 3.5s ease-in-out infinite;pointer-events:none}.s2047-airship{position:absolute;left:-10%;top:16%;z-index:3;opacity:.65;font-size:28px;animation:s2047Fly 28s linear infinite}.s2047-character-bubble{position:absolute;left:20px;bottom:245px;z-index:8;width:310px;background:rgba(6,9,14,.92);border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:14px 16px;box-shadow:0 12px 36px rgba(0,0,0,.45)}.s2047-character-bubble b{color:var(--s2047-gold)}.s2047-character-bubble p{margin:6px 0 0;color:#dbe7ff;font-size:13px}.s2047-panels{position:absolute;left:18px;right:18px;bottom:88px;z-index:7;display:grid;grid-template-columns:1.25fr 1.35fr 1.4fr 1.25fr 1fr 1fr;gap:10px}.s2047-panel{min-height:112px;background:rgba(255,248,235,.9);color:#101319;border:1px solid rgba(0,0,0,.15);border-radius:10px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.2)}.s2047-panel h3{margin:0 0 8px;color:#0f559f;text-transform:uppercase;letter-spacing:.08em;font-size:13px}.s2047-panel p{margin:0;color:#1b2735;font-size:14px;line-height:1.35}.s2047-panel .button{display:inline-block;margin-top:10px;background:#0f5ead;color:#fff;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:800}.s2047-now{display:flex;gap:12px;align-items:center}.s2047-cover{width:58px;height:74px;background:linear-gradient(160deg,#123b73,#dd9f21);border-radius:4px}.s2047-play{margin-top:10px;display:flex;align-items:center;gap:10px}.s2047-play button{border:0;background:#145fae;color:#fff;border-radius:999px;width:36px;height:36px;cursor:pointer}.s2047-time{text-align:center}.s2047-time .big{font-size:34px;color:#12355f}.s2047-bottom-nav{position:absolute;left:18px;right:18px;bottom:14px;z-index:8;display:grid;grid-template-columns:repeat(10,1fr);background:rgba(255,248,235,.92);border-radius:9px;overflow:hidden;border:1px solid rgba(0,0,0,.12)}.s2047-bottom-nav a{color:#132235;padding:15px 10px;border-right:1px solid rgba(0,0,0,.12);display:flex;gap:9px;align-items:center;justify-content:center;min-height:62px}.s2047-bottom-nav strong{font-size:12px;color:#0e5aa5;text-transform:uppercase}.s2047-bottom-nav span{font-size:12px;display:block}.s2047-content{max-width:1180px;margin:0 auto;padding:48px 20px;color:#111;background:#fff}.s2047-content h1,.s2047-content h2{font-family:Georgia,serif}.s2047-content a{color:#0f5ead}.s2047-overlay{position:fixed;inset:0;z-index:3000;display:none;background:rgba(0,0,0,.72);backdrop-filter:blur(6px);padding:84px 20px;overflow:auto}.s2047-overlay.active{display:block}.s2047-modal{max-width:760px;margin:0 auto;background:#080c13;border:1px solid var(--s2047-line);border-radius:16px;box-shadow:0 22px 80px rgba(0,0,0,.68);padding:24px}.s2047-modal-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(244,195,58,.25);padding-bottom:14px;margin-bottom:18px}.s2047-modal h2{font-family:Georgia,serif;letter-spacing:.08em;margin:0;color:var(--s2047-gold)}.s2047-close{border:1px solid rgba(255,255,255,.25);background:#111;color:#fff;border-radius:999px;width:38px;height:38px;cursor:pointer;font-size:22px}.s2047-menu-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.s2047-menu-list a{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:15px;color:#fff}.s2047-search-form{display:flex;gap:10px}.s2047-search-form input{flex:1;background:#fff;border:0;border-radius:8px;padding:14px;font-size:16px}.s2047-search-form button{background:var(--s2047-gold);border:0;border-radius:8px;font-weight:900;padding:0 22px}.s2047-music-modal{max-width:820px}.s2047-radio-help{margin:10px 0 12px;color:#dbe7ff}.s2047-track-browser{display:grid;grid-template-rows:46px minmax(190px,360px);gap:8px;margin-top:14px}.s2047-track-arrow-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.s2047-track-arrow{width:100%;height:46px;border:1px solid rgba(244,195,58,.75);border-radius:12px;background:linear-gradient(180deg,#ffdc57,#c98f10);color:#090909;font-size:23px;font-weight:900;cursor:pointer;box-shadow:0 0 20px rgba(244,195,58,.25)}.s2047-track-arrow:hover,.s2047-track-arrow:focus-visible{filter:brightness(1.08);outline:2px solid #fff;outline-offset:2px}.s2047-tracklist{max-height:360px;overflow-y:scroll;padding:4px 12px 4px 4px;scrollbar-width:auto;scrollbar-color:var(--s2047-gold) #161a22;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(0,0,0,.22)}.s2047-tracklist::-webkit-scrollbar{width:24px;background:#161a22}.s2047-tracklist::-webkit-scrollbar-thumb{background:linear-gradient(#ffdc57,#c98f10);border-radius:14px;border:4px solid #161a22}.s2047-tracklist::-webkit-scrollbar-button:vertical:start:decrement,.s2047-tracklist::-webkit-scrollbar-button:vertical:end:increment{display:block;height:24px;background:#ffcf42}.s2047-track{width:100%;text-align:left;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:10px;padding:12px 14px;margin:0 0 8px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px}.s2047-track span{font-weight:800}.s2047-track small{opacity:.72;font-size:11px;white-space:nowrap}.s2047-track:hover,.s2047-track:focus-visible,.s2047-track.active{border-color:var(--s2047-gold);box-shadow:0 0 16px rgba(244,195,58,.18);outline:none}.s2047-no-tracks{padding:18px;color:#fff}.s2047-audio{width:100%;margin-top:10px}.s2047-mobile-sections{display:none}.s2047-page-header{padding:70px 20px;background:linear-gradient(135deg,#070b12,#12213b);color:#fff;text-align:center}.s2047-page-header h1{font-family:Georgia,serif;font-size:44px;letter-spacing:.08em}.s2047-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}.s2047-card{border:1px solid #ddd;border-radius:12px;padding:20px;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.08)}.s2047-footer{background:#05070b;color:#aeb7c7;text-align:center;padding:30px 20px;border-top:1px solid rgba(255,255,255,.12)}
@keyframes s2047Pulse{50%{opacity:.55;transform:scale(1.04)}}@keyframes s2047Fly{to{transform:translateX(125vw)}}
@media(max-width:1100px){.s2047-header{padding:0 14px}.s2047-logo{min-width:240px}.s2047-brand-title{font-size:18px}.s2047-socials{display:none}.s2047-sponsor-btn{padding:10px 12px;font-size:12px}.s2047-panels{grid-template-columns:repeat(3,1fr);bottom:100px}.s2047-bottom-nav{grid-template-columns:repeat(5,1fr)}}
@media(max-width:780px){.s2047-header{height:auto;min-height:70px;flex-wrap:wrap;gap:6px}.s2047-logo{width:100%;min-width:0}.s2047-nav{width:100%;height:54px;justify-content:space-around}.s2047-nav a,.s2047-nav button{padding:0 8px;font-size:12px}.s2047-sponsor-btn{display:none!important}.s2047-thanks{font-size:11px;letter-spacing:.05em}.s2047-scene{background-position:center top;min-height:560px}.s2047-hotspot,.s2047-character-bubble,.s2047-panels,.s2047-bottom-nav{display:none}.s2047-mobile-sections{display:grid;gap:16px;padding:18px;background:#fff;color:#111}.s2047-mobile-card{border-radius:16px;min-height:170px;padding:22px;background-size:cover;background-position:center;color:#fff;position:relative;overflow:hidden}.s2047-mobile-card:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.22))}.s2047-mobile-card>*{position:relative}.s2047-mobile-card h2{font-family:Georgia,serif;color:var(--s2047-gold)}.s2047-content{padding:30px 18px}.s2047-menu-list{grid-template-columns:1fr}.s2047-search-form{flex-direction:column}}


/* v1.0.3 — cleaned the baked-in scene labels/header/panels from the background image so the real HTML boxes are the only visible clickable boxes. */


/* v1.0.5 — requested alignment, larger bottom boxes/text, black dividers */
.s2047-brand-copy{
  align-items:center;
  text-align:center;
}
.s2047-brand-title,
.s2047-brand-sub{
  text-align:center;
}
.s2047-sponsor-btn{
  text-align:center;
  justify-content:center;
}
.s2047-bottom-nav{
  border-color:#000;
}
.s2047-bottom-nav a{
  min-height:88px;
  padding:20px 14px;
  border-right:2px solid #000;
  gap:12px;
}
.s2047-bottom-nav a:last-child{
  border-right:0;
}
.s2047-bottom-nav strong{
  font-size:16px;
  line-height:1.2;
}
.s2047-bottom-nav span{
  font-size:15px;
  line-height:1.35;
}


/* v1.0.6 — quick-link boxes moved into black footer above copyright */
.s2047-footer{padding:0 0 30px;background:#05070b;}
.s2047-footer-links-wrap{background:#05070b;padding:24px 18px 22px;}
.s2047-footer .s2047-footer-bottom-nav{position:static;left:auto;right:auto;bottom:auto;width:100%;margin:0 auto;max-width:none;display:grid;}
.s2047-footer>p{margin:0;padding:8px 20px 0;}
@media(max-width:1100px){.s2047-footer .s2047-footer-bottom-nav{grid-template-columns:repeat(5,1fr)}}
@media(max-width:780px){.s2047-footer-links-wrap{display:none}}

/* v1.0.8 — rebuilt the theme background as a high-resolution sharp asset and removed scene-softening overlays. */

/* v1.0.9: show the cinematic feature cards on desktop as well as mobile */
@media(min-width:781px){
  .s2047-mobile-sections{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:34px clamp(28px,5vw,80px);background:#fff;color:#111}
  .s2047-mobile-card{display:flex;min-height:280px;border-radius:24px;padding:34px 38px;background-size:cover;background-position:center;position:relative;overflow:hidden;color:#fff;flex-direction:column;justify-content:center;text-decoration:none;border:0;box-shadow:0 10px 28px rgba(0,0,0,.18);text-align:left;cursor:pointer}
  .s2047-mobile-card:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.18))}
  .s2047-mobile-card>*{position:relative;z-index:1}
  .s2047-mobile-card h2{margin:0 0 18px;font:700 clamp(34px,3.2vw,54px)/1.05 Georgia,serif;color:var(--s2047-gold)}
  .s2047-mobile-card p{margin:0;font-size:clamp(18px,1.6vw,27px);line-height:1.35;color:#fff;text-shadow:0 2px 5px #000}
  .s2047-mobile-card:last-child{grid-column:1/-1}
}


/* v1.0.10 — hide the floating Sponsor My Writing button on mobile so it cannot cover the menu or content. The Sponsor Jar card remains visible. */
@media(max-width:780px){.s2047-sponsor-btn{display:none!important;position:static!important}}


/* v1.0.11 — replaced the redrawn scene asset with a clean study-only background, keeping the classic old black/gold header at the top instead of baking a new header into the picture. */


/* v1.0.14 — blog posts and single posts styled like the study labels, with featured images above excerpts. */
.s2047-posts-content,
.s2047-single-content{
  background:radial-gradient(circle at 50% 0%,rgba(244,195,58,.10),transparent 34%),#070b12;
  color:#fff;
}
.s2047-post-grid{
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:26px;
}
.s2047-post-card,
.s2047-single-container{
  overflow:hidden;
  padding:0;
  background:linear-gradient(180deg,rgba(12,16,24,.94),rgba(5,8,13,.96));
  border:1px solid var(--s2047-line);
  border-radius:14px;
  box-shadow:0 16px 42px rgba(0,0,0,.45),0 0 18px rgba(244,195,58,.12);
  color:#fff;
  backdrop-filter:none;
}
.s2047-post-card:hover{
  transform:translateY(-4px);
  border-color:#ffd85b;
  box-shadow:0 18px 46px rgba(0,0,0,.52),0 0 28px rgba(244,195,58,.28);
}
.s2047-post-image,
.s2047-single-featured{
  display:block;
  width:100%;
  background:#101722;
  border-bottom:1px solid rgba(244,195,58,.35);
  overflow:hidden;
}
.s2047-post-image img,
.s2047-single-featured img{
  display:block;
  width:100%;
  height:230px;
  object-fit:cover;
}
.s2047-single-featured img{height:auto;max-height:560px;}
.s2047-post-image-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:230px;
  font-family:Georgia,serif;
  font-size:34px;
  letter-spacing:.12em;
  color:var(--s2047-gold);
  background:linear-gradient(135deg,#111827,#05070b);
  text-shadow:0 0 18px rgba(244,195,58,.3);
}
.s2047-post-card-body,
.s2047-single-body{
  padding:22px 24px 26px;
}
.s2047-post-card h2{
  margin:0 0 8px;
  font-family:Georgia,serif;
  font-size:28px;
  line-height:1.1;
}
.s2047-post-card h2 a,
.s2047-single-body h1,
.s2047-single-body h2,
.s2047-single-body h3{
  color:var(--s2047-gold);
}
.s2047-post-card h2 a{text-decoration:none;}
.s2047-post-meta{
  margin:0 0 14px;
  color:#d7c18a;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.s2047-post-excerpt,
.s2047-single-body{
  color:#f4f0e7;
  font-size:16px;
  line-height:1.7;
}
.s2047-read-more{
  display:inline-block;
  margin-top:18px;
  color:#090909!important;
  background:linear-gradient(180deg,#ffdc57,#c98f10);
  border:1px solid rgba(244,195,58,.8);
  border-radius:999px;
  padding:10px 16px;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 0 16px rgba(244,195,58,.18);
}
.s2047-read-more:hover,
.s2047-read-more:focus-visible{filter:brightness(1.08);outline:2px solid #fff;outline-offset:2px;}
.s2047-single-container{
  max-width:960px;
  margin:0 auto;
}
.s2047-single-body a{color:var(--s2047-gold);}
.s2047-post-nav{
  border-top:1px solid rgba(244,195,58,.25);
  padding:18px 24px 24px;
}
.s2047-post-nav a{color:var(--s2047-gold);font-weight:800;}
.s2047-pagination{margin-top:28px;text-align:center;}
.s2047-pagination .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;}
.s2047-pagination a,
.s2047-pagination span{
  background:rgba(12,16,24,.94);
  border:1px solid var(--s2047-line);
  border-radius:9px;
  padding:9px 13px;
  color:#fff;
}
.s2047-pagination .current{color:#090909;background:linear-gradient(180deg,#ffdc57,#c98f10);font-weight:900;}
@media(max-width:780px){
  .s2047-post-grid{grid-template-columns:1fr;gap:18px;}
  .s2047-post-image img,.s2047-post-image-placeholder{height:190px;min-height:190px;}
  .s2047-post-card-body,.s2047-single-body{padding:18px;}
  .s2047-post-card h2{font-size:24px;}
}


/* v1.0.16 — blog page grid: square label-style post containers with featured image, excerpt, date and time. */
.s2047-posts-content{
  max-width:none;
  padding:48px clamp(16px,3vw,42px);
}
.s2047-post-grid{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:24px;
  align-items:stretch;
}
.s2047-post-card{
  aspect-ratio:1 / 1;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(244,195,58,.58);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(12,16,24,.93),rgba(5,8,13,.98));
  box-shadow:0 12px 34px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,216,91,.08), 0 0 18px rgba(244,195,58,.14);
}
.s2047-post-image{
  flex:0 0 45%;
  min-height:0;
  border-bottom:1px solid rgba(244,195,58,.45);
}
.s2047-post-image img,
.s2047-post-image-placeholder{
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
}
.s2047-post-card-body{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:18px 20px 20px;
}
.s2047-post-card h2{
  font-size:clamp(21px,2vw,27px);
  margin:0 0 8px;
}
.s2047-post-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px 10px;
  margin:0 0 10px;
}
.s2047-post-meta span{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(244,195,58,.38);
  border-radius:999px;
  padding:5px 9px;
  background:rgba(244,195,58,.08);
  color:#f3d276;
}
.s2047-post-excerpt{
  font-size:15px;
  line-height:1.48;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
}
.s2047-read-more{
  margin-top:auto;
  align-self:flex-start;
  padding:8px 14px;
}
.s2047-single-container{
  border:1px solid rgba(244,195,58,.58);
  border-radius:14px;
  box-shadow:0 16px 42px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,216,91,.08), 0 0 22px rgba(244,195,58,.16);
}
@media(max-width:780px){
  .s2047-posts-content{padding:32px 16px;}
  .s2047-post-card{aspect-ratio:auto;min-height:430px;}
  .s2047-post-image{flex-basis:210px;}
}


/* v1.0.17 — fixed blog archive/posts page: true square grid cards matching the gold bordered study labels. */
.s2047-blog-page{
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  padding:46px clamp(14px,3vw,44px)!important;
  background:radial-gradient(circle at 50% 0%,rgba(244,195,58,.12),transparent 34%),#070b12!important;
  color:#fff!important;
}
.s2047-blog-grid{
  max-width:1320px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(285px,1fr));
  gap:26px;
  align-items:stretch;
}
.s2047-post-square{
  aspect-ratio:1/1;
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:rgba(9,12,18,.92);
  border:1px solid rgba(244,195,58,.62);
  border-radius:12px;
  box-shadow:0 8px 28px rgba(0,0,0,.45),0 0 15px rgba(244,195,58,.14);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.s2047-post-square:hover{
  transform:translateY(-4px) scale(1.01);
  border-color:#ffd85b;
  box-shadow:0 12px 32px rgba(0,0,0,.5),0 0 26px rgba(244,195,58,.38);
}
.s2047-post-square-image{
  flex:0 0 46%;
  display:block;
  width:100%;
  min-height:0;
  overflow:hidden;
  background:#101722;
  border-bottom:1px solid rgba(244,195,58,.45);
}
.s2047-post-square-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.s2047-post-square-placeholder{
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  font-family:Georgia,serif;
  font-size:28px;
  letter-spacing:.14em;
  color:var(--s2047-gold);
  background:linear-gradient(135deg,#111827,#05070b);
  text-shadow:0 0 18px rgba(244,195,58,.32);
}
.s2047-post-square-body{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:16px 18px 18px;
}
.s2047-post-square h2{
  margin:0 0 8px!important;
  font-family:Georgia,serif;
  font-size:clamp(20px,2vw,26px)!important;
  line-height:1.08;
}
.s2047-post-square h2 a{
  color:var(--s2047-gold)!important;
  text-decoration:none!important;
}
.s2047-post-square-meta{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:9px;
}
.s2047-post-square-meta span{
  border:1px solid rgba(244,195,58,.38);
  border-radius:999px;
  padding:4px 8px;
  background:rgba(244,195,58,.08);
  color:#f3d276;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.s2047-post-square-excerpt{
  color:#fff;
  font-size:14px;
  line-height:1.42;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
}
.s2047-post-square-more{
  margin-top:auto;
  align-self:flex-start;
  color:#090909!important;
  background:linear-gradient(180deg,#ffdc57,#c98f10);
  border:1px solid rgba(244,195,58,.8);
  border-radius:999px;
  padding:7px 12px;
  font-size:13px;
  font-weight:900;
  text-decoration:none!important;
}
.s2047-single-content{
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  padding:46px clamp(14px,3vw,44px)!important;
  background:radial-gradient(circle at 50% 0%,rgba(244,195,58,.12),transparent 34%),#070b12!important;
}
.s2047-single-container{
  max-width:980px!important;
  margin:0 auto!important;
  overflow:hidden;
  background:rgba(9,12,18,.92)!important;
  border:1px solid rgba(244,195,58,.62)!important;
  border-radius:12px!important;
  box-shadow:0 8px 28px rgba(0,0,0,.45),0 0 15px rgba(244,195,58,.14)!important;
}
.s2047-single-featured{border-bottom:1px solid rgba(244,195,58,.45)!important;}
.s2047-single-body{color:#fff!important;padding:28px!important;}
.s2047-single-body h1,.s2047-single-body h2,.s2047-single-body h3{color:var(--s2047-gold)!important;}
@media(max-width:780px){
  .s2047-blog-page{padding:28px 14px!important;}
  .s2047-blog-grid{grid-template-columns:1fr;gap:18px;}
  .s2047-post-square{aspect-ratio:auto;min-height:430px;}
  .s2047-post-square-image{flex-basis:205px;}
}


/* v1.0.20 — tighten every page title block under the yellow bar and make blog cards taller so excerpts no longer crop. */
.s2047-page-header{
  padding:18px 20px 16px!important;
  margin:0!important;
  background:linear-gradient(135deg,#070b12,#12213b)!important;
}
.s2047-page-header h1{
  margin:0!important;
  font-size:clamp(34px,4vw,50px)!important;
  line-height:1.05!important;
}
.s2047-page-header p{
  margin:10px 0 0!important;
  line-height:1.25!important;
}
.s2047-blog-page,
.s2047-single-content,
.s2047-posts-content{
  padding-top:24px!important;
}
.s2047-blog-grid{
  grid-template-columns:repeat(auto-fill,minmax(330px,1fr))!important;
  gap:28px!important;
}
.s2047-post-square{
  aspect-ratio:auto!important;
  min-height:560px!important;
  height:auto!important;
}
.s2047-post-square-image{
  flex:0 0 250px!important;
  height:250px!important;
}
.s2047-post-square-body{
  min-height:300px!important;
  padding:20px 22px 22px!important;
}
.s2047-post-square h2{
  font-size:clamp(24px,2.2vw,32px)!important;
  margin-bottom:10px!important;
}
.s2047-post-square-meta{margin-bottom:12px!important;}
.s2047-post-square-excerpt{
  font-size:15.5px!important;
  line-height:1.55!important;
  overflow:visible!important;
  display:block!important;
  -webkit-line-clamp:unset!important;
  -webkit-box-orient:unset!important;
}
.s2047-post-square-more{
  margin-top:auto!important;
}
@media(max-width:780px){
  .s2047-page-header{padding:14px 14px 12px!important;}
  .s2047-page-header h1{font-size:clamp(32px,10vw,46px)!important;}
  .s2047-blog-page,.s2047-single-content,.s2047-posts-content{padding-top:18px!important;}
  .s2047-blog-grid{grid-template-columns:1fr!important;gap:20px!important;}
  .s2047-post-square{min-height:560px!important;}
  .s2047-post-square-image{flex-basis:230px!important;height:230px!important;}
  .s2047-post-square-body{min-height:320px!important;padding:18px 20px 22px!important;}
  .s2047-post-square-excerpt{font-size:15px!important;line-height:1.55!important;}
}

/* v1.0.21 — rebalance blog cards: less empty image space, centred date/excerpt/button, no cropped content. */
.s2047-blog-grid{
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr))!important;
  gap:26px!important;
  align-items:stretch!important;
}
.s2047-post-square{
  min-height:0!important;
  height:auto!important;
  aspect-ratio:auto!important;
  justify-content:flex-start!important;
}
.s2047-post-square-image{
  flex:0 0 170px!important;
  height:170px!important;
  min-height:170px!important;
}
.s2047-post-square-placeholder{
  font-size:24px!important;
  min-height:170px!important;
}
.s2047-post-square-body{
  min-height:0!important;
  padding:18px 20px 20px!important;
  text-align:center!important;
  align-items:center!important;
}
.s2047-post-square h2{
  width:100%!important;
  text-align:center!important;
  margin:0 0 10px!important;
}
.s2047-post-square-meta{
  width:100%!important;
  justify-content:center!important;
  margin:0 0 12px!important;
}
.s2047-post-square-excerpt{
  width:100%!important;
  max-width:95%!important;
  margin:0 auto 18px!important;
  text-align:center!important;
  color:#fff!important;
  overflow:visible!important;
  display:block!important;
  -webkit-line-clamp:unset!important;
  -webkit-box-orient:unset!important;
  font-size:15px!important;
  line-height:1.5!important;
}
.s2047-post-square-more{
  align-self:center!important;
  margin:8px auto 0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
@media(max-width:780px){
  .s2047-blog-grid{grid-template-columns:1fr!important;gap:18px!important;}
  .s2047-post-square-image{flex-basis:150px!important;height:150px!important;min-height:150px!important;}
  .s2047-post-square-placeholder{min-height:150px!important;font-size:22px!important;}
  .s2047-post-square-body{padding:16px 18px 18px!important;}
  .s2047-post-square-excerpt{font-size:14.5px!important;line-height:1.45!important;margin-bottom:14px!important;}
}

/* v1.0.22 dynamic author placeholder */
.s2047-post-square-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.55rem;padding:1rem}
.s2047-post-square-placeholder strong{display:block;font:700 clamp(1rem,1.7vw,1.45rem)/1.2 Georgia,serif;letter-spacing:.04em}
.s2047-post-square-placeholder small{display:block;font-size:clamp(.72rem,1vw,.95rem);letter-spacing:.03em}

/* v1.0.23 — official two-column About Me page, matching the gold label borders. */
.s2047-about-page{
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  padding:24px clamp(14px,4vw,56px) 54px!important;
  background:radial-gradient(circle at 50% 0%,rgba(244,195,58,.12),transparent 32%),#070b12!important;
  color:#fff!important;
}
.s2047-about-grid{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(280px,430px) minmax(0,1fr);
  gap:30px;
  align-items:stretch;
}
.s2047-about-portrait-card,
.s2047-about-blurb-card{
  background:rgba(9,12,18,.92);
  border:1px solid rgba(244,195,58,.62);
  border-radius:14px;
  box-shadow:0 8px 28px rgba(0,0,0,.45),0 0 15px rgba(244,195,58,.14);
  overflow:hidden;
}
.s2047-about-portrait-card{
  display:flex;
  flex-direction:column;
}
.s2047-about-portrait-frame{
  flex:1;
  min-height:520px;
  border-bottom:1px solid rgba(244,195,58,.45);
  background:linear-gradient(135deg,#111827,#05070b);
}
.s2047-about-portrait{
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
  display:block;
}
.s2047-about-portrait-placeholder{
  min-height:520px;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:26px;
  color:var(--s2047-gold);
}
.s2047-about-portrait-placeholder span{
  font-family:Georgia,serif;
  font-style:italic;
  font-size:clamp(74px,8vw,128px);
  text-shadow:0 0 24px rgba(244,195,58,.35);
}
.s2047-about-portrait-placeholder small{
  max-width:260px;
  color:#fff;
  line-height:1.5;
  opacity:.9;
}
.s2047-about-caption{
  text-align:center;
  padding:20px 18px 22px;
}
.s2047-about-caption strong{
  display:block;
  font-family:Georgia,serif;
  color:var(--s2047-gold);
  font-size:clamp(24px,2.4vw,34px);
  line-height:1.1;
}
.s2047-about-caption span{
  display:block;
  margin-top:8px;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:12px;
}
.s2047-about-blurb-card{
  padding:clamp(24px,3vw,42px);
}
.s2047-about-kicker{
  display:inline-flex;
  margin-bottom:18px;
  padding:7px 12px;
  border:1px solid rgba(244,195,58,.42);
  border-radius:999px;
  background:rgba(244,195,58,.08);
  color:#f3d276;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.s2047-about-copy{
  font-size:clamp(17px,1.45vw,20px);
  line-height:1.72;
  color:#fff;
}
.s2047-about-copy p{
  margin:0 0 1.15em;
}
.s2047-about-copy strong,
.s2047-about-copy em{
  color:var(--s2047-gold);
}
.s2047-about-bookshelf{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
  padding-top:24px;
  border-top:1px solid rgba(244,195,58,.35);
}
.s2047-about-bookshelf span{
  border:1px solid rgba(244,195,58,.42);
  border-radius:999px;
  padding:8px 12px;
  background:rgba(244,195,58,.08);
  color:#f3d276;
  font-size:12px;
  font-weight:800;
  letter-spacing:.05em;
}
@media(max-width:860px){
  .s2047-about-grid{grid-template-columns:1fr;gap:20px;}
  .s2047-about-portrait-frame,.s2047-about-portrait,.s2047-about-portrait-placeholder{min-height:380px;}
  .s2047-about-caption span{font-size:11px;}
  .s2047-about-blurb-card{padding:22px 20px;}
  .s2047-about-copy{font-size:16px;line-height:1.62;}
}

/* v1.0.24 About page refinements */
.s2047-about-header{padding:18px 20px 14px!important;background:linear-gradient(135deg,#070b12,#101a2b)!important}
.s2047-about-header h1{margin:0!important;font-size:46px!important}
.s2047-about-page{padding-top:20px!important;background:#070b12!important;color:#fff!important}
.s2047-about-grid{align-items:stretch}
.s2047-about-portrait-card,.s2047-about-blurb-card{border:1px solid rgba(244,195,58,.72)!important;box-shadow:0 0 24px rgba(244,195,58,.08),0 16px 45px rgba(0,0,0,.35)!important}
.s2047-about-portrait{width:100%;height:100%;object-fit:cover;object-position:center top}
.s2047-about-copy p{color:#eef2f7}
@media(max-width:700px){.s2047-about-header{padding:12px 14px 10px!important}.s2047-about-header h1{font-size:34px!important}.s2047-about-page{padding-top:14px!important}}

/* v1.0.25 About page refinements */
.s2047-about-caption-top{
  order:0;
  width:100%;
  text-align:center;
  padding:24px 20px 18px;
  border-bottom:1px solid rgba(244,195,58,.35);
}
.s2047-about-caption-top strong{
  display:block;
  text-align:center;
  font-family:Georgia,serif;
  font-size:34px;
  line-height:1.05;
  color:var(--s2047-gold);
  text-shadow:0 2px 12px rgba(0,0,0,.55);
}
.s2047-about-caption-top span{
  display:block;
  text-align:center;
  margin-top:10px;
  letter-spacing:.18em;
}
.s2047-about-portrait-card{
  display:flex!important;
  flex-direction:column!important;
}
.s2047-about-portrait-frame{
  flex:1;
}
.s2047-about-kicker{
  text-align:center!important;
  justify-content:center;
  width:100%;
}
.s2047-about-bookshelf{
  justify-content:center!important;
  text-align:center!important;
}
.s2047-about-bookshelf a,
.s2047-about-bookshelf span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#f4d36a;
  border:1px solid rgba(244,195,58,.55);
  border-radius:999px;
  padding:10px 18px;
  font-weight:900;
  letter-spacing:.04em;
  text-decoration:none;
  background:rgba(255,255,255,.035);
  box-shadow:0 0 14px rgba(244,195,58,.08);
}
.s2047-about-bookshelf a:hover,
.s2047-about-bookshelf a:focus-visible{
  background:rgba(244,195,58,.16);
  color:#fff;
  outline:none;
}
@media(max-width:700px){
  .s2047-about-caption-top{padding:18px 14px 14px;}
  .s2047-about-caption-top strong{font-size:28px;}
}

/* v1.0.26 — Lost in the Study document slider for PDFs, Word docs and other media-library documents. */
.s2047-lost-header{padding:18px 20px 14px;background:linear-gradient(135deg,#070b12,#101826);border-bottom:1px solid rgba(244,195,58,.28)}
.s2047-lost-header h1{margin:0 0 6px;font-size:clamp(34px,5vw,58px)}
.s2047-lost-header p{margin:0;color:#d7c18a;letter-spacing:.08em;text-transform:uppercase;font-weight:800;font-size:13px}
.s2047-lost-content{padding-top:22px;background:radial-gradient(circle at 50% 0%,rgba(244,195,58,.10),transparent 35%),#070b12;color:#fff;min-height:70vh}
.s2047-document-viewer{max-width:1180px;margin:0 auto;border:1px solid var(--s2047-line);border-radius:18px;background:linear-gradient(180deg,rgba(10,14,22,.96),rgba(4,7,12,.98));box-shadow:0 20px 60px rgba(0,0,0,.55),0 0 24px rgba(244,195,58,.10);overflow:hidden}
.s2047-doc-topbar{display:grid;grid-template-columns:60px minmax(0,1fr) 60px;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(244,195,58,.35);text-align:center}
.s2047-doc-kicker{margin:0 0 4px;color:#d7c18a;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:900}.s2047-doc-title-wrap h2{margin:0;font-family:Georgia,serif;color:var(--s2047-gold);font-size:clamp(24px,3.4vw,42px);line-height:1.05}.s2047-doc-arrow{height:50px;border:1px solid rgba(244,195,58,.75);border-radius:14px;background:linear-gradient(180deg,#ffdc57,#c98f10);color:#080808;font-size:36px;font-weight:900;cursor:pointer;box-shadow:0 0 18px rgba(244,195,58,.18)}
.s2047-doc-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid rgba(244,195,58,.20);background:rgba(255,255,255,.035)}
.s2047-doc-controls button,.s2047-doc-open{border:1px solid rgba(244,195,58,.72);border-radius:999px;background:rgba(244,195,58,.12);color:#fff;padding:9px 14px;font-weight:900;text-decoration:none;cursor:pointer}.s2047-doc-controls button:hover,.s2047-doc-controls button:focus-visible,.s2047-doc-open:hover,.s2047-doc-open:focus-visible{background:linear-gradient(180deg,#ffdc57,#c98f10);color:#080808;outline:2px solid #fff;outline-offset:2px}.s2047-doc-controls input{width:72px;text-align:center;border:1px solid rgba(244,195,58,.65);border-radius:999px;background:#05070b;color:#fff;padding:8px 6px;font-weight:900}.s2047-doc-zoom-label{font-size:24px;color:var(--s2047-gold);font-weight:900}.s2047-doc-stage{height:min(72vh,820px);min-height:520px;overflow:auto;background:#111827;display:flex;align-items:flex-start;justify-content:center;padding:18px}.s2047-doc-stage iframe{width:100%;height:100%;border:0;border-radius:12px;background:#fff;transform-origin:top center;box-shadow:0 0 0 1px rgba(244,195,58,.16)}
.s2047-doc-strip{display:flex;gap:10px;overflow-x:auto;padding:14px;border-top:1px solid rgba(244,195,58,.2);scrollbar-color:var(--s2047-gold) #111827}.s2047-doc-thumb{min-width:220px;max-width:260px;text-align:left;border:1px solid rgba(244,195,58,.36);border-radius:12px;background:rgba(255,255,255,.05);color:#fff;padding:12px;cursor:pointer}.s2047-doc-thumb span{display:block;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s2047-doc-thumb small{display:inline-block;margin-top:8px;color:#090909;background:linear-gradient(180deg,#ffdc57,#c98f10);border-radius:999px;padding:4px 8px;font-weight:900}.s2047-doc-thumb.active{border-color:#ffdc57;box-shadow:0 0 18px rgba(244,195,58,.25)}.s2047-document-empty{padding:28px;text-align:center}.s2047-document-empty h2{font-family:Georgia,serif;color:var(--s2047-gold);font-size:36px}.s2047-document-empty a{color:var(--s2047-gold);font-weight:900}
@media(max-width:780px){.s2047-lost-header{padding-top:14px}.s2047-doc-topbar{grid-template-columns:46px minmax(0,1fr) 46px;padding:12px}.s2047-doc-arrow{height:42px;font-size:28px}.s2047-doc-controls{gap:7px}.s2047-doc-controls button,.s2047-doc-open{padding:8px 10px;font-size:13px}.s2047-doc-page-note{display:none}.s2047-doc-stage{height:62vh;min-height:420px;padding:10px}.s2047-doc-thumb{min-width:180px}}

/* v1.0.28 Bookshelf review page */
.s2047-bookshelf-header p{
  margin: .25rem auto 0;
  max-width: 900px;
  text-align: center;
  color: rgba(255,255,255,.86);
}
.s2047-bookshelf-page{
  width: min(1500px, calc(100vw - 24px));
}
.s2047-books-pagination{
  margin: 0 auto 18px;
  justify-content: center;
  text-align: center;
}
.s2047-book-shelves{
  display: grid;
  gap: 18px;
  width: 100%;
}
.s2047-book-review-card{
  display: grid;
  grid-template-columns: minmax(150px, 240px) minmax(0, 1fr);
  gap: 22px;
  align-items: stretch;
  width: 100%;
  padding: 16px;
  border: 2px solid rgba(229,184,92,.95);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(18,12,8,.94), rgba(45,28,13,.9));
  box-shadow: 0 18px 42px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,231,157,.18);
  overflow: hidden;
}
.s2047-book-cover{
  min-height: 270px;
  border: 2px solid rgba(229,184,92,.8);
  border-radius: 18px;
  overflow: hidden;
  background: radial-gradient(circle at 25% 10%, rgba(255,230,160,.18), transparent 42%), linear-gradient(160deg, #1c1109, #5a3611 52%, #120d08);
  box-shadow: inset 0 0 30px rgba(0,0,0,.35), 0 10px 24px rgba(0,0,0,.35);
}
.s2047-book-cover img{
  width: 100%;
  height: 100%;
  min-height: 270px;
  object-fit: cover;
  display: block;
}
.s2047-book-cover-fallback{
  min-height: 270px;
  height: 100%;
  padding: 22px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 16px;
  color: #ffe8a6;
  font-family: Georgia, 'Times New Roman', serif;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.s2047-book-cover-fallback span{
  font-size: clamp(1.1rem, 2vw, 1.7rem);
  line-height: 1.05;
  text-shadow: 0 2px 0 #000, 0 0 16px rgba(255,219,130,.45);
}
.s2047-book-cover-fallback small{
  color: rgba(255,255,255,.82);
  font-size: .72rem;
  letter-spacing: .12em;
}
.s2047-book-review-copy{
  display: flex;
  flex-direction: column;
  min-height: 270px;
  padding: 10px 8px;
  color: #fff;
}
.s2047-book-review-copy h2{
  margin: 0 0 10px;
  color: #ffd76b;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.45rem, 3vw, 2.25rem);
  line-height: 1.05;
  text-shadow: 0 2px 0 #000, 0 0 14px rgba(255,202,88,.28);
}
.s2047-book-review-copy p{
  margin: 0;
  max-width: 90ch;
  color: rgba(255,255,255,.9);
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  line-height: 1.6;
}
.s2047-book-review-action{
  margin-top: auto;
  padding-top: 18px;
  display: flex;
  justify-content: flex-end;
}
.s2047-label-button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 18px;
  border: 2px solid rgba(229,184,92,.95);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,214,109,.22), rgba(68,39,12,.92));
  color: #fff !important;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .03em;
  box-shadow: 0 8px 18px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.12);
}
.s2047-label-button:hover,
.s2047-label-button:focus-visible{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(0,0,0,.45), 0 0 18px rgba(255,207,92,.35);
}
@media (max-width: 720px){
  .s2047-bookshelf-page{ width: min(100%, calc(100vw - 14px)); }
  .s2047-book-review-card{
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 12px;
    padding: 10px;
    border-radius: 18px;
  }
  .s2047-book-cover,
  .s2047-book-cover img,
  .s2047-book-cover-fallback{
    min-height: 170px;
  }
  .s2047-book-cover-fallback{ padding: 12px 7px; }
  .s2047-book-cover-fallback span{ font-size: .88rem; }
  .s2047-book-review-copy{
    min-height: 170px;
    padding: 2px 0;
  }
  .s2047-book-review-copy h2{ font-size: 1.2rem; margin-bottom: 6px; }
  .s2047-book-review-copy p{ font-size: .9rem; line-height: 1.42; }
  .s2047-book-review-action{ padding-top: 8px; }
  .s2047-label-button{ min-height: 36px; padding: 8px 12px; font-size: .86rem; }
}

/* v1.0.29 Bookshelf alignment refinements */
.s2047-bookshelf-header { text-align: center; }
.s2047-bookshelf-header p { text-align: center !important; margin-left: auto; margin-right: auto; }
.s2047-book-review-copy h2 { text-align: center; width: 100%; }


/* v1.0.30 — Centre the Bookshelf subtitle beneath the page title */
body.page-template-page-bookshelf .bookshelf-subtitle,
body.page-template-bookshelf .bookshelf-subtitle,
body.page-id-books .bookshelf-subtitle,
.bookshelf-page .bookshelf-subtitle,
.bookshelf-subtitle {
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    display: block !important;
}


/* v1.0.31 — exact Bookshelf subtitle centring */
.bookshelf-subtitle-exact {
    display: block !important;
    position: relative !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 100vw !important;
    max-width: 100vw !important;
    box-sizing: border-box !important;
    margin: 0 auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    text-align: center !important;
}


/* v1.0.32 — force Bookshelf subtitle to centre directly under the title */
.s2047-bookshelf-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}
.s2047-bookshelf-header h1,
.s2047-bookshelf-header p,
.s2047-bookshelf-subtitle-centred {
    float: none !important;
    clear: both !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}


/* Space 2047: premium red gradient background on Bookshelf page only */
body.page-bookshelf,
body.page-books,
body[class*="bookshelf"],
body[class*="page-id-"] .space2047-bookshelf-page {
    --space2047-bookshelf-red:
        radial-gradient(circle at 18% 12%, rgba(255, 74, 74, .38) 0, transparent 28%),
        radial-gradient(circle at 82% 24%, rgba(155, 0, 24, .52) 0, transparent 34%),
        linear-gradient(135deg, #2b0007 0%, #6f0717 28%, #b1162d 52%, #65000f 76%, #230006 100%);
}

/* Target the visible light/white Bookshelf content surfaces, while leaving review cards black */
body.page-bookshelf main,
body.page-bookshelf .site-main,
body.page-bookshelf .content-area,
body.page-bookshelf .entry-content,
body.page-bookshelf .wp-block-post-content,
body.page-books main,
body.page-books .site-main,
body.page-books .content-area,
body.page-books .entry-content,
body.page-books .wp-block-post-content,
body[class*="bookshelf"] main,
body[class*="bookshelf"] .site-main,
body[class*="bookshelf"] .content-area,
body[class*="bookshelf"] .entry-content,
body[class*="bookshelf"] .wp-block-post-content,
.space2047-bookshelf-page,
.space2047-bookshelf-wrap,
.bookshelf-page,
.bookshelf-wrap {
    background:
        radial-gradient(circle at 18% 12%, rgba(255, 74, 74, .38) 0, transparent 28%),
        radial-gradient(circle at 82% 24%, rgba(155, 0, 24, .52) 0, transparent 34%),
        linear-gradient(135deg, #2b0007 0%, #6f0717 28%, #b1162d 52%, #65000f 76%, #230006 100%) !important;
}

/* Common shelf/pagination wrappers that were white in the supplied screenshot */
body.page-bookshelf .pagination,
body.page-bookshelf .nav-links,
body.page-bookshelf .books-pagination,
body.page-bookshelf .bookshelf-pagination,
body.page-bookshelf [class*="pagination"],
body.page-books .pagination,
body.page-books .nav-links,
body[class*="bookshelf"] .pagination,
body[class*="bookshelf"] .nav-links,
body[class*="bookshelf"] [class*="pagination"],
.space2047-bookshelf-page [class*="pagination"],
.space2047-bookshelf-wrap [class*="pagination"] {
    background: linear-gradient(135deg, rgba(73,0,10,.96), rgba(177,22,45,.92), rgba(63,0,10,.96)) !important;
}

/* Preserve dark review/book cards */
body.page-bookshelf [class*="book-card"],
body.page-bookshelf [class*="review-card"],
body[class*="bookshelf"] [class*="book-card"],
body[class*="bookshelf"] [class*="review-card"],
.space2047-bookshelf-page [class*="book-card"],
.space2047-bookshelf-page [class*="review-card"] {
    background-color: #090909 !important;
}


/* v1.0.33 — FIX: exact Bookshelf template surface (previous patch targeted wrong class prefix) */
body .s2047-content.s2047-bookshelf-page,
body main.s2047-content.s2047-bookshelf-page,
.s2047-site main.s2047-bookshelf-page {
    background:
        radial-gradient(circle at 16% 10%, rgba(255, 92, 92, .42) 0, transparent 30%),
        radial-gradient(circle at 84% 22%, rgba(115, 0, 20, .58) 0, transparent 36%),
        linear-gradient(135deg, #260006 0%, #720817 30%, #b71932 52%, #690010 76%, #210005 100%) !important;
    color:#fff !important;
}
body .s2047-content.s2047-bookshelf-page .s2047-books-pagination,
body .s2047-content.s2047-bookshelf-page .s2047-pagination {
    background:linear-gradient(135deg,rgba(64,0,9,.98),rgba(163,16,39,.95),rgba(55,0,9,.98)) !important;
}

/* v1.0.29 — Sponsor My Writing page panel, matching the homepage study-label border. */
.s2047-sponsor-page-panel{max-width:920px;margin:0 auto 34px;padding:0 4px}
.s2047-sponsor-page-action{text-align:center;margin:0 0 24px}
.s2047-sponsor-page-button{display:inline-flex!important;align-items:center;justify-content:center;background:#ffd21b!important;color:#090909!important;border:1px solid #000!important;border-radius:10px;padding:15px 28px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 8px 24px rgba(0,0,0,.22),0 0 20px rgba(244,195,58,.25);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.s2047-sponsor-page-button:hover,.s2047-sponsor-page-button:focus-visible{color:#000!important;transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 12px 30px rgba(0,0,0,.3),0 0 28px rgba(244,195,58,.4);outline:2px solid #fff;outline-offset:3px}
.s2047-sponsor-page-blurb{background:rgba(6,9,14,.94);color:#fff;border:1px solid var(--s2047-line);border-radius:10px;padding:26px 28px;box-shadow:0 8px 28px rgba(0,0,0,.45),0 0 15px rgba(244,195,58,.14)}
.s2047-sponsor-page-blurb h2{margin:0 0 16px;text-align:center;color:var(--s2047-gold);font-family:Georgia,serif}
.s2047-sponsor-page-blurb p{margin:0 0 14px;color:#f3f5f8;line-height:1.75;text-align:center}
.s2047-sponsor-page-blurb p:last-child{margin-bottom:0}
@media(max-width:780px){.s2047-sponsor-page-button{width:100%;padding:14px 18px}.s2047-sponsor-page-blurb{padding:22px 18px}}


/* Space2047 update: replace white page background with layered star field */
html,
body {
    background-color: #03040b !important;
    background-image:
        radial-gradient(circle at 12% 18%, rgba(255,255,255,.95) 0 1px, transparent 1.7px),
        radial-gradient(circle at 28% 72%, rgba(190,220,255,.9) 0 1px, transparent 1.8px),
        radial-gradient(circle at 44% 32%, rgba(255,255,255,.8) 0 1.2px, transparent 2px),
        radial-gradient(circle at 63% 81%, rgba(255,235,180,.9) 0 1px, transparent 1.8px),
        radial-gradient(circle at 79% 23%, rgba(210,225,255,.95) 0 1.1px, transparent 1.9px),
        radial-gradient(circle at 91% 62%, rgba(255,255,255,.85) 0 1px, transparent 1.7px),
        radial-gradient(ellipse at 50% 10%, rgba(42,55,120,.22), transparent 48%),
        linear-gradient(180deg, #050713 0%, #02030a 55%, #07030d 100%) !important;
    background-size:
        137px 137px,
        181px 181px,
        223px 223px,
        269px 269px,
        311px 311px,
        353px 353px,
        100% 100%,
        100% 100% !important;
    background-attachment: fixed !important;
}

/* Keep the page canvas transparent so the star field shows through */
#page,
.site,
.site-content,
.content-area,
main.site-main {
    background-color: transparent !important;
}

/* Space2047 fix: remove the remaining white content slab and show stars inside page content */
.s2047-content,
body .s2047-content,
main.s2047-content,
.s2047-mobile-sections {
    background-color: transparent !important;
    background-image:
        radial-gradient(circle at 10% 20%, rgba(255,255,255,.9) 0 1px, transparent 1.8px),
        radial-gradient(circle at 35% 75%, rgba(180,210,255,.85) 0 1px, transparent 1.8px),
        radial-gradient(circle at 62% 30%, rgba(255,255,255,.78) 0 1.1px, transparent 1.9px),
        radial-gradient(circle at 84% 66%, rgba(255,230,165,.86) 0 1px, transparent 1.8px),
        linear-gradient(180deg, #050713 0%, #02030a 100%) !important;
    background-size: 145px 145px, 205px 205px, 275px 275px, 335px 335px, 100% 100% !important;
    color: #fff !important;
}
.s2047-content h1,
.s2047-content h2,
.s2047-content h3,
.s2047-content p,
.s2047-content li {
    color: #fff;
}
.s2047-content a:not(.s2047-sponsor-page-button) {
    color: var(--s2047-gold) !important;
}


/* v1.0.34 — Bookshelf review ratings: centred directly beneath each title */
.s2047-book-rating{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0 auto 14px;
  text-align:center;
}
.s2047-book-stars{
  display:inline-block;
  color:#ffd34e;
  font-size:clamp(1.2rem,2vw,1.6rem);
  line-height:1;
  letter-spacing:.12em;
  text-align:center;
  text-shadow:0 1px 0 #000,0 0 12px rgba(255,211,78,.45);
}
.s2047-book-score{
  color:rgba(255,255,255,.9);
  font-weight:800;
  font-size:.95rem;
  white-space:nowrap;
}
@media (max-width:720px){
  .s2047-book-rating{gap:7px;margin-bottom:10px;}
  .s2047-book-stars{font-size:1.08rem;letter-spacing:.06em;}
  .s2047-book-score{font-size:.82rem;}
}


/* Poetry category page */
.s2047-poetry-page{background:radial-gradient(circle at 50% 0%,rgba(244,195,58,.12),transparent 28%),#05070b;color:#fff;max-width:none;padding:42px 20px 60px}
.s2047-poetry-posts{max-width:1120px;margin:22px auto;display:grid;gap:22px}
.s2047-poetry-card{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:stretch;background:rgba(7,11,18,.92);border:1px solid rgba(244,195,58,.7);border-radius:14px;padding:18px;box-shadow:0 0 22px rgba(244,195,58,.16),0 12px 32px rgba(0,0,0,.35)}
.s2047-poetry-image{display:block;min-height:180px;border-radius:10px;overflow:hidden;border:1px solid rgba(244,195,58,.45);background:#111}
.s2047-poetry-image img{width:100%;height:100%;object-fit:cover;display:block}
.s2047-poetry-copy h2{margin:0 0 8px;font-family:Georgia,serif;letter-spacing:.04em}
.s2047-poetry-copy h2 a{color:#ffd85b;text-decoration:none}
.s2047-poetry-meta{font-size:13px;color:#b7c5da;margin-bottom:10px}
.s2047-poetry-excerpt{color:#eef4ff;line-height:1.65;margin-bottom:15px}
.s2047-label-button{display:inline-block;border:1px solid rgba(244,195,58,.85);border-radius:10px;background:linear-gradient(180deg,#ffda55,#d99b13);color:#090909!important;font-weight:900;padding:10px 16px;text-decoration:none;box-shadow:0 0 18px rgba(244,195,58,.22)}
.s2047-poetry-pagination{max-width:1120px;margin:0 auto 24px;text-align:center;display:flex;justify-content:center;gap:9px;flex-wrap:wrap}
.s2047-poetry-pagination .page-numbers{border:1px solid rgba(244,195,58,.75);border-radius:10px;color:#ffd85b;background:rgba(7,11,18,.9);padding:9px 13px;text-decoration:none;box-shadow:0 0 16px rgba(244,195,58,.12)}
.s2047-poetry-pagination .page-numbers.current,.s2047-poetry-pagination .page-numbers:hover{background:linear-gradient(180deg,#ffda55,#d99b13);color:#090909}
.s2047-poetry-empty{max-width:900px;margin:0 auto;border:1px solid rgba(244,195,58,.7);border-radius:14px;padding:24px;text-align:center;background:rgba(7,11,18,.92)}
@media(max-width:720px){.s2047-poetry-card{grid-template-columns:1fr}.s2047-poetry-image{min-height:220px}}


/* Space 2047 Characters page */
.s2047-characters-header p{margin:10px 0 0;color:#dbe7ff;text-transform:uppercase;letter-spacing:.14em;font-weight:800}
.s2047-characters-page{background:radial-gradient(circle at 50% 0%,rgba(244,195,58,.12),transparent 36%),#070b12;color:#fff;max-width:none;padding:44px 20px 60px}
.s2047-label-border-box{border:1px solid var(--s2047-line);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.35),0 0 18px rgba(244,195,58,.12);background:rgba(6,9,14,.88)}
.s2047-characters-summary{max-width:1120px;margin:0 auto 28px;padding:24px;text-align:center}
.s2047-characters-summary h2{margin:0 0 12px;color:var(--s2047-gold);font-family:Georgia,serif;font-size:30px}
.s2047-characters-summary p{margin:0 auto;max-width:980px;line-height:1.65;color:#eef4ff;font-size:17px}
.s2047-character-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.s2047-character-card{padding:16px;display:flex;gap:15px;align-items:flex-start;min-height:230px}
.s2047-character-image-wrap{width:104px;min-width:104px;height:132px;border:1px solid rgba(244,195,58,.45);border-radius:12px;overflow:hidden;background:linear-gradient(145deg,rgba(244,195,58,.16),rgba(42,100,190,.18));display:flex;align-items:center;justify-content:center}
.s2047-character-img{width:100%;height:100%;object-fit:cover;display:block}
.s2047-character-placeholder{font-size:42px;color:var(--s2047-gold);text-shadow:0 0 18px rgba(244,195,58,.45)}
.s2047-character-copy h2{margin:0;color:var(--s2047-gold);font-family:Georgia,serif;font-size:24px;line-height:1.15}
.s2047-character-copy h3{margin:7px 0 9px;color:#dbe7ff;font-size:12px;text-transform:uppercase;letter-spacing:.11em}
.s2047-character-copy p{margin:0;color:#f4f7ff;line-height:1.48;font-size:14px}
@media(max-width:640px){.s2047-character-card{display:block}.s2047-character-image-wrap{width:100%;height:210px;margin-bottom:14px}.s2047-characters-summary{text-align:left}}


/* Character image placement: image left, description right */
.s2047-character-card{
  display:grid !important;
  grid-template-columns:180px minmax(0,1fr) !important;
  gap:20px !important;
  align-items:start !important;
}
.s2047-character-image-wrap{
  width:180px !important;
  min-width:180px !important;
  height:180px !important;
  margin:0 !important;
  border-radius:12px !important;
  overflow:hidden !important;
}
.s2047-character-img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  display:block !important;
}
.s2047-character-copy{min-width:0}
@media(max-width:700px){
  .s2047-character-card{
    grid-template-columns:110px minmax(0,1fr) !important;
    gap:14px !important;
  }
  .s2047-character-image-wrap{
    width:110px !important;
    min-width:110px !important;
    height:110px !important;
    margin:0 !important;
  }
}


/* Character triptych: all three pictures left of the description */
.s2047-character-card{
  display:grid !important;
  grid-template-columns:240px minmax(0,1fr) !important;
  gap:22px !important;
  align-items:start !important;
}
.s2047-character-image-wrap{
  width:240px !important;
  min-width:240px !important;
  height:auto !important;
  border:0 !important;
  background:transparent !important;
  overflow:visible !important;
}
.s2047-character-triptych{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:7px !important;
  width:240px !important;
}
.s2047-character-triptych .s2047-character-img{
  width:100% !important;
  height:112px !important;
  object-fit:cover !important;
  object-position:center !important;
  border:1px solid var(--s2047-line) !important;
  border-radius:10px !important;
  background:#05070b !important;
  box-shadow:0 0 12px rgba(244,195,58,.12) !important;
}
.s2047-author-single{
  grid-template-columns:1fr !important;
}
.s2047-author-single .s2047-character-img{
  height:180px !important;
}
@media(max-width:760px){
  .s2047-character-card{
    grid-template-columns:1fr !important;
  }
  .s2047-character-image-wrap,
  .s2047-character-triptych{
    width:100% !important;
  }
  .s2047-character-triptych .s2047-character-img{
    height:150px !important;
  }
}


/* Character triptych correction: stack all three pictures vertically on the left */
.s2047-character-card{
  display:grid !important;
  grid-template-columns:180px minmax(0,1fr) !important;
  gap:22px !important;
  align-items:start !important;
}
.s2047-character-image-wrap{
  width:180px !important;
  min-width:180px !important;
  height:auto !important;
}
.s2047-character-triptych{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:repeat(3,auto) !important;
  gap:9px !important;
  width:180px !important;
}
.s2047-character-triptych .s2047-character-img{
  width:180px !important;
  height:180px !important;
  object-fit:cover !important;
  object-position:center !important;
  display:block !important;
  border:1px solid var(--s2047-line) !important;
  border-radius:10px !important;
}
.s2047-author-single{
  grid-template-rows:auto !important;
}
@media(max-width:700px){
  .s2047-character-card{
    grid-template-columns:110px minmax(0,1fr) !important;
    gap:14px !important;
  }
  .s2047-character-image-wrap,
  .s2047-character-triptych{
    width:110px !important;
    min-width:110px !important;
  }
  .s2047-character-triptych .s2047-character-img{
    width:110px !important;
    height:110px !important;
  }
}


/* Characters page slider layout */
.s2047-character-slider-wrap{
  max-width:1180px;
  margin:0 auto;
  position:relative;
  padding:18px 74px 56px;
}
.s2047-character-slider{
  position:relative;
  min-height:560px;
}
.s2047-character-slide{
  display:none !important;
  grid-template-columns:minmax(320px,460px) minmax(0,1fr) !important;
  gap:34px !important;
  align-items:center !important;
  padding:24px !important;
  min-height:540px;
}
.s2047-character-slide.active{
  display:grid !important;
}
.s2047-character-slide-image{
  width:100% !important;
}
.s2047-character-slider-img,
.s2047-character-slider-placeholder{
  width:100% !important;
  height:460px !important;
  object-fit:cover !important;
  object-position:center !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  border:1px solid var(--s2047-line) !important;
  border-radius:18px !important;
  background:radial-gradient(circle at 50% 20%,rgba(244,195,58,.18),transparent 42%),#05070b !important;
  box-shadow:0 0 28px rgba(244,195,58,.18) !important;
  color:var(--s2047-gold);
  font-size:92px;
}
.s2047-character-slide-copy h2{
  margin:0 0 12px;
  color:var(--s2047-gold);
  font-family:Georgia,serif;
  font-size:44px;
  line-height:1.05;
}
.s2047-character-slide-copy h3{
  margin:0 0 22px;
  color:#dbe7ff;
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.s2047-character-slide-copy p{
  color:#f4f7ff;
  font-size:19px;
  line-height:1.65;
}
.s2047-character-count{
  display:inline-block;
  margin:0 0 16px !important;
  padding:6px 12px;
  border:1px solid var(--s2047-line);
  border-radius:999px;
  color:var(--s2047-gold) !important;
  font-weight:900;
  letter-spacing:.12em;
}
.s2047-character-slider-arrow{
  position:absolute;
  top:45%;
  transform:translateY(-50%);
  z-index:5;
  width:54px;
  height:78px;
  border:1px solid var(--s2047-line);
  border-radius:14px;
  background:linear-gradient(180deg,#ffdc57,#c98f10);
  color:#080808;
  font-size:54px;
  line-height:1;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 0 24px rgba(244,195,58,.28);
}
.s2047-character-slider-prev{left:4px}
.s2047-character-slider-next{right:4px}
.s2047-character-slider-arrow:hover,
.s2047-character-slider-arrow:focus-visible{
  filter:brightness(1.08);
  outline:2px solid #fff;
  outline-offset:2px;
}
.s2047-character-slider-dots{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:7px;
  margin-top:20px;
}
.s2047-character-slider-dots button{
  width:12px;
  height:12px;
  border-radius:50%;
  border:1px solid var(--s2047-line);
  background:rgba(255,255,255,.22);
  cursor:pointer;
}
.s2047-character-slider-dots button.active{
  background:var(--s2047-gold);
  box-shadow:0 0 12px rgba(244,195,58,.55);
}
@media(max-width:850px){
  .s2047-character-slider-wrap{padding:12px 46px 46px}
  .s2047-character-slide{
    grid-template-columns:1fr !important;
    min-height:auto;
  }
  .s2047-character-slider-img,
  .s2047-character-slider-placeholder{
    height:360px !important;
  }
  .s2047-character-slide-copy h2{font-size:34px}
  .s2047-character-slide-copy p{font-size:16px}
  .s2047-character-slider-arrow{
    width:40px;
    height:62px;
    font-size:40px;
  }
}
