.kn-home {
	font-family: 'Karla', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: var(--ink);
	background: var(--cream);
	line-height: 1.55;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px 80px;
}

.kn-home * {
	box-sizing: border-box;
}

.kn-home h1,.kn-home h2,.kn-home h3 {
	font-family: 'Fraunces', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;
	font-weight: 600;
	text-wrap: balance;
	margin: 0 0 .4em;
}

.kn-home a {
}

.kn-home a:focus-visible,.kn-home button:focus-visible {
	outline: 3px solid var(--teal);
	outline-offset: 3px;
	border-radius: 4px;
}

.kn-kicker {
	font-family: 'Caveat', 'Segoe Print', 'Bradley Hand', cursive;
	font-size: 1.55rem;
	color: var(--gold-deep);
	margin: 0 0 .1em;
	display: inline-block;
	transform: rotate(-1.5deg);
}

.kn-hero {
	text-align: center;
	padding: 56px 0 36px;
}

.kn-hero h1 {
	font-size: clamp(2rem,5vw,3.2rem);
	color: var(--ink);
}

.kn-hero p.kn-tagline {
	font-size: 1.15rem;
	color: var(--ink-soft);
	max-width: 34em;
	margin: 0 auto;
}

.kn-flourish {
	display: block;
	margin: 22px auto 0;
	opacity: .75;
}

@media (prefers-reduced-motion:reduce) {
	.kn-home * {
		transition: none !important;
	}
}

.kn-outnow {
	background: #fff8ec;
	border: 1px solid #EAD9B8;
	border-radius: 18px;
	padding: 36px 28px;
	margin: 20px 0 48px;
}

.kn-outnow h2 {
	text-align: center;
	font-size: 1.5rem;
	color: var(--gold-deep);
}

.kn-book-row {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 20px;
}

.kn-book-card {
	flex: 1 1 280px;
	max-width: 340px;
	text-decoration: none;
	display: block;
	border-radius: 14px;
	padding: 26px 24px;
	transition: transform .25s ease, box-shadow .25s ease;
	box-shadow: 0 1px 3px rgba(0,0,0,.08);
}

.kn-book-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(0,0,0,.12);
}

.kn-book-card.kianola {
	background: #F7EFDD;
}

.kn-book-card.mayfly {
	background: #E9E6F5;
}

.kn-badge {
	display: inline-block;
	font-size: .72rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 999px;
	background: rgba(0,0,0,.06);
	color: var(--ink-soft);
	margin-bottom: 10px;
}

.kn-book-card.kianola h3 {
	color: #7A4A0F;
}

.kn-book-card.kianola p {
	color: #4A1B0C;
}

.kn-book-card.mayfly h3 {
	color: #4A3F87;
}

.kn-book-card.mayfly p {
	color: #2E2A54;
}

.kn-buy {
	display: inline-block;
	margin-top: 14px;
	font-weight: 700;
	font-size: .92rem;
	padding: 9px 18px;
	border-radius: 8px;
	background: var(--gold);
	color: #fff;
}

.kn-book-card.mayfly .kn-buy {
	background: var(--violet);
}

.kn-freegift {
	text-align: center;
	margin: 22px 0 0;
	color: var(--ink-soft);
	font-size: .95rem;
}

.kn-freegift a {
	color: var(--teal);
	font-weight: 700;
}

.kn-pitch {
	max-width: 38em;
	margin: 0 auto 56px;
	text-align: center;
	font-size: 1.08rem;
	color: var(--ink-soft);
}

.kn-stage {
	border-radius: 18px;
	padding: 8px 8px 24px;
	margin-bottom: 56px;
	background: var(--stage-bg);
	transition: background .45s ease;
}

.kn-stage h2 {
	text-align: center;
	padding-top: 20px;
	color: var(--stage-title);
	transition: color .45s ease;
}

.kn-stage .kn-stage-sub {
	text-align: center;
	color: var(--stage-body);
	margin: 0 0 24px;
	transition: color .45s ease;
	font-size: .95rem;
}

.kn-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
	gap: 16px;
	padding: 0 20px;
}

.kn-card {
	display: block;
	text-decoration: none;
	border-radius: 12px;
	padding: 20px 18px;
	border-top: 4px solid var(--card-title);
	background: #fff;
	transition: transform .2s ease, box-shadow .2s ease;
}

.kn-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 18px rgba(0,0,0,.14);
}

.kn-card h3 {
	font-size: 1.1rem;
	color: var(--card-title);
	margin-bottom: 6px;
}

.kn-card p {
	font-size: .92rem;
	color: var(--ink-soft);
	margin: 0;
}

.kn-card .kn-badge {
	margin-top: 12px;
}

@media (hover:hover) {
	.kn-stage:has(.kn-card.omega:hover) {
	}
	
	.kn-stage:has(.kn-card.notion:hover) {
	}
	
	.kn-stage:has(.kn-card.mid:hover) {
	}
	
	.kn-stage:has(.kn-card.afterg:hover) {
	}
	
	.kn-stage:has(.kn-card.dog:hover) {
	}
	
	.kn-stage:has(.kn-card.blink:hover) {
	}
	
	.kn-stage:has(.kn-card.cedrick:hover) {
	}
	
	.kn-stage:has(.kn-card.candle:hover) {
	}
}

.kn-split {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 56px;
}

.kn-panel {
	flex: 1 1 300px;
	border-radius: 14px;
	padding: 26px;
}

.kn-panel.dogcorner {
	background: #FBF3E3;
}

.kn-panel.about {
	background: #EDEAF7;
}

.kn-panel h3 {
	font-size: 1.2rem;
}

.kn-panel.dogcorner h3 {
	color: #8A5A1E;
}

.kn-panel.about h3 {
	color: #5B4E96;
}

.kn-panel p {
	color: var(--ink-soft);
	font-size: .95rem;
}

.kn-panel a.kn-more {
	font-weight: 700;
	font-size: .9rem;
	color: var(--teal);
	text-decoration: none;
}

.kn-footer {
	text-align: center;
	color: var(--ink-soft);
	font-size: .9rem;
	padding-top: 24px;
	border-top: 1px solid #EAD9B8;
}

.kn-footer a {
	color: var(--ink-soft);
	margin: 0 8px;
}

.kn-book-cover {
	display: block;
	width: 130px;
	max-width: 100%;
	margin: 0 auto 14px;
	border-radius: 4px;
	box-shadow: 0 8px 20px rgba(0,0,0,.3);
}

.kn-book-card {
	text-align: center;
}

.kn-dog-photos {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin: 14px 0;
}
.kn-dog-photos figure {
	margin: 0;
	text-align: center;
}
.kn-dog-photo {
	display: block;
	width: 100px;
	height: 100px;
	object-fit: cover;
	border-radius: 50%;
	border: 3px solid #fff;
	box-shadow: 0 4px 12px rgba(0,0,0,.2);
	background: #fff;
}
.kn-dog-photos figcaption {
	font-size: .8rem;
	color: #8A5A1E;
	font-weight: 700;
	margin-top: 6px;
}


/* === FABLE POLISH (added 2026-07-13) — appended, safe to delete this whole block === */

body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

.kn-card{transition:opacity .35s ease, filter .35s ease, transform .2s ease, box-shadow .2s ease;}
.kn-grid:has(.kn-card:hover) .kn-card:not(:hover){opacity:.5;filter:saturate(.65);}
.kn-card:hover{background:radial-gradient(120% 80% at 50% -10%, rgba(255,211,130,.42), transparent 62%), #FFFDF6;}
.kn-card .kn-badge::before{content:"";display:inline-block;width:.45em;height:.45em;border-radius:50%;margin-right:.45em;vertical-align:baseline;background:#C9BBA4;transition:background .3s, box-shadow .3s;}
.kn-card:hover .kn-badge::before{background:#E8A93C;box-shadow:0 0 8px 2px rgba(222,164,60,.65);}

.kn-book-card{perspective:900px;}
.kn-book-cover{border-radius:2px 6px 6px 2px;transform-origin:left center;transition:transform .35s ease, box-shadow .35s ease;}
.kn-book-card:hover .kn-book-cover{transform:rotateY(-8deg) translateY(-3px);box-shadow:-4px 0 8px rgba(43,33,23,.18), 14px 12px 30px rgba(43,33,23,.3);}

.kn-home h2,.kn-home h3{font-variation-settings:"SOFT" 45, "WONK" 1;font-optical-sizing:auto;}
.kn-home ::selection{background:#F3E0B0;color:#2B2117;}

.kn-hero-cta > a:first-child,.kn-lampband > a{transition:transform .15s ease, box-shadow .15s ease;}
.kn-hero-cta > a:first-child:hover,.kn-lampband > a:hover{transform:translateY(-2px);}
.kn-hero-cta > a:last-child,.kn-lampband p a{background:linear-gradient(#1F6E68,#1F6E68) no-repeat 0 92%;background-size:0 2px;transition:background-size .3s ease;}
.kn-hero-cta > a:last-child:hover,.kn-lampband p a:hover{background-size:100% 2px;}

@supports (animation-timeline: view()){
  .kn-stage,.kn-split,.kn-lampband{animation:kn-rise both;animation-timeline:view();animation-range:entry 0% entry 55%;}
  @keyframes kn-rise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
}

@media (prefers-reduced-motion:reduce){
  .kn-card,.kn-book-cover{transition:none;}
  .kn-book-card:hover .kn-book-cover{transform:none;}
  .kn-stage,.kn-split,.kn-lampband{animation:none !important;}
}
/* === end fable polish === */

/* === FABLE MAP ROUTE (added 2026-07-13) — the page is the crossing; it ends at a lit window. Safe to delete this whole block === */

/* dashed trail segment between sections, with a waypoint dot */
.kn-trail{position:relative;width:100%;height:64px;margin:2px 0;pointer-events:none;}
.kn-trail::before{content:"";position:absolute;left:50%;top:9px;bottom:0;width:3px;transform:translateX(-50%);background:repeating-linear-gradient(to bottom,#9E6F16 0 7px,transparent 7px 16px);opacity:.42;border-radius:2px;}
.kn-trail-dot{position:absolute;left:50%;top:0;width:11px;height:11px;transform:translateX(-50%);border-radius:50%;background:#9E6F16;box-shadow:0 0 0 4px rgba(158,111,22,.14);}

/* draw the route in as each segment scrolls through view; pop the waypoint dot */
@supports (animation-timeline: view()){
  .kn-trail::before{transform:translateX(-50%) scaleY(0);transform-origin:top;animation:kn-draw both;animation-timeline:view();animation-range:entry 8% cover 42%;}
  @keyframes kn-draw{to{transform:translateX(-50%) scaleY(1);}}
  .kn-trail-dot{transform:translateX(-50%) scale(0);animation:kn-pop both;animation-timeline:view();animation-range:entry 0% entry 45%;}
  @keyframes kn-pop{to{transform:translateX(-50%) scale(1);}}
}

/* the destination: a small lit window, drawn in CSS (frame + cross mullions + amber light), breathing gently */
.kn-window-wrap{text-align:center;margin:0 0 14px;}
.kn-home-window{display:block;width:46px;height:58px;margin:0 auto;border:3px solid #6E5F4C;border-radius:5px;background:linear-gradient(#6E5F4C,#6E5F4C) center center/3px 100% no-repeat, linear-gradient(#6E5F4C,#6E5F4C) center 46%/100% 3px no-repeat, #F5C86A;box-shadow:0 0 14px rgba(245,200,106,.6);animation:kn-glow 4.5s ease-in-out infinite;}
.kn-window-cap{font-family:'Caveat',cursive;font-size:1.3rem;color:#9E6F16;text-align:center;margin:7px 0 0;}
@keyframes kn-glow{0%,100%{box-shadow:0 0 10px rgba(245,200,106,.45);}50%{box-shadow:0 0 20px rgba(245,200,106,.82);}}

@media (max-width:600px){ .kn-trail{height:52px;} }

@media (prefers-reduced-motion:reduce){
  .kn-trail::before{transform:translateX(-50%) scaleY(1)!important;animation:none!important;}
  .kn-trail-dot{transform:translateX(-50%) scale(1)!important;animation:none!important;}
  .kn-home-window{animation:none;box-shadow:0 0 14px rgba(245,200,106,.6);}
}
/* === end fable map route === */

/* === FABLE INTERIOR SYSTEM (added 2026-07-13) — brings homepage design language to every page. Safe to delete this whole block === */

/* shared interior wrapper */
.kn-page{max-width:1060px;margin:0 auto;padding:0 20px 30px;font-family:'Karla',-apple-system,sans-serif;color:#2B2117;line-height:1.65;}
.kn-page h1,.kn-page h2,.kn-page h3{font-family:'Fraunces',serif;text-wrap:balance;}
.kn-page ::selection{background:#F3E0B0;color:#2B2117;}

/* welcome-mat hero (every interior page) */
.kn-pg-hero{text-align:center;padding:6px 0 4px;}
.kn-pg-hero .kn-stub{width:2px;height:58px;margin:0 auto 16px;background:repeating-linear-gradient(180deg,#9E6F16 0 5px,transparent 5px 11px);position:relative;}
.kn-pg-hero .kn-stub::after{content:"";position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:#9E6F16;box-shadow:0 0 0 4px rgba(158,111,22,.18);}
.kn-pg-hero .kn-kick{font-family:'Caveat',cursive;font-size:1.5rem;color:var(--room,#1F6E68);display:block;}
.kn-pg-hero h1{font-variation-settings:"WONK" 1;font-weight:600;font-size:clamp(2.1rem,6vw,3.3rem);color:#2B2117;margin:.12em 0 .28em;}
.kn-pg-hero .kn-standfirst{color:#6E5F4C;max-width:34rem;margin:0 auto;font-size:1.1rem;}
@supports (animation-timeline: view()){ @media (prefers-reduced-motion:no-preference){ .kn-pg-hero .kn-stub{transform-origin:top;transform:scaleY(0);animation:kn-drawstub linear both;animation-timeline:view();animation-range:entry 0% entry 60%;} @keyframes kn-drawstub{to{transform:scaleY(1);}} } }

/* book dust-jacket */
.kn-jacket{display:flex;gap:38px;flex-wrap:wrap;align-items:center;justify-content:center;margin:22px 0 34px;}
.kn-jcover{flex:0 0 auto;perspective:1000px;}
.kn-jcover img{width:220px;max-width:60vw;border-radius:2px 7px 7px 2px;box-shadow:-4px 0 8px rgba(43,33,23,.15),10px 12px 30px rgba(43,33,23,.28);display:block;transition:transform .4s ease;transform-origin:left center;}
.kn-jcover:hover img{transform:rotateY(-10deg) translateY(-3px);}
.kn-jbody{flex:1 1 320px;max-width:440px;}
.kn-jbody .kn-kick{font-family:'Caveat',cursive;font-size:1.4rem;color:#1F6E68;}
.kn-jbody h1{font-family:'Fraunces',serif;font-variation-settings:"WONK" 1;font-size:clamp(2rem,5vw,3rem);color:#2B2117;margin:.06em 0 .18em;}
.kn-hook{font-size:1.16rem;color:#4A3B2A;font-style:italic;margin:.2em 0 .5em;}
.kn-meta{font-family:'Fraunces',serif;font-variant:small-caps;letter-spacing:.12em;font-size:.82rem;color:#6E5F4C;margin:0 0 1.1em;}
.kn-jbuy{display:inline-block;font-family:'Fraunces',serif;font-weight:600;color:#FBF5E8;background:var(--room,#9E6F16);padding:.7em 1.5em;border-radius:.5em;box-shadow:0 2px 0 rgba(0,0,0,.22),0 6px 18px rgba(43,33,23,.18);text-decoration:none;transition:transform .15s;}
.kn-jbuy:hover{transform:translateY(-2px);}
.kn-jfree{display:inline-block;margin-left:8px;font-family:'Caveat',cursive;font-size:1.25rem;color:#1F6E68;text-decoration:none;}

/* sticky bookmark buy-rail */
.kn-rail{position:sticky;top:12px;z-index:6;display:flex;gap:.7rem;align-items:center;width:max-content;max-width:92vw;margin:0 auto 26px;padding:.5rem .9rem;border-radius:999px;background:rgba(251,245,232,.94);backdrop-filter:blur(4px);border:1px solid #E8DCC3;box-shadow:0 6px 18px rgba(43,33,23,.12);}
.kn-rail .kn-rlabel{font-family:'Caveat',cursive;font-size:1.15rem;color:#6E5F4C;}

/* back-cover blurb */
.kn-backcover{max-width:40rem;margin:0 auto 34px;background:#FFFDF4;border:1px solid #EADFC8;border-radius:14px;padding:32px 32px;box-shadow:0 10px 30px rgba(43,33,23,.08);}
.kn-backcover p{font-size:1.08rem;line-height:1.78;color:#3A2E1F;margin:0;}
.kn-backcover p:first-of-type::first-letter{font-family:'Fraunces',serif;font-weight:700;float:left;font-size:3.2em;line-height:.8;padding:.02em .12em 0 0;color:var(--room,#8A5A12);}

/* continue-in-other-book strip */
.kn-continue{max-width:40rem;margin:0 auto 28px;text-align:center;padding:22px;border-radius:14px;background:radial-gradient(70% 130% at 50% 0%, rgba(232,169,60,.14), transparent 70%), #F6EEDC;}
.kn-continue a{font-family:'Fraunces',serif;font-weight:600;color:#8A5A12;text-decoration:none;font-size:1.12rem;}

/* letter (about) */
.kn-letter{max-width:36rem;margin:18px auto 26px;background:#FFFDF4;padding:38px 36px;border-radius:4px;box-shadow:0 16px 34px rgba(43,33,23,.12);transform:rotate(-.5deg);}
.kn-letter>*{transform:rotate(.5deg);}
.kn-letter .kn-salut{font-family:'Caveat',cursive;font-size:1.7rem;color:#6E5F4C;margin:0 0 .3em;}
.kn-letter p{font-size:1.05rem;line-height:1.72;color:#3A2E1F;}
.kn-letter .kn-ps{font-family:'Caveat',cursive;font-size:1.35rem;color:#9E6F16;margin-top:1.1em;}
.kn-letter .kn-ps a{color:#8A5A12;}

/* field-notes: stamp + progress */
.kn-stamp{display:inline-block;font-family:'Fraunces',serif;font-weight:700;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--room,#1F6E68);border:3px double currentColor;border-radius:.3em;padding:.3em .7em;transform:rotate(-4deg);opacity:.88;}
.kn-progress{max-width:34rem;margin:16px auto;height:6px;border-radius:3px;background:#EFE5CE;overflow:hidden;}
.kn-progress::before{content:"";display:block;height:100%;width:var(--pct,50%);background:linear-gradient(90deg,#9E6F16,#8A5A12);border-radius:3px;}
.kn-updated{font-family:'Caveat',cursive;font-size:1.15rem;color:#8A7A63;text-align:center;}

/* contact notepaper */
.kn-note{max-width:33rem;margin:8px auto 26px;background:#FFFDF4;padding:34px 32px 30px;border-radius:3px;transform:rotate(-.6deg);box-shadow:0 14px 30px rgba(43,33,23,.12);}
.kn-note>*{transform:rotate(.6deg);}
.kn-note .kn-porch{font-family:'Caveat',cursive;font-size:1.9rem;color:#8A5A12;text-align:center;margin:0 0 .5em;}
.kn-note input[type=text],.kn-note input[type=email],.kn-note input[type=url],.kn-note textarea{width:100%;background:transparent;border:0;border-radius:0;border-bottom:2px dashed #D9CBAE;font:inherit;color:#2B2117;padding:.45em 0;}
.kn-note textarea{background:repeating-linear-gradient(transparent 0 calc(1.7em - 1px),#EFE5CE calc(1.7em - 1px) 1.7em);line-height:1.7em;border-bottom:0;min-height:6em;}
.kn-note label{font-family:'Caveat',cursive;font-size:1.3rem;color:#6E5F4C;}
.kn-note :is(input,textarea):focus-visible{outline:none;border-bottom-color:#9E6F16;box-shadow:0 12px 18px -12px rgba(158,111,22,.55);}

/* THE SHELF */
.kn-shelf-wrap{max-width:900px;margin:6px auto 30px;}
.kn-shelf{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:5px;padding:26px 14px 0;border-bottom:14px solid #6E4B22;box-shadow:0 16px 24px -14px rgba(43,33,23,.5);border-radius:3px 3px 0 0;background:linear-gradient(180deg,transparent,rgba(110,75,34,.05));}
.kn-spine{writing-mode:vertical-rl;transform:rotate(180deg);height:190px;width:46px;display:flex;align-items:center;justify-content:center;text-align:center;font-family:'Fraunces',serif;font-weight:600;font-size:.92rem;color:#FBF5E8;padding:14px 4px;border-radius:3px 3px 0 0;box-shadow:inset -3px 0 6px rgba(0,0,0,.25),inset 2px 0 3px rgba(255,255,255,.12);text-decoration:none;transition:transform .25s ease, box-shadow .25s ease;background:#9E6F16;}
.kn-spine small{writing-mode:horizontal-tb;transform:rotate(90deg);font-family:'Karla',sans-serif;font-weight:400;font-size:.6rem;letter-spacing:.05em;opacity:.85;}
.kn-spine.tall{height:220px;} .kn-spine.short{height:168px;} .kn-spine.wide{width:56px;}
.kn-spine.gold{background:linear-gradient(90deg,#8A5A12,#B0812A);} .kn-spine.violet{background:linear-gradient(90deg,#3C3270,#5A4E9E);color:#F3F0FB;} .kn-spine.teal{background:linear-gradient(90deg,#184F4A,#2C7A6E);} .kn-spine.crimson{background:linear-gradient(90deg,#6E2140,#9C2E5C);}
.kn-spine.draft{background:repeating-linear-gradient(180deg,#EDE3CE 0 8px,#E3D6BB 8px 16px);color:#6E5F4C;font-family:'Caveat',cursive;font-size:1.25rem;box-shadow:inset -3px 0 6px rgba(0,0,0,.08);}
.kn-shelf:hover .kn-spine{opacity:.5;} .kn-shelf .kn-spine:hover{opacity:1;transform:translateY(-14px) rotate(0deg);box-shadow:0 16px 26px rgba(43,33,23,.32);z-index:2;}
.kn-shelf-cap{text-align:center;font-family:'Caveat',cursive;font-size:1.3rem;color:#8A7A63;margin:14px 0 0;}
@media (prefers-reduced-motion:reduce){ .kn-shelf .kn-spine:hover{transform:none;} }

/* author's-note asides (details, no JS) */
.kn-aside{margin:1.3rem 0;}
.kn-aside summary{list-style:none;cursor:pointer;display:inline;font-family:'Caveat',cursive;font-size:1.35rem;color:#9E6F16;}
.kn-aside summary::before{content:"\2733 ";}
.kn-aside summary::-webkit-details-marker{display:none;}
.kn-aside[open] summary{color:#8A5A12;}
.kn-aside>div{margin:.5rem 0 0 1rem;padding-left:1rem;border-left:2px dashed #D9CBAE;color:#6E5F4C;}

/* nav bulb: the light is on for the page you're on */
.wp-block-navigation .current-menu-item>a,.wp-block-navigation .current_page_item>a{position:relative;}
.wp-block-navigation .current-menu-item>a::after,.wp-block-navigation .current_page_item>a::after{content:"";position:absolute;left:50%;bottom:-.5em;transform:translateX(-50%);width:.4em;height:.4em;border-radius:50%;background:#9E6F16;box-shadow:0 0 8px 2px rgba(158,111,22,.55);}
@media (prefers-reduced-motion:no-preference){ .wp-block-navigation .current-menu-item>a::after,.wp-block-navigation .current_page_item>a::after{animation:kn-breathe 3.2s ease-in-out infinite;} @keyframes kn-breathe{50%{box-shadow:0 0 12px 4px rgba(158,111,22,.72);}} }

/* page transitions (progressive; ignored where unsupported) */
@media (prefers-reduced-motion:no-preference){ @view-transition{navigation:auto;} ::view-transition-old(root){animation-duration:.22s;} ::view-transition-new(root){animation-duration:.32s;} }

/* grab-bag */
:focus-visible{outline:2px solid #9E6F16;outline-offset:3px;border-radius:2px;}
@media (prefers-reduced-motion:no-preference){ html{scroll-behavior:smooth;} }
:target{scroll-margin-top:5rem;}
.kn-page figcaption{font-family:'Caveat',cursive;font-size:1.2rem;color:#6E5F4C;transform:rotate(-.8deg);}
.kn-page hr{border:0;text-align:center;margin:2.4rem 0;}
.kn-page hr::before{content:"\00B7 \2767 \00B7";color:#9E6F16;letter-spacing:.5em;font-family:'Fraunces',serif;}

/* per-room tint (set on the .kn-page wrapper via inline --room) */
/* === end fable interior system === */

/* === FABLE PRAISE (added 2026-07-13) — real editorial review quotes as tilted cards === */
.kn-praise{max-width:46rem;margin:6px auto 30px;}
.kn-praise h2{text-align:center;font-family:'Fraunces',serif;color:#8A5A12;font-weight:600;font-size:1.5rem;margin:0 0 4px;}
.kn-awards{text-align:center;font-family:'Fraunces',serif;font-variant:small-caps;letter-spacing:.1em;color:#8A5A12;font-size:.88rem;margin:0 0 20px;}
.kn-quotes{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;}
.kn-quote{flex:1 1 250px;max-width:340px;background:#FFFDF4;border:1px solid #EADFC8;border-radius:12px;padding:20px 22px 16px;box-shadow:0 8px 20px rgba(43,33,23,.1);}
.kn-quote:nth-child(odd){transform:rotate(-.6deg);} .kn-quote:nth-child(even){transform:rotate(.6deg);}
.kn-quote .kn-stars{color:#C99A2E;letter-spacing:.18em;font-size:.85rem;}
.kn-quote p{font-family:'Fraunces',serif;font-style:italic;color:#3A2E1F;font-size:1.02rem;line-height:1.6;margin:.35em 0 .5em;}
.kn-quote cite{display:block;font-family:'Karla',sans-serif;font-style:normal;font-size:.8rem;color:#6E5F4C;font-weight:700;text-align:right;}
/* === end fable praise === */

/* === FABLE NEXT-LEVEL (added 2026-07-13) — star meter, awards unlock, cover-morph, grab-bag, street of windows === */

/* 5. Light the fifth star — the real rating as a gradient-clipped star meter */
.kn-starmeter{text-align:center;margin:2px 0 8px;}
.kn-starmeter-stars{display:inline-block;font-size:2.5rem;line-height:1;letter-spacing:.08em;background:linear-gradient(90deg,#C99A2E var(--lit,96%),rgba(158,111,22,.22) var(--lit,96%));-webkit-background-clip:text;background-clip:text;color:transparent;}
.kn-starmeter-cap{font-family:'Karla',sans-serif;font-size:.9rem;color:#6E5F4C;margin-top:6px;}
.kn-starmeter-cap a{color:#8A5A12;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(158,111,22,.4);}

/* 11. Awards unlock on scroll */
@supports (animation-timeline: view()){ @media (prefers-reduced-motion:no-preference){
  .kn-awards{animation:kn-unlock .7s ease both;animation-timeline:view();animation-range:entry 10% entry 55%;}
  @keyframes kn-unlock{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
}}

/* 1. The covers fly — named cross-document view transitions */
.kn-book-card.kianola .kn-book-cover{view-transition-name:cover-kianola;}
.kn-book-card.mayfly .kn-book-cover{view-transition-name:cover-mayfly;}
.kn-vt-kianola{view-transition-name:cover-kianola;}
.kn-vt-mayfly{view-transition-name:cover-mayfly;}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-group(cover-kianola),::view-transition-group(cover-mayfly){animation-duration:.5s;animation-timing-function:cubic-bezier(.22,.9,.3,1);}
}

/* 12. Grab-bag delights */
body:has(.kn-note input:focus, .kn-note textarea:focus) .kn-footlight > span{filter:brightness(1.6) drop-shadow(0 0 7px rgba(245,200,106,.85));transition:filter .3s ease;}
.kn-backcover a,.kn-letter a,.kn-continue a{background:linear-gradient(#9E6F16,#9E6F16) no-repeat 0 100% / 0 2px;transition:background-size .3s ease;}
.kn-backcover a:hover,.kn-letter a:hover,.kn-continue a:hover{background-size:100% 2px;}
.kn-page ul li::marker{color:#9E6F16;}
.kn-page p{text-wrap:pretty;}
html{scrollbar-color:#9E6F16 #FBF5E8;}

/* 8. The Street of Lit Windows — real reader reviews as windows in the dark */
.kn-street{background:radial-gradient(130% 90% at 50% -10%, #3a3050, #201812 70%);padding:44px 20px 40px;border-radius:16px;margin:8px 0 24px;}
.kn-street h2{text-align:center;font-family:'Fraunces',serif;color:#F3E0B0;font-weight:600;font-size:1.6rem;margin:0 0 2px;}
.kn-street .kn-street-sub{text-align:center;font-family:'Caveat',cursive;color:#C9B48A;font-size:1.35rem;margin:0 0 24px;}
.kn-windows{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;max-width:900px;margin:0 auto;}
.kn-win{position:relative;aspect-ratio:3/4;border:6px solid #4a3b28;border-radius:5px 5px 0 0;background:#150e07;display:grid;place-items:center;padding:14px;text-align:center;text-decoration:none;transition:background .4s ease, box-shadow .4s ease, filter .4s ease;}
.kn-win .kn-win-q{opacity:0;transition:opacity .35s ease .05s;font-family:'Caveat',cursive;font-size:1.12rem;line-height:1.25;color:#2B2117;}
.kn-win .kn-win-c{opacity:0;transition:opacity .35s ease;display:block;font-family:'Karla',sans-serif;font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:#7A5A22;margin-top:8px;font-weight:700;}
.kn-win:hover,.kn-win:focus-within,.kn-win:focus{background:linear-gradient(#ffe9c0,#f3d290);box-shadow:0 0 40px 12px rgba(255,214,140,.33);outline:none;}
.kn-win:is(:hover,:focus-within,:focus) .kn-win-q,.kn-win:is(:hover,:focus-within,:focus) .kn-win-c{opacity:1;}
.kn-win.home{background:linear-gradient(#ffe9c0,#f3d290);box-shadow:0 0 30px 8px rgba(255,214,140,.28);}
.kn-win.home .kn-win-q,.kn-win.home .kn-win-c{opacity:1;color:#8A5A12;}
.kn-windows:has(.kn-win:hover) .kn-win:not(:hover):not(.home){filter:brightness(.6);}
@media (prefers-reduced-motion:no-preference){.kn-win.home{animation:kn-winbreathe 4s ease-in-out infinite;}@keyframes kn-winbreathe{50%{box-shadow:0 0 42px 13px rgba(255,214,140,.44);}}}
/* === end fable next-level === */

/* === FABLE AWWWARDS (added 2026-07-13) — display type, marquee, candle cursor, wick progress, No. labels, parallax, big sign-off === */

/* 1. editorial display hero with italic accent */
.kn-hero h1{font-size:clamp(2.4rem,6.5vw,4.4rem);line-height:1.02;letter-spacing:-.01em;}
.kn-hero h1 em{font-style:italic;color:#9E6F16;}

/* 2. marquee ribbon */
.kn-marquee{overflow:hidden;white-space:nowrap;border-top:1px solid #EAD9B8;border-bottom:1px solid #EAD9B8;padding:9px 0;margin:30px 0 8px;}
.kn-marquee-track{display:inline-block;white-space:nowrap;font-family:'Fraunces',serif;font-style:italic;font-size:1.02rem;color:#6E5F4C;animation:kn-marq 34s linear infinite;}
.kn-marquee:hover .kn-marquee-track{animation-play-state:paused;}
.kn-marquee .sep{color:#9E6F16;font-style:normal;margin:0 20px;}
@keyframes kn-marq{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.kn-marquee-track{animation:none;}}

/* 3. candle cursor — lights when something is clickable */
body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cline x1='13' y1='10' x2='13' y2='13' stroke='%236E5F4C' stroke-width='1.2'/%3E%3Ccircle cx='13' cy='9.4' r='1.1' fill='%239E6F16'/%3E%3Crect x='10.5' y='13' width='5' height='10' rx='1.6' fill='%23FBF5E8' stroke='%236E5F4C' stroke-width='1.2'/%3E%3C/svg%3E") 13 9, auto;}
a,button,summary,[role=button],[tabindex],input[type=submit],input[type=checkbox],select{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='13' cy='7.5' r='6' fill='%23F5C86A' opacity='.32'/%3E%3Cpath d='M13 3.2c-2.3 2.7-2.3 5 0 6.2 2.3-1.2 2.3-3.5 0-6.2z' fill='%23E8A93C' stroke='%238A5A12' stroke-width='.8'/%3E%3Crect x='10.5' y='11' width='5' height='11' rx='1.6' fill='%23FBF5E8' stroke='%236E5F4C' stroke-width='1.2'/%3E%3C/svg%3E") 13 4, pointer;}
input[type=text],input[type=email],input[type=url],input[type=search],textarea{cursor:text;}

/* 4. wick reading-progress along the top */
@supports (animation-timeline: scroll()){
  body::after{content:"";position:fixed;top:0;left:0;right:0;height:3px;z-index:2147483000;pointer-events:none;background:linear-gradient(90deg,#9E6F16,#E8A93C);box-shadow:0 0 8px rgba(232,169,60,.55);transform-origin:0 50%;transform:scaleX(0);animation:kn-wickbar linear both;animation-timeline:scroll(root);}
  @keyframes kn-wickbar{to{transform:scaleX(1);}}
}

/* 5. editorial section numbering */
.kn-outnow h2::before,.kn-stage h2::before,.kn-panel.dogcorner h3::before,.kn-panel.about h3::before{display:block;font-family:'Karla',sans-serif;font-weight:700;font-style:normal;font-size:.68rem;letter-spacing:.26em;color:#9E6F16;margin-bottom:5px;}
.kn-outnow h2::before{content:"\2116 01";}
.kn-stage h2::before{content:"\2116 02";}
.kn-panel.dogcorner h3::before{content:"\2116 03";}
.kn-panel.about h3::before{content:"\2116 04";}

/* 6. cover micro-parallax on scroll */
@supports (animation-timeline: view()){ @media (prefers-reduced-motion:no-preference){
  .kn-book-row .kn-book-cover{animation:kn-drift linear both;animation-timeline:view();animation-range:cover 0% cover 100%;}
  @keyframes kn-drift{from{transform:translateY(9px);}to{transform:translateY(-9px);}}
}}

/* 7. kinetic titles */
.kn-card h3,.kn-book-card h3{transition:letter-spacing .25s ease;}
.kn-card:hover h3,.kn-book-card:hover h3{letter-spacing:.035em;}

/* 8. giant sign-off in the footer */
.kn-bigsign{font-family:'Caveat',cursive;font-size:clamp(3.4rem,11vw,7.5rem);line-height:1;text-align:center;color:#2B2117;opacity:.07;user-select:none;margin:6px 0 -10px;}
/* === end fable awwwards === */

/* === FABLE ROUND2 (added 2026-07-13) — word-stagger hero, highlight sweep, shine, dog-ears, stagger, colophon === */

/* per-word hero entrance (By-Kin pattern) */
@media (prefers-reduced-motion:no-preference){
  .kn-hero h1 .w{display:inline-block;opacity:0;transform:translateY(.35em);animation:kn-word .6s cubic-bezier(.22,.9,.3,1) forwards;}
  .kn-hero h1 .w2{animation-delay:.12s;} .kn-hero h1 .w3{animation-delay:.22s;} .kn-hero h1 .w4{animation-delay:.32s;}
  @keyframes kn-word{to{opacity:1;transform:none;}}
}

/* highlighter sweep on the thesis phrase */
.kn-hl{background:linear-gradient(120deg,rgba(232,169,60,.38),rgba(232,169,60,.38)) no-repeat 0 60%/100% .48em;padding:0 .08em;}
@supports (animation-timeline: view()){ @media (prefers-reduced-motion:no-preference){
  .kn-hl{background-size:0 .48em;animation:kn-sweep .1s linear both;animation-timeline:view();animation-range:entry 40% entry 90%;}
  @keyframes kn-sweep{to{background-size:100% .48em;}}
}}

/* shine sweep across book covers on hover */
.kn-jcover{position:relative;}
.kn-jcover::after{content:"";position:absolute;inset:0;border-radius:2px 7px 7px 2px;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.38) 50%,transparent 60%);transform:translateX(-130%);transition:transform .65s ease;pointer-events:none;}
.kn-jcover:hover::after{transform:translateX(130%);}

/* dog-eared corners on quote cards */
.kn-quote{position:relative;border-top-right-radius:0;}
.kn-quote::before{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 16px 16px 0;border-color:#EADFC8 #FBF5E8;}

/* staggered card entrance in the project grid (opacity only — keeps hover transforms) */
@supports (animation-timeline: view()){ @media (prefers-reduced-motion:no-preference){
  .kn-grid .kn-card{animation:kn-fadein both;animation-timeline:view();animation-range:entry 0% entry 45%;}
  .kn-grid .kn-card:nth-child(2n){animation-range:entry 6% entry 51%;}
  .kn-grid .kn-card:nth-child(3n){animation-range:entry 12% entry 57%;}
  @keyframes kn-fadein{from{opacity:0;}}
}}

/* colophon */
.kn-colophon{text-align:center;font-family:'Karla',sans-serif;font-size:.78rem;letter-spacing:.04em;color:#8A7A63;margin:4px 0 14px;}
.kn-colophon a{color:#8A5A12;text-decoration:none;font-weight:700;}
/* === end fable round2 === */

/* === FABLE AFTER DARK (added 2026-07-13) — at night the surround goes dark and every panel becomes a lit window === */
@media (prefers-color-scheme: dark){
  body{background:#201812;}
  body::before{mix-blend-mode:screen;opacity:.035;}
  .wp-block-cover .wp-block-cover__background.has-background-background-color{background-color:#201812!important;}
  /* text that sits on the dark surround */
  .kn-hero h1,.kn-pg-hero h1{color:#F5EAD4;}
  .kn-tagline,.kn-standfirst,.kn-pitch,.kn-stage-sub{color:#D8C9A8!important;}
  .kn-hero p.kn-tagline{color:#C9B48A;}
  .kn-freegift{color:#B8A888;}
  .kn-footer{color:#B8A888;border-top-color:#4a3b28;}
  .kn-footer a{color:#C9B48A;}
  .kn-marquee{border-color:#4a3b28;}
  .kn-marquee-track{color:#B8A888;}
  .kn-bigsign{color:#F5EAD4;opacity:.09;}
  .kn-hook{color:#D8C9A8;}
  .kn-jbody h1{color:#F5EAD4;}
  .kn-praise h2{color:#C99A2E;}
  .kn-awards{color:#C99A2E;}
  .kn-starmeter-cap{color:#B8A888;}
  .kn-starmeter-cap a{color:#C99A2E;}
  .kn-amzline{color:#B8A888!important;}
  .kn-amzline strong{color:#C99A2E!important;}
  .kn-meta{color:#B8A888;}
  .kn-updated{color:#B8A888;}
  .kn-jbody .kn-kick{color:#7FB8B0;}
  .wp-block-navigation a,.wp-block-navigation a strong{color:#E8DCC3!important;}
  .kn-stamp{background:#FBF5E8;}
  .kn-shelf-cap{color:#B8A888;}
  .kn-street{box-shadow:0 0 60px rgba(0,0,0,.5);}
  /* panels stay cream — they are the lit windows; give them glow */
  .kn-outnow,.kn-stage,.kn-panel,.kn-backcover,.kn-letter,.kn-note,.kn-quote,.kn-continue,.kn-lampband,.kn-card{box-shadow:0 0 34px rgba(245,200,106,.1);}
  /* footer template part text */
  footer .wp-block-group, footer p{color:#B8A888;}
  .kn-colophon{color:#8A7A63;}
  :root{--room-surround:#201812;}
}
/* === end fable after dark === */

/* === FABLE ROUND3 (added 2026-07-13) — jacket title (one h1 per page), cover lightbox, footer minimap === */

/* jacket title keeps its display style as a p (semantics: single h1 per page) */
.kn-jbody .kn-jtitle{font-family:'Fraunces',serif;font-variation-settings:"WONK" 1;font-weight:600;font-size:clamp(2rem,5vw,3rem);color:#2B2117;margin:.06em 0 .18em;line-height:1.08;text-wrap:balance;}

/* CSS-only cover lightbox via :target */
.kn-jcover a.kn-lb-open{display:block;}
.kn-lightbox{display:none;}
.kn-lightbox:target{display:grid;position:fixed;inset:0;z-index:2147483001;background:rgba(24,17,10,.93);place-items:center;padding:26px;}
.kn-lightbox img{max-width:min(92vw,540px);max-height:82vh;width:auto;height:auto;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.6);}
.kn-lightbox figcaption{text-align:center;font-family:'Caveat',cursive;font-size:1.3rem;color:#E8CE9E;margin-top:12px;}
.kn-lightbox .kn-lb-close{position:absolute;top:16px;right:20px;font-family:'Fraunces',serif;color:#F5EAD4;font-size:1rem;text-decoration:none;border:1px solid rgba(245,234,212,.45);border-radius:999px;padding:.35em .95em;background:rgba(0,0,0,.25);}
.kn-lightbox .kn-lb-back{position:absolute;inset:0;z-index:-1;}

/* footer minimap — the site drawn as a little road; your landmark glows */
.kn-minimap-wrap{text-align:center;margin:2px 0 10px;}
.kn-minimap-wrap svg{width:min(540px,92vw);height:auto;display:inline-block;}
.kn-mm-road{stroke:#9E6F16;stroke-width:2;stroke-dasharray:5 8;fill:none;opacity:.5;}
.kn-mm a circle{fill:#FBF5E8;stroke:#6E5F4C;stroke-width:1.6;transition:fill .25s ease;}
.kn-mm a text{font-family:'Caveat',cursive;font-size:13px;fill:#8A7A63;}
.kn-mm a:hover circle,.kn-mm a:focus circle{fill:#F5C86A;}
.kn-mm a.here circle{fill:#E8A93C;stroke:#8A5A12;filter:drop-shadow(0 0 5px rgba(232,169,60,.9));}
.kn-mm a.here text{fill:#8A5A12;font-weight:700;}
body.home .kn-mm a.mm-home circle,body.page-id-86 .kn-mm a.mm-kianola circle,body.page-id-708 .kn-mm a.mm-mayfly circle,body.page-id-761 .kn-mm a.mm-shelf circle,body.page-id-784 .kn-mm a.mm-readers circle,body.page-id-1 .kn-mm a.mm-about circle,body.page-id-120 .kn-mm a.mm-contact circle{fill:#E8A93C;stroke:#8A5A12;filter:drop-shadow(0 0 5px rgba(232,169,60,.9));}
body.home .kn-mm a.mm-home text,body.page-id-86 .kn-mm a.mm-kianola text,body.page-id-708 .kn-mm a.mm-mayfly text,body.page-id-761 .kn-mm a.mm-shelf text,body.page-id-784 .kn-mm a.mm-readers text,body.page-id-1 .kn-mm a.mm-about text,body.page-id-120 .kn-mm a.mm-contact text{fill:#8A5A12;font-weight:700;}
@media (prefers-color-scheme: dark){
  .kn-jbody .kn-jtitle{color:#F5EAD4;}
  .kn-mm a text{fill:#B8A888;}
  .kn-mm a circle{fill:#2b2117;stroke:#8A7A63;}
}
/* === end fable round3 === */

/* === FABLE CHAPTER (added 2026-07-14) — the free chapter as an evening of reading === */
.kn-chapter{position:relative;}
.kn-chapter > *{position:relative;z-index:1;}
/* dusk falls as you read (progressive enhancement) */
@supports (animation-timeline: scroll()){ @media (prefers-reduced-motion:no-preference){
  .kn-chapter::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 100% at 50% -10%, #3a3050, #201812 70%);opacity:0;animation:kn-dusk linear both;animation-timeline:scroll(root);}
  @keyframes kn-dusk{0%{opacity:0;}55%{opacity:.35;}100%{opacity:.94;}}
}}
/* the typeset page */
.kn-bookpage{max-width:36rem;margin:0 auto 26px;position:relative;background:#FFFDF4;padding:56px 44px 62px;box-shadow:0 1px 0 #E8DCC3, 2px 4px 0 #F3EAD6, 3px 5px 0 #E8DCC3, 0 18px 40px rgba(43,33,23,.12);font-size:1.05rem;line-height:1.78;color:#2B2117;}
.kn-bookpage::before{content:"The Candle and the Umbrella";position:absolute;top:20px;left:0;right:0;text-align:center;font-family:'Fraunces',serif;font-variant:small-caps;letter-spacing:.22em;font-size:.7rem;color:#8A7A63;}
.kn-bookpage .kn-folio{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-family:'Fraunces',serif;font-size:.75rem;color:#8A7A63;}
.kn-bookpage p{text-indent:1.5em;margin:0 0 .35em;font-family:'Karla',sans-serif;}
.kn-bookpage p:first-of-type{text-indent:0;}
.kn-bookpage p:first-of-type::first-letter{font-family:'Fraunces',serif;font-weight:700;float:left;font-size:3.3em;line-height:.82;padding:.02em .1em 0 0;color:#8A5A12;}
@media (max-width:560px){ .kn-bookpage{padding:48px 22px 56px;} }
/* end-of-excerpt seal + reward (details = no JS, sanitizer-safe) */
.kn-seal{max-width:36rem;margin:0 auto 40px;text-align:center;}
.kn-seal summary{list-style:none;cursor:pointer;display:inline-block;font-family:'Caveat',cursive;font-size:1.5rem;color:#F5EAD4;background:radial-gradient(circle at 35% 30%, #B0812A, #8A5A12);border-radius:999px;padding:.55em 1.4em;box-shadow:0 4px 14px rgba(0,0,0,.35), inset 0 1px 2px rgba(255,255,255,.3);}
.kn-seal summary::-webkit-details-marker{display:none;}
.kn-seal summary:hover{filter:brightness(1.1);}
.kn-seal[open] summary{opacity:.55;}
.kn-reward{margin-top:22px;padding:34px 24px;border-radius:16px;background:radial-gradient(70% 130% at 50% 100%, rgba(232,169,60,.22), transparent 70%), #2b2117;color:#E8DCC3;}
.kn-reward .kn-home-window{margin:0 auto 14px;}
.kn-reward p{margin:.3em 0;}
.kn-reward a.kn-rbtn{display:inline-block;margin:10px 6px 0;font-family:'Fraunces',serif;font-weight:600;color:#FBF5E8;background:#9E6F16;padding:.6em 1.3em;border-radius:.5em;text-decoration:none;box-shadow:0 2px 0 #8A5A12;}
.kn-reward a.kn-rlink{color:#F5C86A;text-decoration:none;font-family:'Caveat',cursive;font-size:1.3rem;}
/* chapter hero + closing text must read on both light start and dark end */
.kn-chapter .kn-pg-hero h1,.kn-chapter .kn-pg-hero .kn-kick{text-shadow:0 1px 0 rgba(251,245,232,.6);}
@media (prefers-color-scheme:dark){ .kn-bookpage{box-shadow:0 0 34px rgba(245,200,106,.12), 0 18px 40px rgba(0,0,0,.4);} }
/* === end fable chapter === */

/* === FABLE CHAPTER2 (added 2026-07-14) — per-book chapter pages === */
.kn-bookpage.kn-bp-kianola::before{content:"Kianola";}
.kn-bookpage.kn-bp-mayfly::before{content:"Mayfly";}
.kn-bookpage.kn-bp-notion::before{content:"Notion";}
.kn-chtitle{text-align:center;font-family:'Fraunces',serif;font-variation-settings:"WONK" 1;font-weight:600;font-size:1.45rem;color:var(--room,#8A5A12);margin:0 0 1.1em;text-wrap:balance;}
.kn-chapter .kn-reward a.kn-rbtn{background:var(--room,#9E6F16);box-shadow:0 2px 0 rgba(0,0,0,.28);}
.kn-chapter .kn-seal summary{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--room,#8A5A12) 70%, #fff 30%), var(--room,#8A5A12));}
@supports not (background: color-mix(in srgb, red 50%, blue)){ .kn-chapter .kn-seal summary{background:var(--room,#8A5A12);} }
/* === end fable chapter2 === */

/* === FABLE PRINT (added 2026-07-14) — print a chapter, read it in the bath === */
@media print{
  body::before,body::after{display:none!important;}
  .wp-block-navigation,.kn-marquee,.kn-minimap-wrap,.kn-colophon,.kn-bigsign,.kn-footlight,.kn-trail,.kn-window-wrap,.kn-seal,.kn-rail,.kn-lightbox,footer,header{display:none!important;}
  .kn-chapter::before{display:none!important;}
  body{background:#fff!important;}
  .kn-page{max-width:100%;padding:0;}
  .kn-bookpage{box-shadow:none!important;border:0;padding:1.5em 0;max-width:100%;page-break-inside:auto;background:#fff;color:#000;}
  .kn-bookpage::before,.kn-bookpage .kn-folio{color:#555;}
  .kn-bookpage p{color:#000;font-family:Georgia,serif;}
  .kn-chtitle,.kn-pg-hero h1{color:#000!important;}
  .kn-pg-hero .kn-stub{display:none;}
}
/* === end fable print === */

/* === FABLE PULLQUOTE (added 2026-07-14) === */
.kn-pullquote{max-width:34rem;margin:10px auto 34px;text-align:center;position:relative;padding:26px 20px 8px;}
.kn-pullquote::before{content:"\201C";position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-family:'Fraunces',serif;font-size:5rem;line-height:1;color:var(--room,#9E6F16);opacity:.35;}
.kn-pullquote p{font-family:'Fraunces',serif;font-style:italic;font-size:1.35rem;line-height:1.55;color:#3A2E1F;margin:0;text-wrap:balance;}
.kn-pullquote cite{display:block;font-family:'Caveat',cursive;font-style:normal;font-size:1.25rem;color:var(--room,#8A5A12);margin-top:10px;}
@media (prefers-color-scheme:dark){ .kn-pullquote p{color:#E8DCC3;} .kn-pullquote cite{color:#C99A2E;} }
/* === end fable pullquote === */

/* === FABLE READINGROOM (added 2026-07-14) — switcher strip across the three free reads === */
.kn-roomtabs{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:0 0 26px;}
.kn-roomtabs a,.kn-roomtabs span.cur{font-family:'Fraunces',serif;font-size:.85rem;font-weight:600;text-decoration:none;padding:.45em 1em;border-radius:999px;border:1.5px solid #D9CBAE;color:#6E5F4C;background:rgba(251,245,232,.7);}
.kn-roomtabs a:hover{border-color:#9E6F16;color:#8A5A12;}
.kn-roomtabs span.cur{background:var(--room,#8A5A12);border-color:var(--room,#8A5A12);color:#FBF5E8;}
@media (prefers-color-scheme:dark){ .kn-roomtabs a{background:transparent;color:#C9B48A;border-color:#4a3b28;} }
/* === end fable readingroom === */

/* === FABLE REALMS (added 2026-07-14) — server-select board, in paper and ink === */
.kn-realms{max-width:640px;margin:0 auto 34px;border:1px solid #EADFC8;border-radius:14px;background:#FFFDF4;overflow:hidden;}
.kn-realms h2{text-align:center;font-family:'Fraunces',serif;font-variant:small-caps;letter-spacing:.18em;font-size:.95rem;color:#8A5A12;margin:0;padding:12px 10px 10px;border-bottom:1px solid #EADFC8;}
.kn-realm{display:flex;align-items:center;gap:12px;padding:11px 18px;text-decoration:none;border-bottom:1px solid #F3EAD6;transition:background .25s ease;}
.kn-realm:last-child{border-bottom:0;}
a.kn-realm:hover{background:#FBF5E8;}
.kn-realms:has(a.kn-realm:hover) .kn-realm:not(:hover){opacity:.55;}
.kn-lamp{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:#C9BBA4;}
.kn-realm.online .kn-lamp{background:#1F6E68;box-shadow:0 0 7px 1px rgba(31,110,104,.55);}
@media (prefers-reduced-motion:no-preference){ .kn-realm.online .kn-lamp{animation:kn-breathe 3.4s ease-in-out infinite;} }
.kn-realm .kn-rname{font-family:'Fraunces',serif;font-weight:600;color:#2B2117;flex:1 1 auto;}
.kn-realm .kn-rstat{font-family:'Karla',sans-serif;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#6E5F4C;}
.kn-realm.online .kn-rstat{color:#1F6E68;font-weight:700;}
.kn-realms .kn-rfoot{text-align:center;font-family:'Caveat',cursive;font-size:1.15rem;color:#8A7A63;padding:9px 12px;background:#FBF5E8;border-top:1px solid #F3EAD6;}
@media (prefers-color-scheme:dark){ .kn-realms{box-shadow:0 0 34px rgba(245,200,106,.1);} }
/* === end fable realms === */

/* === FABLE LORE (added 2026-07-14) — item-card tooltips, no JS === */
.kn-lore{position:relative;border-bottom:1px dashed #9E6F16;cursor:help;}
.kn-lore > .kn-lore-card{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%,4px);opacity:0;pointer-events:none;width:min(32ch,78vw);padding:.65rem .85rem;background:#2B2117;color:#FBF5E8;border-radius:6px;border:1px solid #9E6F16;font-family:'Karla',sans-serif;font-style:normal;font-size:.82rem;line-height:1.5;text-indent:0;text-align:center;transition:opacity .2s ease, transform .2s ease;z-index:6;}
.kn-lore:hover > .kn-lore-card,.kn-lore:focus-within > .kn-lore-card,.kn-lore:focus > .kn-lore-card{opacity:1;transform:translate(-50%,0);pointer-events:auto;}
@media print{ .kn-lore-card{display:none!important;} .kn-lore{border-bottom:0;} }
/* === end fable lore === */