:root {
	--kitabi-paper: #f1eee7;
	--kitabi-ink: #151515;
	--kitabi-muted: #675f54;
	--kitabi-red: #d43d2f;
	--kitabi-blue: #123a63;
	--kitabi-display: "Arial Narrow", "Roboto Condensed", "Helvetica Neue", Arial, sans-serif;
	--kitabi-body: Georgia, "Times New Roman", serif;
	--kitabi-sans: "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { margin: 0; }
body.kitabi-magazine-active { width: 100%; height: 100%; margin: 0; overflow: hidden; background: #111; }
.kitabi-magazine { position: relative; width: 100vw; height: 100dvh; overflow: hidden; color: var(--kitabi-ink); }
.kitabi-rail { display: flex; width: 100%; height: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.kitabi-rail::-webkit-scrollbar { display: none; }
.kitabi-page { position: relative; flex: 0 0 100vw; width: 100vw; height: 100dvh; overflow: hidden; scroll-snap-align: start; scroll-snap-stop: always; }
.kitabi-page::before, .kitabi-page::after { position: absolute; z-index: 25; top: 50%; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: #fff; background: rgba(10,10,10,.48); font: 400 1.2rem/1 var(--kitabi-sans); opacity: 0; pointer-events: none; transform: translateY(-50%); transition: opacity .16s ease; }
.kitabi-page::before { left: 1rem; content: "←"; }
.kitabi-page::after { right: 1rem; content: "→"; }
.kitabi-paper::before, .kitabi-paper::after { color: var(--kitabi-ink); border-color: rgba(21,21,21,.28); background: rgba(243,237,223,.82); }
@media (hover:hover) {
	.kitabi-page[data-kitabi-direction="prev"]::before, .kitabi-page[data-kitabi-direction="next"]::after { opacity: 1; }
}
.kitabi-paper { padding: clamp(1.25rem, 2.5vw, 2.8rem); background-color: var(--kitabi-paper); background-image: radial-gradient(rgba(83,67,45,.06) .7px,transparent .7px); background-size: 5px 5px; }

.kitabi-cover { cursor: e-resize; color: #f8f1e3; background: #050505; }
.kitabi-cover > img, .kitabi-book-opener > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kitabi-cover-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.83),rgba(0,0,0,.33) 48%,rgba(0,0,0,.06)); }
.kitabi-cover header { position: absolute; z-index: 2; top: calc(2.5vh + 10px); left: 4vw; right: 4vw; }
.kitabi-cover h1 { margin: 0; color: var(--kitabi-cover-masthead-color,#f8f1e3); font: 900 clamp(6rem,15vw,15rem)/.75 var(--kitabi-display); letter-spacing: -.09em; }
.kitabi-cover header p { margin: 1.2rem 0 0; color: var(--kitabi-cover-label-color,#f8f1e3); font: 500 clamp(.65rem,.85vw,.9rem)/1 var(--kitabi-sans); letter-spacing: .24em; }
.kitabi-cover-copy { position: absolute; z-index: 2; left: 4.2vw; bottom: 8vh; display: flex; width: min(86vw,88rem); flex-direction: column; align-items: flex-start; }
.kitabi-cover-copy strong { display: block; max-width: min(18ch,86vw); margin-bottom: 1.2rem; color: var(--kitabi-cover-headline-color,#a92827); font: 600 clamp(3rem,min(5.7vw,12vh),6rem)/.84 var(--kitabi-display); letter-spacing: -.05em; white-space: pre-line; text-wrap: balance; }
.kitabi-cover-width-narrow .kitabi-cover-copy strong { max-width: 7ch; }
.kitabi-cover-width-medium .kitabi-cover-copy strong { max-width: 11ch; }
.kitabi-cover-width-wide .kitabi-cover-copy strong { max-width: min(18ch,86vw); }
.kitabi-cover-size-large .kitabi-cover-copy strong { font-size: clamp(3.4rem,min(7vw,14vh),7.5rem); }
.kitabi-cover-size-xlarge .kitabi-cover-copy strong { font-size: clamp(4rem,min(8.5vw,16vh),9rem); }
.kitabi-cover-copy span { width: 100%; padding: .42rem 0; border-top: 1px solid rgba(255,255,255,.32); border-top-color: color-mix(in srgb,var(--kitabi-cover-lines-color,#f8f1e3) 38%,transparent); color: var(--kitabi-cover-lines-color,#f8f1e3); font: 500 clamp(.7rem,1vw,1rem)/1 var(--kitabi-sans); letter-spacing: .16em; }
.kitabi-cover small { position: absolute; z-index: 2; right: 3vw; bottom: 7vh; font: 500 .7rem/1 var(--kitabi-sans); letter-spacing: .2em; }

.kitabi-running-head { height: 5.5vh; display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 1.3rem; border-bottom: 1px solid var(--kitabi-ink); font: 500 clamp(.56rem,.7vw,.75rem)/1 var(--kitabi-sans); letter-spacing: .15em; }
.kitabi-running-head b { font: 600 clamp(1.45rem,2.3vw,2.3rem)/.72 var(--kitabi-display); }
.kitabi-contents > h2 { height: 16vh; display: flex; align-items: center; gap: 1.4rem; margin: 0; font: 700 clamp(3rem,6.4vw,7rem)/.8 var(--kitabi-sans); letter-spacing: -.06em; }
.kitabi-contents > h2 em { color: var(--kitabi-red); font: 500 1em/1 var(--kitabi-display); }
.kitabi-empty { max-width: 44rem; margin-top: 10vh; padding-top: 1.4rem; border-top: 4px solid var(--kitabi-red); }
.kitabi-empty h3 { margin: 0; font: 600 clamp(2.4rem,5vw,5rem)/.95 var(--kitabi-display); }
.kitabi-empty p { font-size: 1.15rem; line-height: 1.45; }
.kitabi-contents-grid { height: 70vh; display: grid; grid-template-columns: minmax(0,1.65fr) minmax(21rem,1fr); gap: clamp(1rem,2vw,2rem); }
.kitabi-contents button { padding: 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.kitabi-lead { display: grid; grid-template-columns: auto 1fr; grid-template-rows: minmax(0,1fr) auto; gap: .8rem 1rem; }
.kitabi-lead > img { grid-column: 1/3; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.kitabi-lead-number { color: var(--kitabi-red); padding-right: 1rem; border-right: 1px solid; font: 500 clamp(3rem,5vw,5.4rem)/.8 var(--kitabi-display); }
.kitabi-lead h3 { margin: 0; font: 600 clamp(2rem,3.4vw,3.8rem)/.92 var(--kitabi-display); letter-spacing: -.04em; }
.kitabi-lead p { margin: .35rem 0 0; font: 400 clamp(.82rem,1vw,1.05rem)/1.25 var(--kitabi-body); }
.kitabi-featured-list { display: grid; grid-template-rows: repeat(3,1fr); gap: .75rem; }
.kitabi-featured-list button { display: grid; grid-template-columns: 38% auto 1fr; gap: .7rem; min-height: 0; padding-bottom: .75rem; border-bottom: 1px solid rgba(21,21,21,.35); }
.kitabi-featured-list img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.kitabi-featured-list em { color: var(--kitabi-red); font: 500 clamp(2rem,3vw,3.2rem)/.85 var(--kitabi-display); }
.kitabi-featured-list span { display: flex; flex-direction: column; gap: .3rem; font: 400 clamp(.68rem,.78vw,.86rem)/1.25 var(--kitabi-body); }
.kitabi-featured-list b { font: 600 clamp(1rem,1.35vw,1.5rem)/1 var(--kitabi-display); }

.kitabi-book-opener { color: #f8f1e3; background: #181818; }
.kitabi-book-shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(0,0,0,.08),transparent 45%,rgba(0,0,0,.73)); }
.kitabi-book-meta { position: absolute; z-index: 2; top: 5vh; left: 5vw; padding-top: .7rem; border-top: 2px solid var(--kitabi-book-accent,var(--kitabi-red)); color: var(--kitabi-book-meta-color,#f8f1e3); font: 600 .75rem/1 var(--kitabi-sans); letter-spacing: .18em; }
.kitabi-book-title { position: absolute; z-index: 2; left: 4vw; right: 4vw; bottom: 6vh; }
.kitabi-book-title h2 { max-width: 100%; margin: 0; color: var(--kitabi-book-title-color,#f8f1e3); font: 600 clamp(4rem,min(11.2vw,21vh),14rem)/.78 var(--kitabi-display); letter-spacing: -.075em; white-space: pre-line; text-wrap: balance; overflow-wrap: break-word; }
.kitabi-book-size-large .kitabi-book-title h2 { font-size: clamp(4.5rem,min(13vw,23vh),16rem); }
.kitabi-book-size-xlarge .kitabi-book-title h2 { font-size: clamp(5rem,min(14.5vw,25vh),18rem); }
.kitabi-book-title p { margin: 1.2rem 0 0 1vw; max-width: 70rem; color: var(--kitabi-book-spot-color,#f8f1e3); font: 400 clamp(1.2rem,2vw,2.2rem)/1.08 var(--kitabi-body); }

.kitabi-article { padding-bottom: 3.5rem; }
.kitabi-columns { position: relative; height: calc(100% - 7vh); padding-top: 1.5rem; overflow: hidden; column-count: 3; column-fill: auto; column-gap: clamp(2rem,3vw,3.5rem); column-rule: 1px solid rgba(21,21,21,.35); font: 400 clamp(.86rem,1.08vw,1.18rem)/1.34 var(--kitabi-body); hyphens: auto; }
.kitabi-columns p { margin: 0 0 .85em; break-inside: auto; orphans: 3; widows: 3; }
.kitabi-columns.has-drop-cap > p:first-child::first-letter { float: left; margin: -.12em .12em -.18em 0; color: var(--kitabi-red); font: 500 6.2em/.83 var(--kitabi-display); }
.kitabi-info-box { break-inside: avoid; margin: 1rem 0; padding: 1.25rem; color: #f7f0e3; background: var(--kitabi-blue); }
.kitabi-info-box > span { font: 600 .66rem/1 var(--kitabi-sans); letter-spacing: .16em; }
.kitabi-info-box h3 { margin: .7rem 0 .5rem; font: 600 clamp(1.5rem,2vw,2.2rem)/.95 var(--kitabi-display); }
.kitabi-info-box p { margin: 0; }
.kitabi-columns blockquote { break-inside: avoid; margin: 1.4rem 0; padding: 1rem 0; border-top: 1px solid; border-bottom: 1px solid; color: var(--kitabi-red); font: 500 clamp(1.7rem,2.7vw,3rem)/1.05 var(--kitabi-display); }
.kitabi-read-link { position: absolute; right: 3vw; bottom: 1.4rem; padding: .7rem 1rem; color: #f6efe1; background: var(--kitabi-ink); text-decoration: none; font: 500 .72rem/1 var(--kitabi-sans); letter-spacing: .1em; }

.kitabi-controls { position: fixed; z-index: 30; right: 2rem; bottom: 1.2rem; display: flex; align-items: center; gap: .45rem; padding: .35rem .55rem; color: #f6efe1; background: rgba(12,12,12,.78); font: 500 .7rem/1 var(--kitabi-sans); letter-spacing: .12em; }
.kitabi-controls > button, .kitabi-archive-button { width: 2rem; height: 2rem; border: 0; color: inherit; background: transparent; cursor: pointer; }
.kitabi-archive-button { display: grid; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; text-decoration: none; font-weight: 700; letter-spacing: 0; }
.kitabi-page-count { display: grid; grid-template-columns: 2.1rem 2rem 2.1rem; align-items: center; text-align: center; }
.kitabi-home-button { width: 2rem; height: 2rem; padding: 0; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: #f6efe1; background: rgba(255,255,255,.08); cursor: pointer; font: 600 1.05rem/1 var(--kitabi-display); letter-spacing: 0; }
.kitabi-controls button:hover, .kitabi-controls button:focus-visible, .kitabi-archive-button:hover, .kitabi-archive-button:focus-visible { color: #fff; background: rgba(255,255,255,.14); outline: 1px solid rgba(255,255,255,.45); }
.kitabi-progress { position: fixed; z-index: 31; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255,255,255,.2); }
.kitabi-progress span { display: block; width: 0; height: 100%; background: var(--kitabi-red); transition: width .3s ease; }
.kitabi-basic-page { max-width: 68ch; margin: 5rem auto; padding: 1.5rem; }

.tknlj-issue-archive-active { margin: 0; color: var(--kitabi-ink); background: var(--kitabi-paper); }
.tknlj-issue-archive { width: min(92rem,100%); margin: 0 auto; padding: clamp(1.5rem,4vw,4.5rem); }
.tknlj-issue-archive-header { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .75rem 2rem; padding-bottom: 1.5rem; border-bottom: 5px solid var(--kitabi-ink); }
.tknlj-issue-archive-header p { grid-column: 1/3; margin: 0; color: var(--kitabi-red); font: 700 .72rem/1 var(--kitabi-sans); letter-spacing: .2em; }
.tknlj-issue-archive-header h1 { margin: 0; font: 900 clamp(3rem,8vw,8rem)/.8 var(--kitabi-display); letter-spacing: -.06em; }
.tknlj-issue-archive-header a { color: inherit; font: 700 .78rem/1 var(--kitabi-sans); letter-spacing: .08em; text-decoration: none; }
.tknlj-issue-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap: clamp(1.25rem,3vw,3rem); padding: 2.5rem 0; }
.tknlj-issue-card a { display: block; color: inherit; text-decoration: none; }
.tknlj-issue-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; filter: saturate(.88) contrast(1.04); }
.tknlj-issue-card span { display: block; margin-top: .8rem; color: var(--kitabi-red); font: 700 .65rem/1 var(--kitabi-sans); letter-spacing: .14em; }
.tknlj-issue-card h2 { margin: .45rem 0 0; font: 800 clamp(1.7rem,3vw,2.8rem)/.9 var(--kitabi-display); letter-spacing: -.035em; white-space: pre-line; }
.tknlj-issue-card a:hover h2, .tknlj-issue-card a:focus-visible h2 { color: var(--kitabi-red); }
.tknlj-issue-archive .navigation.pagination { margin: 1rem 0 3rem; font-family: var(--kitabi-sans); }
.tknlj-issue-archive-empty { padding: 4rem 0; font: 600 1.4rem/1.3 var(--kitabi-body); }

@media (max-width: 760px) {
	.kitabi-paper { padding: 1rem 1.1rem 3.2rem; }
	.kitabi-cover > img { object-position: 62% center; }
	.kitabi-cover-shade { background: linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.12) 42%,rgba(0,0,0,.85)); }
	.kitabi-cover header { top: calc(1.4rem + 10px); left: 1rem; }
	.kitabi-cover h1 { font-size: clamp(4.7rem,28vw,8rem); }
	.kitabi-cover-copy { left: 1.3rem; right: 1.5rem; bottom: 8rem; width: auto; }
	.kitabi-cover-copy strong { max-width: 100%; font-size: clamp(3rem,min(15vw,11vh),5rem); }
	.kitabi-cover-width-narrow .kitabi-cover-copy strong { max-width: 7ch; }
	.kitabi-cover-width-medium .kitabi-cover-copy strong { max-width: 10ch; }
	.kitabi-cover-size-large .kitabi-cover-copy strong { font-size: clamp(3.2rem,min(17vw,12vh),5.5rem); }
	.kitabi-cover-size-xlarge .kitabi-cover-copy strong { font-size: clamp(3.5rem,min(19vw,13vh),6rem); }
	.kitabi-running-head { height: 4rem; grid-template-columns: auto 1fr; font-size: .48rem; }
	.kitabi-running-head > span:last-child { display: none; }
	.kitabi-contents > h2 { height: 7rem; font-size: clamp(2.4rem,11vw,3.8rem); }
	.kitabi-contents-grid { height: calc(100% - 11rem); display: block; }
	.kitabi-lead { height: 100%; }
	.kitabi-featured-list { display: none; }
	.kitabi-book-opener > img { object-position: 58% center; }
	.kitabi-book-title { left: 1.1rem; right: 1.1rem; bottom: 7rem; }
	.kitabi-book-title h2 { font-size: clamp(3.4rem,min(20vw,13vh),6.8rem); overflow-wrap: anywhere; }
	.kitabi-book-size-large .kitabi-book-title h2 { font-size: clamp(3.8rem,min(23vw,14.5vh),7.6rem); }
	.kitabi-book-size-xlarge .kitabi-book-title h2 { font-size: clamp(4.2rem,min(26vw,16vh),8.4rem); }
	.kitabi-book-title p { margin: .8rem 0 0; font-size: 1.25rem; }
	.kitabi-columns { height: calc(100% - 4rem); column-count: 1; font-size: clamp(.92rem,4vw,1.06rem); overflow: hidden; }
	.kitabi-controls { right: .75rem; bottom: .8rem; }
	.kitabi-page-count { grid-template-columns: 1.9rem 2rem 1.9rem; }
	.tknlj-issue-archive-header { grid-template-columns: 1fr; align-items: start; }
	.tknlj-issue-archive-header p { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
	.kitabi-rail { scroll-behavior: auto; }
	.kitabi-progress span { transition: none; }
}
