/* Approved genre heroes. Loaded only by genre collections and their local preview. */
.gh-review{background:#fff;border-bottom:1px solid #e3e3df;color:#38403b}
.gh-review-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:66px;padding-block:10px;font-size:13px}
.gh-review-inner>span{font-size:11px;letter-spacing:.12em;font-weight:700}
.gh-review-note{display:inline-block;margin-left:12px;color:#727970;letter-spacing:0;font-weight:400;font-size:12px}
.gh-review nav{display:flex;gap:5px;padding:4px;background:#f0f1ed;border-radius:5px}
.gh-review nav a{display:flex;align-items:center;justify-content:center;min-height:36px;padding:5px 17px;border-radius:3px;text-decoration:none;font-weight:700}
.gh-review nav a[aria-current=page]{background:#24342c;color:white}
.gh-review nav a:hover{box-shadow:inset 0 0 0 1px #879587}
.gh-current{font-size:13px;text-decoration:none;display:flex;align-items:center;gap:12px;min-height:44px}
.gh-hero{--gh-accent:#e0b196;--gh-light:#f6eee2;--gh-muted:#c6bdb5;isolation:isolate;position:relative;overflow:hidden;background:#151713;color:var(--gh-light);padding-top:27px}
.gh-hero-inner{position:relative;z-index:2}
.gh-hero .pc-breadcrumb{color:var(--gh-muted);font-size:13px;margin-bottom:22px;opacity:.9}
.gh-grid{display:grid;grid-template-columns:1.03fr 1fr;align-items:center;gap:46px;padding:23px 0 43px}
.gh-eyebrow{display:flex;align-items:center;gap:13px;color:var(--gh-accent);font-size:12px;font-weight:700;letter-spacing:.17em;line-height:1.5;margin-bottom:21px!important}
.gh-eyebrow>span{width:28px;height:1px;background:currentColor;flex-shrink:0}
.gh-hero h1{font-size:clamp(50px,4.4vw,68px);line-height:1.01;letter-spacing:-.027em;font-weight:400;color:var(--gh-light)}
.gh-hero h1 em{display:block;font-size:.76em;line-height:1.14;margin-top:16px;letter-spacing:-.025em;color:var(--gh-accent)}
.gh-intro{max-width:470px;font-size:17px;line-height:1.8;margin:25px 0 0!important;color:var(--gh-muted)}
.gh-hero .pc-actions{margin-top:29px;gap:29px}
.gh-hero .pc-button{background:var(--gh-accent);color:#201915!important;border-radius:2px;padding:14px 23px;min-height:53px;font-size:14px;gap:30px}
.gh-hero .pc-button:hover{background:#f7d3b6;box-shadow:0 5px 25px #0002}
.gh-hero .pc-text-link{color:var(--gh-light);font-size:14px;font-weight:400}
.gh-free{display:flex;gap:9px;align-items:center;margin:20px 0 0!important;font-size:13px;line-height:1.5;color:var(--gh-muted)}
.gh-free svg{width:17px;height:17px;color:var(--gh-accent);flex-shrink:0}
.gh-stage{position:relative;min-width:0;isolation:isolate;padding-top:17px}
.gh-stage-art{position:absolute;inset:-20px -40px 0;z-index:-1;pointer-events:none}
.gh-books{position:relative;display:flex;justify-content:center;align-items:center;padding:42px 10px 42px;min-height:415px}
.gh-books .gh-book{width:43%;max-width:250px;flex-shrink:0;box-shadow:3px 5px 3px #0008,12px 22px 36px #0008;transform:rotate(-9deg) translateY(12px);transition:transform .25s ease;z-index:1;border-radius:1px}
.gh-books .gh-book:nth-child(2){margin-left:-12%;transform:rotate(8deg) translateY(-10px);z-index:2}
.gh-book img{border-radius:1px}
.gh-book-open{position:absolute;inset:auto 0 0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;background:#f6eee2;color:#222820;font-size:13px;font-weight:700;opacity:0;transition:opacity .2s}
.gh-book:hover .gh-book-open,.gh-book:focus-visible .gh-book-open{opacity:1}
.gh-stage-caption{display:flex;align-items:center;justify-content:center;gap:15px;color:var(--gh-accent);margin-top:17px}
.gh-stage-caption p{font-size:17px;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;margin:0!important;text-align:center}
.gh-caption-rule{width:32px;height:1px;background:currentColor;opacity:.45;flex-shrink:0}
.gh-hero-foot{border-top:1px solid #ffffff1f;display:flex;justify-content:space-between;align-items:center;gap:25px;padding:23px 0 25px;color:var(--gh-muted)}
.gh-hero-foot>p{margin:0!important;font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-style:italic}
.gh-hero-foot ul{display:flex;gap:0;list-style:none;margin:0;padding:0;font-size:12px;letter-spacing:.04em}
.gh-hero-foot li+li:before{content:'Â·';padding-inline:16px;color:var(--gh-accent)}
.gh-promises{background:#fff;border-bottom:1px solid #e5e5dd}
.gh-promises>.pc-container{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:20px;font-size:13px;color:#526057}
.gh-promises b{color:#839372;margin-right:11px;font-weight:400}
.gh-atmosphere{position:absolute;inset:0;z-index:0;pointer-events:none}
.gh-horror{background:radial-gradient(ellipse at 87% 36%,#352922 0,transparent 47%),linear-gradient(105deg,#121612 0%,#171b16 60%,#151712 100%)}
.gh-horror .gh-atmosphere:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 149px,#e4b69a04 150px,#e4b69a04 151px);opacity:.7}
.gh-horror .gh-atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 79% 89%,#b6ac8520 0,transparent 40%),linear-gradient(0deg,#070b0799,transparent 36%)}
.gh-horror .gh-atmosphere>span:nth-child(1){position:absolute;top:-80px;right:4%;height:calc(100% + 160px);width:135px;background:linear-gradient(90deg,transparent,#ba886215,transparent);transform:rotate(25deg);filter:blur(20px)}
.gh-door{position:absolute;width:58%;height:94%;left:22%;top:-4%;border:1px solid #b6977240;border-radius:160px 160px 0 0;box-shadow:inset 0 0 70px #0004,0 0 45px #b18d6510}
.gh-door-back{width:65%;height:101%;left:18.5%;top:-7.5%;border-color:#b6977218}
.gh-door-front:after{content:'';position:absolute;inset:12px;border:1px solid #c09c731a;border-radius:150px 150px 0 0}
.gh-door-light{position:absolute;left:50%;top:8%;width:2px;height:76%;transform:rotate(12deg);background:linear-gradient(transparent,#d19a65aa,transparent);box-shadow:0 0 22px 4px #c5985426;opacity:.65}
.gh-scifi{--gh-accent:#9ee4ec;--gh-light:#f0f7fb;--gh-muted:#b5c7d7;background:radial-gradient(ellipse at 83% 28%,#143f58 0,transparent 49%),radial-gradient(ellipse at 42% 108%,#183044 0,transparent 52%),#081423}
.gh-scifi .gh-atmosphere{background-image:radial-gradient(circle at 8% 14%,#d9f6ff80 .7px,transparent 1.4px),radial-gradient(circle at 21% 69%,#d9f6ff50 .8px,transparent 1.5px),radial-gradient(circle at 39% 30%,#d9f6ff60 .6px,transparent 1.2px),radial-gradient(circle at 63% 9%,#d9f6ff80 .8px,transparent 1.4px),radial-gradient(circle at 70% 76%,#d9f6ff65 .7px,transparent 1.3px),radial-gradient(circle at 88% 24%,#d9f6ff90 1px,transparent 1.7px),radial-gradient(circle at 93% 64%,#d9f6ff50 .7px,transparent 1.4px),radial-gradient(circle at 52% 54%,#d9f6ff45 .6px,transparent 1.4px)}
.gh-scifi .gh-atmosphere:after{content:'';position:absolute;width:92%;aspect-ratio:1;left:50%;top:30%;border-radius:50%;border:1px solid #b0e9f929;box-shadow:0 -9px 45px #74c9e80d,inset 0 18px 50px #6eb9d808;transform:rotate(-18deg)}
.gh-scifi .pc-button{color:#08232e!important;background:#a2e3eb}
.gh-scifi .pc-button:hover{background:#c2f3f7}
.gh-scifi .gh-books .gh-book{transform:rotate(-7deg) translateY(20px);box-shadow:3px 5px 3px #0008,10px 24px 40px #0008}
.gh-scifi .gh-books .gh-book:nth-child(2){transform:rotate(7deg) translateY(-17px)}
.gh-planet{position:absolute;left:17%;top:-1%;width:72%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 76% 17%,#b9f8fc47,transparent 41%),linear-gradient(135deg,#477f902b,#0c192b 60%);border:1px solid #b2eafa38;box-shadow:inset -18px -25px 45px #030b17,12px -12px 55px #6edcfa13}
.gh-orbit{position:absolute;left:-3%;top:29%;width:110%;height:34%;border-radius:50%;border:1px solid #a5e7f448;transform:rotate(-28deg)}
.gh-orbit-two{left:4%;top:20%;width:95%;height:54%;transform:rotate(-47deg);border-color:#a5e7f420}
.gh-star{position:absolute;width:4px;height:4px;border-radius:50%;background:#d3f8ff;box-shadow:0 0 14px 3px #9be0fa60}
.gh-star-one{top:9%;left:87%}.gh-star-two{top:63%;left:4%;width:3px;height:3px}.gh-star-three{top:87%;left:78%;width:2px;height:2px}
.gh-scifi .gh-hero-foot>p{color:#d6e8f5}
.gh-preview :where(.gh-hero,.gh-review) a:focus-visible{outline:3px solid #efb74f;outline-offset:6px}
@media(min-width:1500px){.gh-grid{gap:65px}.gh-books{min-height:470px}.gh-stage-art{inset:0 -30px 0}}
@media(max-width:1100px){.gh-grid{gap:24px;grid-template-columns:1.05fr 1fr}.gh-hero h1{font-size:54px}.gh-hero h1 em{font-size:.78em}.gh-books{min-height:365px;padding-inline:0}.gh-books .gh-book{width:46%}.gh-stage-art{inset:-15px -15px 0}.gh-intro{font-size:16px}.gh-stage-caption{gap:10px}.gh-caption-rule{width:17px}.gh-review-note{display:none}.gh-hero .pc-actions{gap:19px}.gh-hero .pc-button{gap:17px}}
@media(max-width:760px){.gh-review-inner{gap:12px;flex-wrap:wrap;justify-content:space-between;padding-block:12px}.gh-review-inner>span{width:100%;text-align:center}.gh-review nav{flex:1}.gh-review nav a{flex:1;padding-inline:10px}.gh-current{font-size:12px}.gh-hero{padding-top:23px}.gh-hero .pc-breadcrumb{margin-bottom:18px}.gh-grid{grid-template-columns:1fr;gap:30px;padding:10px 0 34px}.gh-hero h1{font-size:clamp(46px,8.5vw,66px)}.gh-hero h1 em{font-size:.8em;margin-top:14px}.gh-copy{max-width:590px}.gh-intro{max-width:540px;margin-top:22px!important}.gh-stage{max-width:520px;width:100%;margin:5px auto 0;padding-top:25px}.gh-books{min-height:375px;padding:18px 12px 35px}.gh-books .gh-book{width:43%;max-width:220px}.gh-stage-art{inset:0 -5px 0}.gh-door{height:93%;top:-2%}.gh-door-back{height:100%;top:-6%}.gh-stage-caption{margin-top:18px}.gh-hero-foot{flex-direction:column;align-items:flex-start;gap:12px;padding-block:20px}.gh-hero-foot>p{font-size:21px}.gh-hero-foot ul{flex-wrap:wrap;row-gap:7px}.gh-promises>.pc-container{flex-wrap:wrap;justify-content:center;column-gap:25px;row-gap:9px;padding-block:17px}.gh-horror .gh-atmosphere:after{background:radial-gradient(ellipse at 67% 73%,#b6ac8524,transparent 49%),linear-gradient(0deg,#070b0799,transparent 40%)}.gh-scifi .gh-atmosphere:after{top:56%;left:25%;width:130%}}
@media(max-width:420px){.gh-review nav a{font-size:12px}.gh-current{gap:7px}.gh-hero h1{font-size:45px}.gh-hero h1 em{font-size:36px}.gh-eyebrow{font-size:11px;letter-spacing:.13em}.gh-books{min-height:295px;padding-inline:0}.gh-books .gh-book{width:45%}.gh-stage-caption p{font-size:16px}.gh-caption-rule{width:15px}.gh-hero .pc-actions{gap:18px}.gh-hero .pc-button{padding-inline:16px;font-size:13px}.gh-hero .pc-text-link{font-size:13px}.gh-free{font-size:12px}.gh-hero-foot li+li:before{padding-inline:10px}.gh-promises>.pc-container{justify-content:flex-start;font-size:12px}.gh-hero .pc-breadcrumb{font-size:12px}}
@media(prefers-reduced-motion:reduce){.gh-books .gh-book,.gh-book-open{transition:none}}

/* Compact, keyboard-accessible navigation for all fourteen concepts. */
.gh-review{position:relative;z-index:20}
.gh-concept-picker{display:flex;align-items:center;gap:7px;flex-shrink:0}
.gh-concept-step{width:36px;height:40px;display:flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid #dfe3da;border-radius:3px;font-size:18px}
.gh-concept-step:hover{background:#eef1e9}
.gh-concept-menu{position:relative;width:245px}
.gh-concept-menu summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 14px;min-height:42px;background:#f0f1ed;border:1px solid #dfe3da;border-radius:3px;cursor:pointer;list-style:none;font-size:13px}
.gh-concept-menu summary::-webkit-details-marker{display:none}
.gh-concept-menu summary>span{white-space:nowrap;font-size:12px;color:#687362}
.gh-concept-menu summary>span>span{margin-left:8px}
.gh-review .gh-concept-menu nav{position:absolute;z-index:30;top:calc(100% + 7px);left:50%;transform:translateX(-50%);width:405px;max-width:calc(100vw - 36px);display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:10px;background:#fff;border:1px solid #dfe3da;box-shadow:0 14px 35px #17231724}
.gh-review .gh-concept-menu nav a{justify-content:flex-start;min-height:40px;padding:8px 11px;font-size:13px}
.gh-concept-menu summary:focus-visible{outline:3px solid #bb8238;outline-offset:3px}

/* Light collections use ink-coloured accents and softer book shadows. */
.gh-light .pc-button{color:#fff!important}
.gh-light .pc-button:hover{background:var(--gh-accent);filter:brightness(.88)}
.gh-light .gh-books .gh-book{box-shadow:3px 4px 3px #29332b26,12px 23px 32px #29332b36}
.gh-light .gh-hero-foot{border-top-color:#263a2826}
.gh-illustration{position:absolute;inset:0;width:100%;height:100%;overflow:visible;color:var(--gh-accent)}
.gh-fantasy{--gh-accent:#dfc081;--gh-light:#f4f3e4;--gh-muted:#becbb8;background:radial-gradient(ellipse at 82% 37%,#405b353d,transparent 52%),linear-gradient(120deg,#102b24,#1d382b 75%,#17281f)}
.gh-fantasy .gh-atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 79% 101%,#c9db9940,transparent 48%),radial-gradient(ellipse at 64% 4%,#dcb2581c,transparent 27%)}
.gh-fantasy .gh-stage-art{inset:-13px -20px 0}
.gh-fantasy .pc-button:hover{background:#f2d79d}
.gh-romantasy{--gh-accent:#e1b8c4;--gh-light:#f7ecf1;--gh-muted:#cbbbc9;background:radial-gradient(ellipse at 82% 28%,#684c7266,transparent 55%),linear-gradient(110deg,#291a30,#38203e 70%,#2b2034)}
.gh-romantasy .gh-atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 77% 70%,#bb8e9a22,transparent 39%),radial-gradient(circle at 83% 11%,#f4dcc660 1px,transparent 2px),radial-gradient(circle at 63% 87%,#f4dcc655 1px,transparent 2px)}
.gh-romantasy .gh-stage-art{inset:-23px -27px -5px}
.gh-romantasy .pc-button:hover{background:#f2d3dc}
.gh-thriller{--gh-accent:#e3bc77;--gh-light:#f4f2e9;--gh-muted:#bcc6cd;background:radial-gradient(ellipse at 90% 14%,#64717430,transparent 53%),linear-gradient(116deg,#141e26,#25333b 80%,#182129)}
.gh-thriller .gh-atmosphere:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(104deg,transparent 0,transparent 165px,#ffffff04 166px,#ffffff04 167px)}
.gh-searchlight{position:absolute;inset:-20% 0 -10%;background:linear-gradient(126deg,transparent 27%,#d8c19716 27.2%,#d8c19706 49%,transparent 49.2%);filter:blur(2px)}
.gh-thriller .gh-stage-art{inset:-5px -20px -5px}
.gh-romance{--gh-accent:#9b3a55;--gh-light:#482b35;--gh-muted:#6c4855;background:radial-gradient(ellipse at 87% 36%,#f2c9ad80,transparent 48%),linear-gradient(110deg,#fcf2ef,#f7e6e3 77%,#f6dfd6)}
.gh-romance .gh-atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 84% 98%,#eab1ab35,transparent 44%)}
.gh-romance-sun{position:absolute;width:78%;aspect-ratio:1;left:13%;top:1%;border-radius:50%;background:linear-gradient(130deg,#f1c49b8c,#e2a7a236)}
.gh-romance .gh-stage-art{inset:0 -22px -3px;color:#b6686a}
.gh-romance .gh-illustration{color:#a65769}
.gh-cosy{--gh-accent:#48643c;--gh-light:#35432d;--gh-muted:#525e46;background:radial-gradient(ellipse at 85% 46%,#eceac7,transparent 52%),linear-gradient(110deg,#faf7e9,#f1efda)}
.gh-cosy-window{position:absolute;left:17%;top:-1%;width:71%;height:88%;background:linear-gradient(90deg,transparent calc(50% - 1px),#6f815633 50%,transparent calc(50% + 1px)),linear-gradient(0deg,transparent calc(55% - 1px),#6f815633 55%,transparent calc(55% + 1px)),linear-gradient(130deg,#d9e2c399,#cbd7b355);border:1px solid #72865945;border-radius:150px 150px 3px 3px;box-shadow:0 0 0 12px #bdcda319}
.gh-cosy .gh-stage-art{inset:-8px -30px 0}
.gh-cosy .gh-atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 65% 2%,#f6dd8f35,transparent 38%)}
.gh-historical{--gh-accent:#814b38;--gh-light:#45352b;--gh-muted:#65513e;background:radial-gradient(ellipse at 83% 34%,#ddc69e45,transparent 45%),linear-gradient(112deg,#f7f0e4,#eee0c9)}
.gh-historical .gh-atmosphere:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0,transparent 5px,#6a4c2304 6px);opacity:.8}
.gh-historical .gh-stage-art{inset:-10px -22px 0}
.gh-adventure{--gh-accent:#e4c78d;--gh-light:#f0f5e7;--gh-muted:#b5cfc9;background:radial-gradient(ellipse at 82% 30%,#47746b4d,transparent 50%),linear-gradient(116deg,#103b3c,#245454 75%,#163d40)}
.gh-adventure .gh-atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 103%,#a9be8038,transparent 52%)}
.gh-adventure .gh-stage-art{inset:-28px -45px -5px}
.gh-adventure .gh-illustration{color:#dbd3a5}
.gh-literary{--gh-accent:#97523e;--gh-light:#323b3d;--gh-muted:#525751;background:linear-gradient(108deg,#f5f2ec,#eeebe4 65%,#e5e5de)}
.gh-literary-plane{position:absolute;left:20%;top:3%;width:62%;height:79%;background:#b4685240;transform:rotate(-8deg);border-radius:46% 46% 1px 1px}
.gh-literary-plane-two{background:#1e49653b;left:48%;top:22%;width:43%;height:62%;border-radius:1px;transform:rotate(10deg);clip-path:polygon(0 0,100% 12%,82% 100%,0 88%)}
.gh-literary .gh-stage-art{inset:-20px -23px 0}
.gh-memoir{--gh-accent:#4d674c;--gh-light:#344235;--gh-muted:#505d48;background:radial-gradient(ellipse at 87% 34%,#e3d5b653,transparent 54%),linear-gradient(110deg,#f5f4e9,#e7ebdc)}
.gh-memoir-light{position:absolute;inset:3% 4% 6% 13%;background:linear-gradient(112deg,transparent 32%,#faf7d894 32.5%,#faf7d850 50%,transparent 50.5%),linear-gradient(112deg,transparent 56%,#e4cf9f45 56.5%,#f4e8c933 75%,transparent 75.5%);border:1px solid #99a37e24}
.gh-memoir .gh-stage-art{inset:-5px -25px 0}
.gh-children{--gh-accent:#245671;--gh-light:#243e57;--gh-muted:#405c70;background:radial-gradient(ellipse at 89% 13%,#ffe7ae66,transparent 36%),linear-gradient(115deg,#eff7fc,#dceefa 72%,#e8f4fa)}
.gh-children .gh-atmosphere:after{content:'';position:absolute;left:55%;right:-15%;bottom:-160px;height:320px;background:#b7d2b342;border-radius:50%}
.gh-children .gh-stage-art{inset:-10px -37px -8px}
.gh-poetry{--gh-accent:#48697b;--gh-light:#36454a;--gh-muted:#4a5f62;background:radial-gradient(ellipse at 88% 92%,#d5e5df88,transparent 58%),linear-gradient(115deg,#f9f8f2,#edf2ed)}
.gh-poetry-wash{position:absolute;left:12%;top:1%;width:77%;height:84%;background:linear-gradient(139deg,#d8e3d756,#bfd6d142);border-radius:47% 50% 45% 43%;transform:rotate(9deg)}
.gh-poetry .gh-stage-art{inset:-4px -30px 0}
.gh-poetry .gh-books .gh-book{box-shadow:2px 3px 3px #29332b19,8px 19px 26px #29332b29}
.gh-nonfiction{--gh-accent:#254977;--gh-light:#233551;--gh-muted:#49596d;background:linear-gradient(112deg,#f8f5e9,#f0ecd9 72%,#ece9dd)}
.gh-idea-disc{position:absolute;left:9%;top:4%;width:66%;aspect-ratio:1;border-radius:50%;background:#e7bc4c6b}
.gh-idea-block{position:absolute;left:50%;top:23%;width:41%;height:61%;background:#32578242;transform:rotate(10deg)}
.gh-nonfiction .gh-stage-art{inset:-10px -20px 0}
@media(max-width:1100px){.gh-review-inner{gap:14px}.gh-concept-menu{width:210px}.gh-review-inner>span{max-width:160px}.gh-review-note{display:none}.gh-illustration{opacity:.85}.gh-fantasy .gh-stage-art,.gh-romantasy .gh-stage-art,.gh-thriller .gh-stage-art,.gh-romance .gh-stage-art,.gh-cosy .gh-stage-art,.gh-historical .gh-stage-art,.gh-adventure .gh-stage-art,.gh-literary .gh-stage-art,.gh-memoir .gh-stage-art,.gh-children .gh-stage-art,.gh-poetry .gh-stage-art,.gh-nonfiction .gh-stage-art{inset:-5px -10px 0}}
@media(max-width:760px){.gh-review-inner{gap:9px}.gh-review-inner>span{max-width:none}.gh-concept-picker{flex:1}.gh-concept-menu{width:auto;flex:1;min-width:0}.gh-concept-menu summary{padding-inline:10px;gap:8px}.gh-concept-step{width:32px;flex-shrink:0}.gh-review .gh-concept-menu nav{left:auto;right:-39px;transform:none;width:380px;max-width:calc(100vw - 36px)}.gh-review .gh-current{display:none}.gh-stage-art .gh-illustration{opacity:1}.gh-fantasy .gh-stage-art,.gh-romantasy .gh-stage-art,.gh-thriller .gh-stage-art,.gh-romance .gh-stage-art,.gh-cosy .gh-stage-art,.gh-historical .gh-stage-art,.gh-adventure .gh-stage-art,.gh-literary .gh-stage-art,.gh-memoir .gh-stage-art,.gh-children .gh-stage-art,.gh-poetry .gh-stage-art,.gh-nonfiction .gh-stage-art{inset:-5px -10px 0}.gh-romance-sun{top:0;width:76%}.gh-cosy-window{top:0;height:90%}.gh-hero-foot ul{font-size:12px}}

/* Progressive motion: the complete static design remains underneath the canvas. */
.gh-motion-canvas{position:absolute;inset:-9% -8%;z-index:-1;pointer-events:none;opacity:0;transition:opacity 1.1s ease}
.gh-motion-canvas canvas{display:block;width:100%;height:100%;pointer-events:none}
.gh-motion-active .gh-motion-canvas{opacity:1}
.gh-motion-glow{position:absolute;inset:-8%;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at var(--gh-glow-x,65%) var(--gh-glow-y,35%),color-mix(in srgb,var(--gh-accent) 18%,transparent),transparent 61%);opacity:var(--gh-glow-opacity,.35)}
.gh-motion-active .gh-books{transform:perspective(1100px) rotateX(var(--gh-tilt-x,0deg)) rotateY(var(--gh-tilt-y,0deg)) translate3d(var(--gh-float-x,0px),var(--gh-float-y,0px),0);transform-style:preserve-3d;will-change:transform}
.gh-motion-active .gh-stage-art{transform:translate3d(var(--gh-art-x,0px),var(--gh-art-y,0px),0);will-change:transform}
.gh-motion-active .gh-book:after{background:linear-gradient(115deg,transparent 36%,#ffffff0b 48%,#ffffff04 51%,transparent 64%);background-size:220% 100%;background-position:var(--gh-sheen,50%) 50%}
.gh-motion-toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;background:transparent;border:1px solid color-mix(in srgb,var(--gh-muted) 30%,transparent);border-radius:3px;color:var(--gh-muted);font:inherit;font-size:12px;line-height:1.4;padding:7px 10px;cursor:pointer}
.gh-motion-toggle[hidden]{display:none}
.gh-motion-toggle:hover{border-color:var(--gh-accent);color:var(--gh-light)}
.gh-motion-toggle:focus-visible{outline:3px solid var(--gh-accent);outline-offset:4px}
.gh-motion-toggle:before{content:'';height:10px;width:8px;border-inline:2px solid currentColor}
.gh-motion-toggle[data-paused=true]:before{height:0;width:0;border:5px solid transparent;border-left:7px solid currentColor;border-right:0}
@media(max-width:1100px) and (min-width:761px){.gh-hero-foot{flex-wrap:wrap;gap:13px 20px}.gh-hero-foot>p{flex-basis:100%}.gh-motion-toggle{margin-left:auto}}
@media(max-width:760px){.gh-hero-foot{position:relative;padding-right:0}.gh-hero-foot>p{max-width:100%}.gh-motion-toggle{margin-top:2px}.gh-motion-canvas{inset:-7% -5%}}
@media(prefers-reduced-motion:reduce){.gh-motion-canvas{transition:none}}

/* Immersive scenes span the hero, never a rectangular patch behind the covers. */
.gh-world{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;isolation:isolate}
.gh-world-image{position:absolute;inset:-3%;background-image:var(--gh-scene-image);background-position:var(--gh-scene-position,center 46%);background-size:cover;animation:gh-world-breathe 42s ease-in-out infinite alternate;animation-play-state:paused;will-change:transform}
.gh-world:after{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;background:var(--gh-scene-veil)}
.gh-world-illustration{position:absolute;inset:-7% -8% -9% 39%;opacity:.56;mask-image:linear-gradient(90deg,transparent,#000 20%,#000 88%,transparent);transform:translate3d(var(--gh-art-x,0px),var(--gh-art-y,0px),0);will-change:transform}
.gh-world-illustration .gh-illustration{opacity:1}
.gh-world-illustration .gh-planet{opacity:.5}
.gh-hero-inner{z-index:3}
.gh-stage{isolation:auto}
.gh-motion-canvas{inset:0;z-index:1;mask-image:linear-gradient(90deg,transparent 4%,#0008 40%,#000 60%);pointer-events:none}
.gh-motion-canvas canvas{background:transparent}
.gh-motion-glow{inset:0;z-index:0;background:radial-gradient(ellipse at var(--gh-glow-x,65%) var(--gh-glow-y,35%),color-mix(in srgb,var(--gh-accent) 14%,transparent),transparent 65%);mask-image:linear-gradient(90deg,transparent,#000 24%,#000 84%,transparent);opacity:var(--gh-glow-opacity,.35)}
.gh-world-cloud{position:absolute;inset:6% -28% -24%;z-index:2;pointer-events:none;opacity:.3;filter:blur(26px);background:radial-gradient(ellipse at 23% 77%,#cad9cc54,transparent 43%),radial-gradient(ellipse at 65% 64%,#d1dcc955,transparent 37%),radial-gradient(ellipse at 89% 87%,#c9d5c949,transparent 37%);mask-image:linear-gradient(90deg,transparent,#000 19%,#000 81%,transparent);animation:gh-fog-drift 22s ease-in-out infinite alternate;animation-play-state:paused;will-change:transform}
.gh-world-cloud-front{inset:41% -34% -31%;opacity:.18;filter:blur(17px);animation-name:gh-fog-return;animation-duration:17s;animation-delay:-7s}
.gh-world-light{position:absolute;inset:-14%;z-index:1;background:radial-gradient(ellipse at 82% 34%,color-mix(in srgb,var(--gh-accent) 18%,transparent),transparent 35%);mask-image:radial-gradient(ellipse at center,#000 35%,transparent 73%);animation:gh-light-breathe 11s ease-in-out infinite alternate;animation-play-state:paused;will-change:opacity}
.gh-hero[data-motion-running=true] :is(.gh-world-image,.gh-world-cloud,.gh-world-light){animation-play-state:running}
.gh-horror{background:#0a1411}
.gh-horror .gh-world-image{background-image:url('/assets/img/genre-heroes/horror-world-v2.webp');background-position:center 47%;opacity:.97}
.gh-horror .gh-world:after{background:linear-gradient(90deg,#06110fde 0%,#07120faa 30%,#09141128 61%,#07131026 100%)}
.gh-horror .gh-atmosphere,.gh-scifi .gh-atmosphere{display:none}
.gh-horror .gh-world-cloud-back{opacity:.8;animation-duration:20s}
.gh-horror .gh-world-cloud-front{opacity:.66;animation-duration:15s}
.gh-horror .gh-world-light{background:radial-gradient(ellipse at 81% 41%,#ce9b7044,transparent 27%);animation-duration:7s}
.gh-horror .gh-motion-glow{opacity:.2}
.gh-horror .gh-stage-caption{color:#e9cdb5;text-shadow:0 1px 12px #000}
.gh-scifi{background:#061322}
.gh-scifi .gh-world-image{background-image:url('/assets/img/genre-heroes/scifi-world-v2.webp');background-position:center 46%;opacity:.88;animation-duration:48s}
.gh-scifi .gh-world:after{background:linear-gradient(90deg,#06101edf 0%,#071221b5 32%,#07132435 63%,#09192a18 100%)}
.gh-scifi .gh-world-cloud-back{background:radial-gradient(ellipse at 71% 53%,#258ad655,transparent 39%),radial-gradient(ellipse at 91% 19%,#6ea8d040,transparent 32%);opacity:.53;animation-duration:32s}
.gh-scifi .gh-world-cloud-front{background:radial-gradient(ellipse at 58% 81%,#316d9d38,transparent 47%);opacity:.4;animation-duration:27s}
.gh-scifi .gh-world-light{background:radial-gradient(ellipse at 84% 29%,#83d6fa45,transparent 28%)}
.gh-scifi .gh-motion-glow{opacity:.18}
.gh-scifi .gh-stage-caption{color:#d4f2f5;text-shadow:0 1px 12px #000}
.gh-fantasy .gh-world-cloud{opacity:.43;background:radial-gradient(ellipse at 31% 78%,#aec69a50,transparent 38%),radial-gradient(ellipse at 77% 72%,#c7c69c5c,transparent 42%)}
.gh-romantasy .gh-world-cloud{background:radial-gradient(ellipse at 37% 84%,#cfb6d94d,transparent 42%),radial-gradient(ellipse at 80% 62%,#d9aebe48,transparent 42%);opacity:.36}
.gh-thriller .gh-world-cloud{opacity:.38;animation-duration:28s}
.gh-adventure .gh-world-cloud{opacity:.43;background:radial-gradient(ellipse at 30% 85%,#b9d1b355,transparent 42%),radial-gradient(ellipse at 74% 68%,#a4c9c74d,transparent 38%)}
.gh-light .gh-world-cloud{opacity:.16;background:radial-gradient(ellipse at 72% 65%,color-mix(in srgb,var(--gh-accent) 22%,transparent),transparent 47%)}
.gh-light .gh-world-light{opacity:.25}
.gh-children .gh-world-illustration{opacity:.83;inset:-6% -7% -12% 37%}
.gh-romance .gh-world-illustration{opacity:.68}
.gh-poetry .gh-world-illustration{opacity:.5}
.gh-world-illustration .gh-cosy-window{background-color:transparent;box-shadow:none}
.gh-world-illustration .gh-memoir-light{border:0}
.gh-world-illustration .gh-romance-sun{opacity:.7}
.gh-horror .gh-hero-foot,.gh-scifi .gh-hero-foot{border-color:#e1f1e333;text-shadow:0 1px 12px #000}
.gh-horror .gh-motion-toggle,.gh-scifi .gh-motion-toggle{background:#07121b45}
#pc-results .pc-genre-gallery{overflow-anchor:none}
@keyframes gh-fog-drift{from{transform:translate3d(-9%,4%,0) scale(1.04)}to{transform:translate3d(8%,-4%,0) scale(1.12)}}
@keyframes gh-fog-return{from{transform:translate3d(10%,-3%,0) scale(1.08)}to{transform:translate3d(-10%,5%,0) scale(1.02)}}
@keyframes gh-light-breathe{from{opacity:.28;transform:scale(1)}to{opacity:.7;transform:scale(1.07)}}
@keyframes gh-world-breathe{from{transform:scale(1.005) translate3d(-.3%,0,0)}to{transform:scale(1.035) translate3d(.3%,.3%,0)}}
@media(min-width:1500px){.gh-world-illustration{left:41%;right:-5%}.gh-horror .gh-world-image,.gh-scifi .gh-world-image{background-position:center 45%}}
@media(max-width:760px){
  .gh-world-illustration,.gh-children .gh-world-illustration{inset:38% -17% -7% -17%;mask-image:linear-gradient(180deg,transparent,#000 13%,#000 88%,transparent)}
  .gh-motion-canvas{inset:0;mask-image:linear-gradient(180deg,transparent 20%,#0009 47%,#000 62%)}
  .gh-world-image{inset:-2%;background-position:72% center}
  .gh-horror .gh-world-image{background-position:74% center}
  .gh-scifi .gh-world-image{background-position:78% center}
  .gh-horror .gh-world:after{background:linear-gradient(180deg,#06120fee 0%,#07120fd9 31%,#09141168 50%,#07131038 70%,#07131086 100%)}
  .gh-scifi .gh-world:after{background:linear-gradient(180deg,#06101eee 0%,#071221d9 31%,#07132468 50%,#09192a22 70%,#09192a77 100%)}
  .gh-world-cloud{inset:30% -32% -13%;filter:blur(18px)}
  .gh-world-cloud-front{inset:52% -34% -11%;filter:blur(12px)}
  .gh-motion-glow{mask-image:linear-gradient(180deg,transparent 20%,#000 55%,#000 82%,transparent)}
}

/* Each genre opens into its own landscape; veils blend continuously across it. */
.gh-fantasy{--gh-scene-image:url('/assets/img/genre-heroes/fantasy-world-v2.webp');--gh-scene-tone:#0c251e;--gh-scene-position:center 43%}
.gh-romantasy{--gh-scene-image:url('/assets/img/genre-heroes/romantasy-world-v2.webp');--gh-scene-tone:#25182e;--gh-scene-position:center 40%}
.gh-thriller{--gh-scene-image:url('/assets/img/genre-heroes/thriller-world-v2.webp');--gh-scene-tone:#101d29;--gh-scene-position:center 49%}
.gh-adventure{--gh-scene-image:url('/assets/img/genre-heroes/adventure-world-v2.webp');--gh-scene-tone:#0c3235;--gh-scene-position:center 47%}
.gh-romance{--gh-scene-image:url('/assets/img/genre-heroes/romance-world-v2.webp');--gh-scene-tone:#fcf2ef}
.gh-cosy{--gh-scene-image:url('/assets/img/genre-heroes/cosy-world-v2.webp');--gh-scene-tone:#faf7e9;--gh-scene-position:center 49%}
.gh-historical{--gh-scene-image:url('/assets/img/genre-heroes/historical-world-v2.webp');--gh-scene-tone:#f7f0e4;--gh-scene-position:center 48%}
.gh-literary{--gh-scene-image:url('/assets/img/genre-heroes/literary-world-v2.webp');--gh-scene-tone:#f5f2ec}
.gh-memoir{--gh-scene-image:url('/assets/img/genre-heroes/memoir-world-v2.webp');--gh-scene-tone:#f5f4e9;--gh-scene-position:center 49%}
.gh-children{--gh-scene-image:url('/assets/img/genre-heroes/children-world-v2.webp');--gh-scene-tone:#eff7fc;--gh-scene-position:center 47%}
.gh-poetry{--gh-scene-image:url('/assets/img/genre-heroes/poetry-world-v2.webp');--gh-scene-tone:#f9f8f2;--gh-scene-position:center 49%}
.gh-nonfiction{--gh-scene-image:url('/assets/img/genre-heroes/nonfiction-world-v2.webp');--gh-scene-tone:#f8f5e9}
:is(.gh-fantasy,.gh-romantasy,.gh-thriller,.gh-adventure){--gh-scene-veil:linear-gradient(0deg,color-mix(in srgb,var(--gh-scene-tone) 88%,transparent),transparent 33%),linear-gradient(90deg,color-mix(in srgb,var(--gh-scene-tone) 93%,transparent),color-mix(in srgb,var(--gh-scene-tone) 85%,transparent) 31%,color-mix(in srgb,var(--gh-scene-tone) 57%,transparent) 46%,color-mix(in srgb,var(--gh-scene-tone) 12%,transparent) 69%,transparent)}
.gh-light{--gh-scene-veil:linear-gradient(0deg,color-mix(in srgb,var(--gh-scene-tone) 96%,transparent),transparent 33%),linear-gradient(90deg,color-mix(in srgb,var(--gh-scene-tone) 96%,transparent),color-mix(in srgb,var(--gh-scene-tone) 94%,transparent) 30%,color-mix(in srgb,var(--gh-scene-tone) 80%,transparent) 43%,color-mix(in srgb,var(--gh-scene-tone) 30%,transparent) 60%,transparent 80%)}
.gh-hero .gh-atmosphere{display:none}
:is(.gh-fantasy,.gh-romantasy,.gh-thriller,.gh-adventure) .gh-stage-caption{color:var(--gh-light);text-shadow:0 1px 12px #000}
.gh-light .gh-stage-caption{color:var(--gh-light);text-shadow:0 1px 12px var(--gh-scene-tone),0 0 5px var(--gh-scene-tone)}
.gh-fantasy .gh-world-light{background:radial-gradient(ellipse at 78% 24%,#e4d09265,transparent 36%);animation-duration:14s}
.gh-fantasy .gh-world-cloud-back{opacity:.57;animation-duration:26s}
.gh-romantasy .gh-world-light{background:radial-gradient(ellipse at 80% 24%,#dfbad667,transparent 32%);animation-duration:13s}
.gh-romantasy .gh-world-cloud-front{opacity:.43;animation-duration:24s}
.gh-thriller .gh-world-light{background:radial-gradient(ellipse at 84% 44%,#d9a66742,transparent 32%);animation-duration:8s}
.gh-thriller .gh-world-cloud-back{background:radial-gradient(ellipse at 76% 76%,#99b8c97a,transparent 40%);opacity:.5}
.gh-adventure .gh-world-cloud-back{opacity:.55;animation-duration:30s}
.gh-adventure .gh-world-light{background:radial-gradient(ellipse at 81% 23%,#e9d29855,transparent 36%);animation-duration:17s}
.gh-light .gh-world-light{background:radial-gradient(ellipse at 79% 29%,#fff4d078,transparent 39%);animation-duration:17s}
.gh-light .gh-world-cloud{background:radial-gradient(ellipse at 72% 62%,#fff9e994,transparent 46%);opacity:.33;animation-duration:29s}
.gh-romance .gh-world-cloud-front{background:radial-gradient(ellipse at 84% 68%,#f1c6c76b,transparent 46%);opacity:.3}
.gh-cosy .gh-world-light{background:radial-gradient(ellipse at 83% 29%,#fff0a47a,transparent 37%);animation-duration:19s}
.gh-historical .gh-world-cloud{animation-duration:34s;opacity:.26}
.gh-literary .gh-world-image,.gh-nonfiction .gh-world-image{animation-duration:56s}
.gh-literary .gh-world-cloud,.gh-nonfiction .gh-world-cloud{opacity:.17;animation-duration:38s}
.gh-memoir .gh-world-light{background:radial-gradient(ellipse at 79% 26%,#ffe6a47e,transparent 40%);animation-duration:21s}
.gh-children .gh-world-cloud-back{background:radial-gradient(ellipse at 67% 23%,#ffffffa6,transparent 27%),radial-gradient(ellipse at 88% 34%,#ffffffa6,transparent 26%);opacity:.65;animation-duration:25s;filter:blur(14px)}
.gh-children .gh-world-cloud-front{opacity:.25;animation-duration:19s}
.gh-poetry .gh-world-cloud{background:radial-gradient(ellipse at 73% 71%,#f4ffffb3,transparent 45%);opacity:.53;animation-duration:36s}
.gh-poetry .gh-world-light{background:radial-gradient(ellipse at 82% 42%,#fff3e666,transparent 40%);animation-duration:23s}
@media(max-width:760px){
  .gh-world-image{background-position:var(--gh-scene-mobile-position,76% center)}
  :is(.gh-fantasy,.gh-romantasy,.gh-thriller,.gh-adventure){--gh-scene-veil:linear-gradient(180deg,color-mix(in srgb,var(--gh-scene-tone) 97%,transparent),color-mix(in srgb,var(--gh-scene-tone) 94%,transparent) 32%,color-mix(in srgb,var(--gh-scene-tone) 50%,transparent) 51%,color-mix(in srgb,var(--gh-scene-tone) 12%,transparent) 70%,color-mix(in srgb,var(--gh-scene-tone) 94%,transparent))}
  .gh-light{--gh-scene-veil:linear-gradient(180deg,color-mix(in srgb,var(--gh-scene-tone) 99%,transparent),color-mix(in srgb,var(--gh-scene-tone) 97%,transparent) 32%,color-mix(in srgb,var(--gh-scene-tone) 65%,transparent) 51%,color-mix(in srgb,var(--gh-scene-tone) 8%,transparent) 68%,color-mix(in srgb,var(--gh-scene-tone) 97%,transparent))}
  .gh-children{--gh-scene-mobile-position:83% center}
}

/* Small events belong to the landscape, with no additional animation loop. */
.gh-scene-effects{position:absolute;display:block;pointer-events:none;opacity:0;overflow:hidden}
.gh-hero[data-scene-ready=true] .gh-scene-effects{opacity:1}
.gh-scene-animated{animation-play-state:paused!important;transform-box:fill-box;transform-origin:center}
.gh-hero[data-motion-running=true] .gh-scene-animated{animation-play-state:running!important}
.gh-storm-cloud{opacity:0;animation:gh-distant-lightning 22s linear -13s infinite}
.gh-storm-bolt{opacity:0;animation:gh-lightning-branch 22s linear -13s infinite}
.gh-hero:not([data-motion-running=true]) :is(.gh-storm-cloud,.gh-storm-bolt){visibility:hidden}
.gh-window-glimmer{opacity:.35;animation:gh-window-light 8.3s ease-in-out -3s infinite}
.gh-lamp-flame{opacity:.8;animation:gh-lamp-flicker var(--gh-lamp-period,12s) linear var(--gh-lamp-delay,0s) infinite}
.gh-lamp-shade{opacity:0;animation:gh-lamp-dim var(--gh-lamp-period,12s) linear var(--gh-lamp-delay,0s) infinite}
.gh-street-reflection{opacity:.32;animation:gh-pavement-shimmer 9s ease-in-out -2s infinite alternate}
.gh-thriller .gh-world-cloud-back{opacity:.84;animation-duration:16s;background:radial-gradient(ellipse at 64% 75%,#adc7d582,transparent 35%),radial-gradient(ellipse at 84% 65%,#94aab36b,transparent 38%)}
.gh-thriller .gh-world-cloud-front{opacity:.68;animation-duration:12s;background:radial-gradient(ellipse at 74% 68%,#bacbd577,transparent 36%),radial-gradient(ellipse at 47% 91%,#a3bac266,transparent 40%)}
.gh-horror .gh-world-cloud-back{animation-duration:18s}
.gh-horror .gh-world-cloud-front{animation-duration:13s}
.gh-aurora{opacity:.12;animation:gh-aurora-drift 17s ease-in-out -4s infinite alternate}
.gh-meteor{opacity:0;animation:gh-shooting-star 16s linear infinite}
.gh-sunshafts{opacity:.35;animation:gh-shafts-sway 13s ease-in-out -5s infinite alternate;transform-origin:85% 0}
.gh-fantasy .gh-sunshafts{opacity:.52;animation-duration:11s}
.gh-firefly{opacity:.7;animation:gh-firefly-roam 9s ease-in-out infinite}
.gh-drifting-petal{opacity:0;animation:gh-petal-drift 12s linear infinite}
.gh-moon-halo{opacity:.15;animation:gh-halo-bloom 11s ease-in-out -4s infinite alternate}
.gh-butterfly-flight{animation:gh-butterfly-drift 9s ease-in-out infinite alternate}
.gh-butterfly-wings{animation:gh-butterfly-wingbeat 1.3s ease-in-out infinite alternate}
.gh-leaf-shadows{opacity:.13;animation:gh-leaf-sway 12s ease-in-out -3s infinite alternate}
.gh-river-glints{opacity:.3;animation:gh-river-sparkle 6s ease-in-out -2s infinite alternate}
.gh-story-cloud{opacity:.5;animation:gh-story-clouds 24s ease-in-out infinite alternate}
.gh-water-ripple{opacity:0;animation:gh-water-rings 12s ease-out infinite}
@keyframes gh-distant-lightning{0%,71%,83%,100%{opacity:0}74%{opacity:.42}77%{opacity:.2}80%{opacity:.04}}
@keyframes gh-lightning-branch{0%,73%,78%,100%{opacity:0}74.2%{opacity:.72}75.2%{opacity:.2}76.5%{opacity:.08}}
@keyframes gh-window-light{0%,100%{opacity:.28}32%{opacity:.62}54%{opacity:.33}72%{opacity:.5}}
@keyframes gh-lamp-flicker{0%,48%,62%,100%{opacity:.8}51%{opacity:.1}54%{opacity:.65}56%{opacity:.32}59%{opacity:.85}}
@keyframes gh-lamp-dim{0%,48%,62%,100%{opacity:0}51%{opacity:.93}54%{opacity:.15}56%{opacity:.6}59%{opacity:0}}
@keyframes gh-pavement-shimmer{from{opacity:.15;transform:scaleX(.8) translateY(-3px)}to{opacity:.5;transform:scaleX(1.2) translateY(5px)}}
@keyframes gh-aurora-drift{from{opacity:.08;transform:translate(-30px,-15px) scaleY(.8)}to{opacity:.26;transform:translate(25px,30px) scaleY(1.2)}}
@keyframes gh-shooting-star{0%{opacity:0;transform:translate(-110px,-55px)}2%{opacity:.85}8%{opacity:0;transform:translate(210px,110px)}100%{opacity:0;transform:translate(210px,110px)}}
@keyframes gh-shafts-sway{from{transform:rotate(-3deg) translateX(-16px)}to{transform:rotate(3deg) translateX(18px)}}
@keyframes gh-firefly-roam{0%,100%{opacity:.2;transform:translate(-30px,24px)}32%{opacity:.9;transform:translate(35px,-30px)}65%{opacity:.55;transform:translate(-15px,-68px)}}
@keyframes gh-petal-drift{0%{opacity:0;transform:translate(30px,-180px) rotate(-20deg)}15%{opacity:.7}65%{opacity:.65;transform:translate(-100px,150px) rotate(130deg)}100%{opacity:0;transform:translate(-160px,290px) rotate(225deg)}}
@keyframes gh-halo-bloom{from{opacity:.1;transform:scale(.95)}to{opacity:.26;transform:scale(1.12)}}
@keyframes gh-butterfly-drift{from{transform:translate(-25px,12px) rotate(-12deg)}to{transform:translate(40px,-30px) rotate(8deg)}}
@keyframes gh-butterfly-wingbeat{from{transform:scaleX(.35)}to{transform:scaleX(1)}}
@keyframes gh-leaf-sway{from{opacity:.09;transform:translate(-18px,7px) rotate(-3deg)}to{opacity:.2;transform:translate(19px,-6px) rotate(3deg)}}
@keyframes gh-river-sparkle{from{opacity:.16;transform:translate(0,-3px) scaleX(.97)}to{opacity:.5;transform:translate(2px,4px) scaleX(1.03)}}
@keyframes gh-story-clouds{from{transform:translate(-95px,6px);opacity:.3}to{transform:translate(95px,-12px);opacity:.6}}
@keyframes gh-water-rings{0%{opacity:0;transform:scale(.5)}20%{opacity:.45}100%{opacity:0;transform:scale(1.65)}}
@media(max-width:760px){.gh-scene-effects .gh-sunshafts{opacity:.25}}

/* Fine rain uses randomly spaced drops with continuous, depth-dependent movement. */
.gh-rain-canvas{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;mask-image:linear-gradient(90deg,transparent 25%,#0005 48%,#000 72%)}
.gh-rain-canvas canvas{display:block;width:100%;height:100%;pointer-events:none}
.gh-orbital-beacon{animation:gh-orbital-pass 24s linear -7s infinite}
.gh-enchanted-wisp{opacity:0;animation:gh-wisp-wander 14s ease-in-out -4s infinite}
.gh-constellation{opacity:0;animation:gh-constellation-reveal 15s ease-in-out -3s infinite}
.gh-distant-flock{opacity:0;animation:gh-birds-crossing 22s linear -6s infinite}
.gh-bird-wings{animation:gh-bird-wingbeat 2s ease-in-out infinite alternate}
.gh-falling-leaf{opacity:0;animation:gh-leaf-tumble 16s ease-in-out infinite}
.gh-floating-seed{opacity:0;animation:gh-seed-drift 18s ease-in-out infinite}
.gh-paper-plane{opacity:0;animation:gh-plane-flight 17s ease-in-out -4s infinite}
.gh-valley-mist{opacity:.18;animation:gh-valley-breeze 18s ease-in-out -5s infinite alternate}
.gh-window-sunpool{opacity:.2;animation:gh-studio-sunlight 15s ease-in-out -4s infinite alternate}
.gh-water-sheen{opacity:.15;animation:gh-water-shimmer 9s ease-in-out -3s infinite alternate}
.gh-nonfiction .gh-leaf-shadows{animation-duration:9s}
.gh-cosy .gh-butterfly-flight{animation-duration:7s}
@keyframes gh-orbital-pass{0%{transform:translate(-90px,5px);opacity:0}12%{opacity:.8}50%{transform:translate(40px,-70px);opacity:.6}85%{opacity:.8}100%{transform:translate(150px,10px);opacity:0}}
@keyframes gh-wisp-wander{0%,100%{opacity:0;transform:translate(-75px,45px) scale(.8)}25%{opacity:.36}60%{opacity:.5;transform:translate(12px,-30px) scale(1)}85%{opacity:.12;transform:translate(65px,-80px) scale(.85)}}
@keyframes gh-constellation-reveal{0%,100%{opacity:.05}30%,55%{opacity:.65}80%{opacity:.12}}
@keyframes gh-birds-crossing{0%{opacity:0;transform:translate(-210px,25px)}12%,82%{opacity:.6}45%{transform:translate(-10px,-15px)}100%{opacity:0;transform:translate(190px,-30px)}}
@keyframes gh-bird-wingbeat{from{transform:scaleY(.35)}to{transform:scaleY(1.15)}}
@keyframes gh-leaf-tumble{0%{opacity:0;transform:translate(40px,-100px) rotate(-35deg)}15%{opacity:.55}55%{opacity:.65;transform:translate(-55px,55px) rotate(120deg)}100%{opacity:0;transform:translate(-110px,230px) rotate(240deg)}}
@keyframes gh-seed-drift{0%{opacity:0;transform:translate(45px,55px) rotate(-20deg)}18%{opacity:.65}60%{opacity:.5;transform:translate(-55px,-20px) rotate(15deg)}100%{opacity:0;transform:translate(-160px,-70px) rotate(-10deg)}}
@keyframes gh-plane-flight{0%{opacity:0;transform:translate(-150px,35px) rotate(-15deg)}12%{opacity:.85}45%{transform:translate(-15px,-50px) rotate(8deg);opacity:.85}75%{transform:translate(110px,-15px) rotate(16deg);opacity:.85}100%{opacity:0;transform:translate(220px,35px) rotate(5deg)}}
@keyframes gh-valley-breeze{from{opacity:.1;transform:translate(-100px,8px) scaleX(.85)}to{opacity:.3;transform:translate(85px,-12px) scaleX(1.1)}}
@keyframes gh-studio-sunlight{from{opacity:.14;transform:translate(-35px,-12px) skewX(-4deg)}to{opacity:.48;transform:translate(30px,10px) skewX(3deg)}}
@keyframes gh-water-shimmer{from{opacity:.12;transform:translate(-18px,-3px) scaleX(.96)}to{opacity:.42;transform:translate(20px,4px) scaleX(1.04)}}
@media(max-width:760px){.gh-rain-canvas{mask-image:linear-gradient(180deg,transparent 27%,#0006 50%,#000 68%,transparent)}}

/* Hover changes paint only: overlapping cover links keep their position and stacking. */
.gh-books .gh-book:hover{filter:brightness(1.035)}
