﻿/* Homepage-scoped styles: keep these rules scoped under .home-page only */
.home-page header.masthead{
	position:relative;
	overflow:hidden;
	text-align:center;
	padding-left:0;
	padding-right:0;
	width:100%;
	max-width:100%;
	margin-left:auto;
	margin-right:auto;
	box-sizing:border-box;
}

.home-page .masthead-image-wrap{
	display:flex;
	justify-content:center;
	align-items:center;
	position:relative;
	z-index:2;
}

.home-page .masthead-clock-display{
	position:absolute;
	right:0;
	top:50%;
	transform:translateY(-50%);
	z-index:4;
	pointer-events:none;
}

.home-page .edition-row,
.home-page .press-time-line,
.home-page .kicker{
	position:relative;
	z-index:2;
}

.home-page .top-nav,
.home-page .layout,
.home-page .archive-footer{
	width:100%;
	max-width:100%;
	margin-left:auto;
	margin-right:auto;
	box-sizing:border-box;
}

.home-page .page{
	overflow-x:hidden;
}

.home-page .layout{
	overflow-x:hidden;
}

/* ALL COLUMNS: content shrinks/expands to fit and centers */
.home-page .layout > .column{
	display:flex;
	flex-direction:column;
	align-items:center;
	align-self:stretch;
	height:100%;
	min-width:0;
	max-width:100%;
	box-sizing:border-box;
	overflow:hidden;
}

.home-page .layout > .column > *:not(.feature-grid){
	width:100%;
	max-width:100%;
	min-width:0;
	box-sizing:border-box;
	margin-left:auto;
	margin-right:auto;
}

.home-page .layout > .column > .feature-grid{
	width:100%;
	max-width:100%;
	box-sizing:border-box;
}

.home-page .column-title,
.home-page .column-title--east,
.home-page .column-title--west,
.home-page .column-title--grand{
	display:block;
	width:100%;
	max-width:100%;
	margin-left:0;
	margin-right:0;
	transform:none;
	box-sizing:border-box;
	overflow:hidden;
	text-align:center;
}

.home-page .layout > .column :where(h1, h2, h3, h4, p, span, a, li){
	overflow-wrap:anywhere;
}

.home-page .top-nav{
	margin-top:0;
}

.home-page .archive-stamp{
	position:absolute;
	top:.6rem;
	right:1.2rem;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	width:8.9rem;
	height:8.9rem;
	border:2px double rgba(88,33,24,.46);
	border-radius:50%;
	color:rgba(88,33,24,.52);
	background:radial-gradient(circle, rgba(88,33,24,.08) 0%, rgba(88,33,24,.015) 62%, transparent 72%);
	box-shadow:inset 0 0 0 1px rgba(88,33,24,.2);
	font-family:"TypeTypeLocal", serif;
	letter-spacing:.06em;
	text-transform:uppercase;
	transform:rotate(-11deg);
	pointer-events:none;
	z-index:1;
	opacity:.9;
}

.home-page .archive-stamp-text{
	display:block;
	line-height:1.1;
	text-align:center;
	white-space:nowrap;
}

.home-page .archive-stamp-text.top,
.home-page .archive-stamp-text.bot{
	font-size:.53rem;
}

.home-page .archive-stamp-text.mid{
	font-size:.77rem;
	font-weight:700;
	margin:.16rem 0;
	letter-spacing:.11em;
}

.home-page .marginalia-layer{
	position:absolute;
	inset:0;
	pointer-events:none;
	overflow:hidden;
	z-index:3;
}

.home-page .marginalia-note{
	position:absolute;
	font-family:"AmsterdamHandLocal", "TypeTypeLocal", serif;
	font-size:.72rem;
	line-height:1.12;
	color:rgba(26,16,10,.55);
	opacity:.7;
	letter-spacing:.01em;
	text-transform:lowercase;
	text-shadow:0 1px 0 rgba(255,255,255,.24);
	white-space:nowrap;
	user-select:none;
	max-width:11rem;
	text-overflow:ellipsis;
	overflow:hidden;
}

.home-page .fold-tooltip{
	position:absolute;
	top:1.15rem;
	left:52%;
	transform:translate(-50%, -6px);
	padding:.12rem .45rem;
	border:1px dashed rgba(52,36,24,.44);
	background:rgba(236,228,213,.88);
	color:rgba(40,27,18,.78);
	font-size:.62rem;
	letter-spacing:.08em;
	text-transform:uppercase;
	opacity:0;
	visibility:hidden;
	transition:opacity .15s ease, transform .15s ease;
	pointer-events:none;
	z-index:4;
}

.home-page .fold-tooltip.is-visible{
	opacity:1;
	visibility:visible;
	transform:translate(-50%, 0);
}

@media (max-width:900px){
	.home-page .archive-stamp{
		top:.25rem;
		right:.35rem;
		transform:rotate(-10deg) scale(.82);
	}

	.home-page .marginalia-note{
		font-size:.64rem;
	}
}

.home-page .crystal-ball-placeholder{
	margin-top:.75rem;
	border-top:1px solid rgba(73,72,66,.76);
	padding-top:.62rem;
}
.home-page .crystal-ball-placeholder > h3{
	font-size:1rem;
	margin:.1rem 0 .45rem;
	letter-spacing:.06rem;
	text-transform:uppercase;
}
.home-page .crystal-ball-blurb{
	margin:0 0 .4rem;
	font-size:.73rem;
	line-height:1.28;
	text-align:center;
	opacity:.9;
}
.home-page .crystal-ball-feed{
	display:grid;
	gap:.5rem;
}
.home-page .crystal-ball-status{
	margin:0;
	font-size:.72rem;
	letter-spacing:.05em;
	text-transform:uppercase;
	opacity:.78;
	text-align:center;
}
.home-page .crystal-ball-items{
	display:grid;
	gap:.52rem;
}
.home-page .crystal-ball-item{
	border-top:1px dashed rgba(0,0,0,.42);
	padding:.38rem .28rem 0;
	max-width:100%;
	min-width:0;
}
.home-page .crystal-ball-item:first-child{
	border-top:none;
	padding-top:0;
}
.home-page .crystal-ball-headline{
	margin:0 0 .16rem;
	font-size:.94rem;
	line-height:1.2;
	text-transform:uppercase;
	letter-spacing:.04rem;
	text-align:center;
}
.home-page .crystal-ball-label{
	display:inline-block;
	margin:0 auto .2rem;
	padding:.04rem .34rem;
	border:1px solid rgba(0,0,0,.45);
	font-size:.58rem;
	letter-spacing:.1em;
	text-transform:uppercase;
	line-height:1.1;
	opacity:.82;
}
.home-page .crystal-ball-dek{
	margin:0 0 .22rem;
	font-size:.76rem;
	line-height:1.28;
	text-align:center;
	font-style:italic;
}
.home-page .crystal-ball-body{
	margin:0;
	font-size:.78rem;
	line-height:1.3;
	text-align:center;
}
.home-page .crystal-ball-intro{
	margin:0 0 .2rem;
	font-size:.69rem;
	line-height:1.24;
	text-align:center;
	font-style:italic;
	opacity:.9;
}
.home-page .crystal-ball-orb-note{
	margin:.18rem 0 0;
	font-size:.62rem;
	line-height:1.2;
	text-align:center;
	letter-spacing:.06em;
	text-transform:uppercase;
	opacity:.78;
}
.home-page .crystal-cite{
	display:block;
	width:100%;
	max-width:100%;
	min-width:0;
	margin-top:.22rem;
	font-size:.74rem;
	line-height:1.2;
	color:rgba(0,0,0,.65);
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.home-page .crystal-cite a{
	color:inherit;
	text-decoration:underline;
	text-decoration-thickness:1px;
	text-underline-offset:1px;
	display:inline;
}
.home-page .crystal-cite .cite-source{
	font-variant:small-caps;
	letter-spacing:.02em;
}
.home-page .ransom-gateway{
	margin:.7rem 0;
	padding:.55rem;
	border:1px dashed var(--rule);
	background:var(--paper-dark);
}
.home-page .ransom-link{
	display:block;
	text-decoration:none;
	color:inherit;
	text-align:center;
	cursor:pointer;
	padding:.35rem .25rem;
}
.home-page .ransom-cutout{
	display:flex;
	justify-content:center;
	align-items:center;
	height:2.6rem;
	line-height:1;
	margin:0 auto .3rem;
	white-space:nowrap;
	overflow:hidden;
}
.home-page .ransom-letter{
	display:inline-block;
	width:.84em;
	padding:.14rem .2rem .12rem;
	margin-right:var(--kern, .02em);
	background:var(--tone, var(--paper));
	font-family:var(--font, "TypeTypeLocal"), serif;
	font-size:1.22rem;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.01em;
	border-radius:var(--radius, 2px);
	box-shadow:
		0 1px 0 rgba(255,255,255,.5) inset,
		0 1px 2px rgba(0,0,0,.2);
	transform:translateY(var(--lift, 0px)) rotate(var(--rot, 0deg));
	position:relative;
	text-align:center;
}
.home-page .ransom-letter.glue-smudge::before{
	content:"";
	position:absolute;
	left:8%;
	right:8%;
	top:48%;
	height:26%;
	background:rgba(206,206,206,.45);
	filter:blur(.4px);
	border-radius:12px;
	transform:translateY(-50%) rotate(var(--smudge-rot, 0deg));
	z-index:-1;
}
.home-page .ransom-space{
	display:inline-block;
	width:.55em;
}
.home-page .ransom-subtitle{
	display:block;
	font-size:.72rem;
	line-height:1.2;
	letter-spacing:.08em;
	text-transform:uppercase;
	font-variant:small-caps;
}
.home-page .archive-footer{
	margin-top:.6rem;
	padding-top:.2rem;
	border-top:1px solid rgba(0,0,0,.2);
}
.home-page .archive-footer-line{
	margin:.2rem 0 0;
	font-size:.62rem;
	letter-spacing:.06em;
	text-transform:uppercase;
	opacity:.76;
}
.home-page .legal-footer-line{
	margin:.6rem 0 0;
	font-size:.55rem;
	letter-spacing:.06em;
	text-transform:uppercase;
	opacity:.6;
	font-family:var(--typewriter-stack);
}
.home-page .legal-footer-line a{
	color:var(--ink);
	text-decoration:none;
}
.home-page .legal-footer-line a:hover{
	opacity:1;
	text-decoration:underline;
	text-underline-offset:2px;
}

/* Farmers Almanac weather block: styled as a clipped old newspaper notice */
.home-page .almanac{
	position:relative;
	width:100%;
	max-width:100%;
	box-sizing:border-box;
	overflow-wrap:break-word;
	word-wrap:break-word;
	padding:.58rem .62rem .62rem;
	border:2px double rgba(58,48,31,.78);
	background:
		radial-gradient(circle at 18% 12%, rgba(255,255,255,.34), transparent 43%),
		radial-gradient(circle at 84% 86%, rgba(0,0,0,.06), transparent 46%),
		repeating-linear-gradient(0deg, rgba(76,64,43,.055) 0, rgba(76,64,43,.055) 1px, transparent 1px, transparent 3px),
		linear-gradient(180deg, #e9e1d0 0%, #dfd3bb 45%, #d7c9ad 100%);
	box-shadow:
		0 1px 0 rgba(255,255,255,.35) inset,
		0 1px 4px rgba(31,22,12,.16);
	font-family:"IMFellEnglishLocal", "TypeTypeLocal", serif;
	color:#20170e;
	overflow:hidden;
}

.home-page .almanac::before,
.home-page .almanac::after{
	content:"";
	position:absolute;
	pointer-events:none;
}

.home-page .almanac::before{
	inset:3px;
	border:1px solid rgba(76,62,41,.24);
	opacity:.7;
}

.home-page .almanac::after{
	top:.28rem;
	left:50%;
	transform:translateX(-50%);
	width:80%;
	height:1px;
	background:linear-gradient(90deg, transparent, rgba(54,43,28,.45), transparent);
}

.home-page .almanac-head{
	display:grid;
	gap:.08rem;
	text-align:center;
	margin:0 0 .42rem;
	padding:0 0 .32rem;
	border-bottom:1px solid rgba(57,45,29,.45);
	position:relative;
}

.home-page .almanac-head::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:-3px;
	height:1px;
	background:rgba(255,255,255,.42);
}

.home-page .almanac-title{
	font-family:"IMFellEnglishSmallCapsLocal", "IMFellEnglishLocal", serif;
	font-size:.98rem;
	letter-spacing:.08em;
	text-transform:uppercase;
	line-height:1.1;
	text-shadow:0 1px 0 rgba(255,255,255,.36);
}

.home-page .almanac-location{
	font-size:.66rem;
	letter-spacing:.12em;
	text-transform:uppercase;
	opacity:.86;
	line-height:1.15;
}

.home-page .almanac-updated{
	font-size:.6rem;
	letter-spacing:.08em;
	text-transform:uppercase;
	opacity:.82;
	line-height:1.2;
}

.home-page .almanac-periods{
	display:grid;
	gap:.3rem;
}

.home-page .almanac-row{
	padding:.28rem .02rem .24rem;
	border-top:1px dashed rgba(73,57,37,.55);
	background:linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,0));
}

.home-page .almanac-row:first-child{
	border-top:none;
	padding-top:.12rem;
}

.home-page .almanac-main{
	display:flex;
	justify-content:space-between;
	gap:.32rem;
	align-items:baseline;
	margin-bottom:.1rem;
}

.home-page .almanac-period-name{
	font-size:.73rem;
	letter-spacing:.03em;
	text-transform:uppercase;
	font-weight:700;
	line-height:1.2;
}

.home-page .almanac-temp{
	font-family:"TypeTysLocal", "TypeTypeLocal", serif;
	font-size:.84rem;
	letter-spacing:.02em;
	font-weight:700;
	line-height:1;
	padding-left:.35rem;
	border-left:1px solid rgba(66,53,35,.45);
	white-space:nowrap;
}

.home-page .almanac-short{
	margin:0;
	font-size:.69rem;
	line-height:1.26;
	text-align:left;
	color:rgba(32,23,14,.92);
}

.home-page .almanac-wind{
	display:block;
	margin-top:.12rem;
	font-size:.58rem;
	letter-spacing:.07em;
	text-transform:uppercase;
	opacity:.84;
}

.home-page .almanac-status{
	margin:.34rem 0 0;
	padding-top:.3rem;
	border-top:1px dotted rgba(66,53,35,.44);
	font-size:.62rem;
	line-height:1.2;
	letter-spacing:.05em;
	text-transform:uppercase;
	opacity:.74;
	display:none;
}

.home-page .almanac-status.is-visible{
	display:block;
}

@media (max-width: 680px){
	.home-page .almanac{
		padding:.5rem .52rem .56rem;
	}

	.home-page .almanac-title{
		font-size:.9rem;
	}

	.home-page .almanac-main{
		gap:.22rem;
	}

	.home-page .almanac-temp{
		font-size:.78rem;
	}

	.home-page .almanac-short{
		font-size:.66rem;
	}
}

/* Feature grid - compact 2x2 card layout */
.home-page .feature-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.5rem;
	margin: 0.8rem 0;
}

.home-page .feature-card {
	display: block;
	padding: 0.55rem 0.65rem;
	border: 1px solid rgba(0,0,0,0.28);
	background: linear-gradient(165deg, rgba(250,248,242,0.92), rgba(235,230,218,0.88));
	text-decoration: none;
	color: inherit;
	transition: border-color 120ms ease, background 120ms ease;
}

.home-page .feature-card:hover {
	border-color: rgba(0,0,0,0.5);
	background: linear-gradient(165deg, rgba(255,253,248,0.96), rgba(242,238,228,0.92));
}

.home-page .feature-card h3 {
	margin: 0;
	font-family: "IMFellEnglishLocal", Georgia, serif;
	font-size: 0.82rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.2;
}

.home-page .feature-card p {
	margin: 0.2rem 0 0;
	font-family: var(--typewriter-stack);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.65;
	line-height: 1.2;
}

/* Column floor - visual baseline for all three columns */
.home-page .layout {
	position: relative;
	padding-bottom: 1.5rem;
}

.home-page .layout::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, 
		transparent 0%, 
		rgba(0,0,0,0.12) 5%, 
		rgba(0,0,0,0.35) 15%, 
		rgba(0,0,0,0.35) 85%, 
		rgba(0,0,0,0.12) 95%, 
		transparent 100%
	);
}

@media (max-width: 600px) {
	.home-page .feature-grid {
		grid-template-columns: 1fr;
	}
}

/* Randomized visual treatment for homepage content pieces */
.home-page .layout .randomized-piece{
	border:var(--random-piece-border, 1px solid var(--rule));
	border-radius:var(--random-piece-radius, 0);
	box-shadow:var(--random-piece-shadow, none);
	font-family:var(--random-piece-font, inherit);
	overflow:hidden;
}

.home-page .layout .randomized-piece :where(h2, h3, h4, p, a, li, span, .filler-kicker, .filler-source){
	font-family:inherit;
}

/* ── Ad slots ──────────────────────────────────────────────────────────────── */
.home-page .ad-slot{
	width:300px;
	max-width:100%;
	height:250px;
	margin:.75rem auto;
	position:relative;
}
/* Mock ads — removed after AdSense approval */
.home-page .mock-ad{
	width:100%;
	height:100%;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	border:1.5px solid rgba(0,0,0,.55);
	background:linear-gradient(180deg,#ededed 0%,var(--paper) 62%,var(--paper-dark) 100%);
	padding:.6rem .8rem;
	box-sizing:border-box;
	position:relative;
	text-align:center;
}
.home-page .mock-ad-rule-top,
.home-page .mock-ad-rule-bot{
	width:100%;
	height:3px;
	background:
		linear-gradient(var(--ink),var(--ink)) top/100% 1px no-repeat,
		linear-gradient(var(--ink),var(--ink)) bottom/100% 1px no-repeat;
	border-top:1px solid var(--ink);
	border-bottom:1px solid var(--ink);
	margin:.15rem 0;
	flex-shrink:0;
}
.home-page .mock-ad-overline{
	font-family:var(--typewriter-stack);
	font-size:.52rem;
	text-transform:uppercase;
	letter-spacing:.1em;
	color:rgba(0,0,0,.55);
	margin:.2rem 0 .1rem;
}
.home-page .mock-ad-headline{
	font-family:"IMFellEnglishSmallCapsLocal",serif;
	font-size:1.05rem;
	font-weight:400;
	line-height:1.2;
	margin:.15rem 0;
	color:var(--ink);
}
.home-page .mock-ad-divider{
	font-size:.7rem;
	color:rgba(0,0,0,.4);
	margin:.15rem 0;
	letter-spacing:.3em;
}
.home-page .mock-ad-body{
	font-family:"IMFellEnglishLocal",serif;
	font-size:.68rem;
	line-height:1.5;
	color:var(--ink);
	margin:.15rem 0;
	font-style:italic;
}
.home-page .mock-ad-sub{
	font-family:var(--typewriter-stack);
	font-size:.52rem;
	text-transform:uppercase;
	letter-spacing:.08em;
	color:rgba(0,0,0,.5);
	margin:.15rem 0 .2rem;
}
.home-page .mock-ad-badge{
	position:absolute;
	bottom:.25rem;
	right:.35rem;
	font-family:var(--typewriter-stack);
	font-size:.46rem;
	text-transform:uppercase;
	letter-spacing:.06em;
	color:rgba(0,0,0,.28);
}



/* == Letter from the Antiquarian == */
.home-page .antiquarian-letter{
	margin-top:.75rem;
	border-top:1px solid rgba(73,72,66,.76);
	padding-top:.62rem;
}
.home-page .antiquarian-kicker{
	font-family:var(--typewriter-stack);
	font-size:.58rem;
	text-transform:uppercase;
	letter-spacing:.12em;
	text-align:center;
	border-bottom:1px solid rgba(0,0,0,.28);
	padding-bottom:.3rem;
	margin:0 0 .6rem;
	opacity:.8;
}
.home-page .antiquarian-body p{
	font-family:"IMFellEnglishLocal",serif;
	font-size:.78rem;
	line-height:1.44;
	font-style:italic;
	text-align:left;
	margin:0 0 .52rem;
}
.home-page .antiquarian-body p:last-child{
	margin-bottom:0;
}
.home-page .antiquarian-sig{
	font-family:var(--typewriter-stack);
	font-size:.62rem;
	font-variant:small-caps;
	letter-spacing:.06em;
	text-align:right;
	margin:.58rem 0 0;
	opacity:.78;
}