/*
Theme Name: Tarot Masterz
Theme URI: https://tarotmasterz.com
Author: Tarot Masterz
Author URI: https://tarotmasterz.com
Description: Tarot Masterz is a mystical, SEO-optimized WordPress theme crafted for the Tarot Masterz brand and built to pair seamlessly with the Etsy SEO Orchestrator plugin. A "Celestial Arcana" aesthetic — deep indigo night, antique-gold foil accents, and a starlit atmosphere — with fast, accessible, schema-friendly markup. Upload, activate, and run.
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tarotmasterz
Tags: blog, e-commerce, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, full-width-template, block-styles, wide-blocks, dark-style
*/

/* ============================================================
   Design tokens — Celestial Arcana
   ============================================================ */
:root {
	--tm-bg:        #0e0a1f;
	--tm-bg-2:      #130c28;
	--tm-panel:     #1b1335;
	--tm-panel-2:   #221842;
	--tm-ink:       #ECE7FA;
	--tm-muted:     #B9B2D6;
	--tm-faint:     #8E87AE;
	--tm-gold:      #D4AF37;
	--tm-gold-2:    #E8C66A;
	--tm-violet:    #7C4DFF;
	--tm-violet-2:  #9B6DFF;
	--tm-line:      rgba(212,175,55,.22);
	--tm-line-soft: rgba(236,231,250,.10);
	--tm-shadow:    0 20px 50px rgba(0,0,0,.45);
	--tm-glow:      0 0 0 1px rgba(212,175,55,.35), 0 18px 40px rgba(124,77,255,.18);

	--tm-display: 'Cinzel', 'Trajan Pro', Georgia, serif;
	--tm-body:    'Cormorant Garamond', 'Iowan Old Style', Georgia, 'Times New Roman', serif;

	--tm-content: 760px;
	--tm-wide:    1180px;
	--tm-radius:  14px;
	--tm-radius-lg: 20px;
}

/* ============================================================
   Reset & base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--tm-body);
	font-size: 1.25rem;
	line-height: 1.75;
	color: var(--tm-ink);
	background-color: var(--tm-bg);
	background-image:
		radial-gradient(1200px 600px at 50% -10%, rgba(124,77,255,.18), transparent 60%),
		radial-gradient(900px 500px at 90% 10%, rgba(212,175,55,.06), transparent 55%),
		radial-gradient(2px 2px at 20% 30%, rgba(236,231,250,.35), transparent 40%),
		radial-gradient(1.5px 1.5px at 70% 20%, rgba(236,231,250,.25), transparent 40%),
		radial-gradient(1.5px 1.5px at 40% 70%, rgba(232,198,106,.30), transparent 40%),
		radial-gradient(2px 2px at 85% 60%, rgba(236,231,250,.22), transparent 40%),
		radial-gradient(1.5px 1.5px at 10% 80%, rgba(236,231,250,.20), transparent 40%);
	background-attachment: fixed, fixed, fixed, fixed, fixed, fixed, fixed;
	background-repeat: no-repeat, no-repeat, repeat, repeat, repeat, repeat, repeat;
	background-size: auto, auto, 600px 600px, 500px 500px, 700px 700px, 650px 650px, 800px 800px;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--tm-gold-2); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--tm-gold); }
::selection { background: rgba(212,175,55,.30); color: #fff; }

/* Headings */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--tm-display);
	color: var(--tm-ink);
	line-height: 1.18;
	font-weight: 600;
	letter-spacing: .01em;
	margin: 0 0 .6em;
}
h1 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); letter-spacing: .03em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
h3 { font-size: clamp(1.3rem, 2.2vw, 1.7rem); }
h4 { font-size: 1.3rem; }
p { margin: 0 0 1.25em; }

blockquote {
	margin: 1.8em 0;
	padding: .4em 0 .4em 1.4em;
	border-left: 3px solid var(--tm-gold);
	color: var(--tm-muted);
	font-style: italic;
	font-size: 1.35rem;
}
code, pre, kbd { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: .9em; }
pre { background: #0a0717; border: 1px solid var(--tm-line-soft); border-radius: var(--tm-radius); padding: 1.1rem 1.25rem; overflow:auto; }
:not(pre) > code { background: rgba(236,231,250,.08); padding: .12em .4em; border-radius: 6px; color: var(--tm-gold-2); }
hr { border: 0; height: 1px; background: var(--tm-line); margin: 2.5rem 0; }

/* Scrollbar */
* { scrollbar-color: var(--tm-violet) transparent; scrollbar-width: thin; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--tm-violet), var(--tm-gold)); border-radius: 10px; }
::-webkit-scrollbar-track { background: var(--tm-bg-2); }

/* Accessibility */
.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100000;
	background: var(--tm-gold); color: #1b1335; padding: .7rem 1.2rem; border-radius: 0 0 10px 0; font-family: var(--tm-display);
}
.skip-link:focus { left: 0; }
:focus-visible { outline: 2px solid var(--tm-gold-2); outline-offset: 3px; }

/* ============================================================
   Layout
   ============================================================ */
.tm-container { width: 100%; max-width: var(--tm-wide); margin: 0 auto; padding: 0 1.5rem; }
.tm-narrow { max-width: var(--tm-content); }
.site-main { padding: 3rem 0 4rem; min-height: 50vh; }
.tm-home-section { padding: 3.5rem 0; }
.tm-home-section + .tm-home-section { border-top: 1px solid var(--tm-line-soft); }
.tm-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 3rem; align-items: start; }
.tm-layout.no-sidebar { grid-template-columns: minmax(0,1fr); }
@media (max-width: 980px) { .tm-layout { grid-template-columns: 1fr; gap: 2.5rem; } }

/* Ornamental section heading */
.tm-section-head { text-align: center; margin: 0 auto 2.4rem; max-width: 720px; }
.tm-eyebrow {
	font-family: var(--tm-display); text-transform: uppercase; letter-spacing: .35em;
	font-size: .78rem; color: var(--tm-gold); display: inline-block; margin-bottom: .8rem;
}
.tm-ornament { display:flex; align-items:center; justify-content:center; gap:.9rem; color: var(--tm-gold); margin: 1rem auto 0; }
.tm-ornament::before, .tm-ornament::after { content:""; height:1px; width:64px; background: linear-gradient(90deg, transparent, var(--tm-gold)); }
.tm-ornament::after { background: linear-gradient(270deg, transparent, var(--tm-gold)); }
.tm-ornament span { font-size: 1rem; }

/* ============================================================
   Site header
   ============================================================ */
.site-header {
	position: sticky; top: 0; z-index: 999;
	background: rgba(14,10,31,.72);
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	border-bottom: 1px solid var(--tm-line);
	transition: background .3s ease, box-shadow .3s ease;
}
.site-header.is-scrolled { background: rgba(11,8,25,.92); box-shadow: 0 10px 30px rgba(0,0,0,.4); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 84px; }

.site-branding { display: flex; align-items: center; gap: .85rem; }
.custom-logo-link { display:block; line-height:0; }
.custom-logo { border-radius: 8px; }
.site-title {
	font-family: var(--tm-display); font-size: 1.55rem; font-weight: 700; letter-spacing: .14em;
	text-transform: uppercase; margin: 0; line-height: 1;
}
.site-title a { color: var(--tm-ink); }
.site-title a:hover { color: var(--tm-gold-2); }
.site-title .tm-star { color: var(--tm-gold); margin-right: .15em; }
.site-description { margin: .3rem 0 0; font-size: .95rem; color: var(--tm-faint); letter-spacing: .04em; font-style: italic; }

/* Primary nav */
.main-navigation { display:flex; align-items:center; }
.main-navigation ul { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap: 2rem; }
.main-navigation li { position: relative; }
.main-navigation a {
	font-family: var(--tm-display); font-size: .82rem; letter-spacing: .18em; text-transform: uppercase;
	color: var(--tm-muted); padding: .4rem 0; display:inline-block; position: relative;
}
.main-navigation a:hover, .main-navigation .current-menu-item > a { color: var(--tm-ink); }
.main-navigation a::after {
	content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px;
	background: linear-gradient(90deg, var(--tm-gold), var(--tm-gold-2)); transition: right .28s ease;
}
.main-navigation a:hover::after, .main-navigation .current-menu-item > a::after { right: 0; }

/* Dropdowns */
.main-navigation ul ul {
	position: absolute; top: 100%; left: -1rem; display: block;
	background: var(--tm-panel); border: 1px solid var(--tm-line); border-radius: 12px;
	min-width: 220px; padding: .6rem; gap: 0; flex-direction: column; align-items: stretch;
	box-shadow: var(--tm-shadow); opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .22s ease; z-index: 50;
}
.main-navigation li:hover > ul, .main-navigation li:focus-within > ul { opacity:1; visibility:visible; transform: translateY(0); }
.main-navigation ul ul a { display:block; padding: .55rem .8rem; letter-spacing: .1em; }
.main-navigation ul ul a::after { display:none; }
.main-navigation ul ul a:hover { background: rgba(236,231,250,.05); border-radius: 8px; }

/* Menu toggle (mobile) */
.menu-toggle {
	display: none; background: transparent; border: 1px solid var(--tm-line); color: var(--tm-ink);
	border-radius: 10px; padding: .55rem .7rem; cursor: pointer; align-items: center; gap: .5rem;
	font-family: var(--tm-display); letter-spacing:.12em; text-transform:uppercase; font-size:.72rem;
}
.menu-toggle .bars { display:inline-block; width:20px; height:14px; position:relative; }
.menu-toggle .bars span { position:absolute; left:0; height:2px; width:100%; background: var(--tm-gold); transition: .25s; }
.menu-toggle .bars span:nth-child(1){ top:0; } .menu-toggle .bars span:nth-child(2){ top:6px; } .menu-toggle .bars span:nth-child(3){ top:12px; }
.menu-toggle[aria-expanded="true"] .bars span:nth-child(1){ top:6px; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .bars span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] .bars span:nth-child(3){ top:6px; transform: rotate(-45deg); }

@media (max-width: 860px) {
	.menu-toggle { display: inline-flex; }
	.main-navigation { position: absolute; top: 84px; left: 0; right: 0;
		background: var(--tm-bg-2); border-bottom: 1px solid var(--tm-line);
		max-height: 0; overflow: hidden; transition: max-height .35s ease; }
	.main-navigation.toggled-on { max-height: 80vh; overflow:auto; }
	.main-navigation ul { flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 1.5rem 1.5rem; }
	.main-navigation li { border-bottom: 1px solid var(--tm-line-soft); }
	.main-navigation a { padding: .95rem 0; font-size: .95rem; }
	.main-navigation a::after { display:none; }
	.main-navigation ul ul { position: static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; background: transparent; padding: 0 0 .4rem 1rem; min-width:0; }
}

/* ============================================================
   Hero (front page)
   ============================================================ */
.tm-hero { position: relative; text-align: center; padding: 5.5rem 0 4.5rem; overflow: hidden; }
.tm-hero__glyph { font-size: 2.4rem; color: var(--tm-gold); letter-spacing: .6rem; opacity: 0; animation: tm-rise .8s ease forwards .05s; }
.tm-hero__title { font-size: clamp(2.6rem, 6.5vw, 5rem); letter-spacing: .06em; margin: .4rem 0 .3rem; text-transform: uppercase;
	background: linear-gradient(180deg, #fff 0%, var(--tm-gold-2) 60%, var(--tm-gold) 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
	opacity: 0; animation: tm-rise .9s ease forwards .15s; }
.tm-hero__tagline { font-size: clamp(1.2rem, 2.4vw, 1.6rem); color: var(--tm-muted); font-style: italic; max-width: 640px; margin: .4rem auto 2rem;
	opacity: 0; animation: tm-rise .9s ease forwards .3s; }
.tm-hero__actions { display:flex; gap: 1rem; justify-content:center; flex-wrap:wrap; opacity:0; animation: tm-rise .9s ease forwards .45s; }
.tm-hero__cards { display:flex; justify-content:center; gap: -10px; margin-top: 3rem; }

/* ============================================================
   Buttons
   ============================================================ */
.tm-btn {
	display: inline-flex; align-items: center; gap: .55rem;
	font-family: var(--tm-display); text-transform: uppercase; letter-spacing: .14em; font-size: .82rem;
	padding: .95rem 1.7rem; border-radius: 999px; cursor: pointer; border: 1px solid transparent; transition: all .25s ease;
}
.tm-btn-gold { background: linear-gradient(135deg, var(--tm-gold-2), var(--tm-gold)); color: #1b1335; box-shadow: 0 10px 26px rgba(212,175,55,.28); }
.tm-btn-gold:hover { color:#100b22; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(212,175,55,.42); }
.tm-btn-ghost { background: transparent; color: var(--tm-ink); border-color: var(--tm-line); }
.tm-btn-ghost:hover { border-color: var(--tm-gold); color: var(--tm-gold-2); transform: translateY(-2px); }

/* ============================================================
   Post cards / grids
   ============================================================ */
.tm-posts { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.tm-card {
	position: relative; background: linear-gradient(180deg, var(--tm-panel), var(--tm-bg-2));
	border: 1px solid var(--tm-line-soft); border-radius: var(--tm-radius-lg); overflow: hidden;
	display: flex; flex-direction: column; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.tm-card:hover { transform: translateY(-5px); border-color: var(--tm-line); box-shadow: var(--tm-glow); }
.tm-card__thumb { display:block; aspect-ratio: 16/10; overflow:hidden; background: #0a0717; }
.tm-card__thumb img { width:100%; height:100%; object-fit: cover; transition: transform .6s ease; }
.tm-card:hover .tm-card__thumb img { transform: scale(1.06); }
.tm-card__thumb--ph { display:flex; align-items:center; justify-content:center; color: var(--tm-gold); font-size: 2.4rem; height:100%; }
.tm-card__body { padding: 1.4rem 1.5rem 1.6rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.tm-card__cat { font-family: var(--tm-display); text-transform:uppercase; letter-spacing:.2em; font-size:.68rem; color: var(--tm-gold); }
.tm-card__title { font-size: 1.45rem; margin: 0; line-height: 1.25; }
.tm-card__title a { color: var(--tm-ink); }
.tm-card__title a:hover { color: var(--tm-gold-2); }
.tm-card__excerpt { color: var(--tm-muted); font-size: 1.08rem; margin: 0; flex:1; }
.tm-card__more { font-family: var(--tm-display); text-transform:uppercase; letter-spacing:.14em; font-size:.74rem; color: var(--tm-gold-2); margin-top:.4rem; }
.tm-card__more:hover { color: var(--tm-gold); }

/* ============================================================
   Single / page article
   ============================================================ */
.tm-article { background: linear-gradient(180deg, rgba(27,19,53,.65), rgba(19,12,40,.4)); border: 1px solid var(--tm-line-soft);
	border-radius: var(--tm-radius-lg); padding: clamp(1.6rem, 4vw, 3.2rem); }
.tm-article__header { margin-bottom: 1.8rem; }
.entry-title { margin-bottom: .5rem; }
.tm-article .entry-content { font-size: 1.28rem; }
.tm-article .entry-content > p:first-of-type::first-letter {
	font-family: var(--tm-display); float: left; font-size: 4.2rem; line-height: .82; padding: .08em .14em 0 0; color: var(--tm-gold);
}
.entry-content h2, .entry-content h3 { margin-top: 1.8em; }
.entry-content a { text-decoration: underline; text-decoration-color: var(--tm-line); text-underline-offset: 3px; }
.entry-content a:hover { text-decoration-color: var(--tm-gold); }
.entry-content ul, .entry-content ol { padding-left: 1.4em; margin: 0 0 1.4em; }
.entry-content li { margin: .4em 0; }
.entry-content img, .wp-block-image img { border-radius: var(--tm-radius); }
.post-thumbnail { margin: 0 0 2rem; border-radius: var(--tm-radius-lg); overflow: hidden; box-shadow: var(--tm-shadow); }
.post-thumbnail img { width:100%; }

/* Featured/post meta */
.tm-meta { display:flex; flex-wrap:wrap; align-items:center; gap: .4rem 1.1rem; color: var(--tm-faint); font-size: .98rem; letter-spacing: .02em; }
.tm-meta .sep { color: var(--tm-line); }
.tm-meta a { color: var(--tm-muted); }
.tm-meta a:hover { color: var(--tm-gold-2); }
.tm-meta .tm-meta__icon { color: var(--tm-gold); }

/* Tags & footer */
.entry-footer { margin-top: 2.2rem; padding-top: 1.4rem; border-top: 1px solid var(--tm-line-soft); display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.tag-links a, .cat-links a {
	display:inline-block; font-family: var(--tm-display); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
	padding:.35rem .8rem; border:1px solid var(--tm-line); border-radius:999px; color: var(--tm-muted); margin:.2rem .35rem .2rem 0;
}
.tag-links a:hover, .cat-links a:hover { border-color: var(--tm-gold); color: var(--tm-gold-2); }

/* Breadcrumbs */
.tm-breadcrumbs { font-size: .9rem; color: var(--tm-faint); margin-bottom: 1.4rem; letter-spacing: .03em; }
.tm-breadcrumbs a { color: var(--tm-muted); }
.tm-breadcrumbs a:hover { color: var(--tm-gold-2); }
.tm-breadcrumbs .sep { margin: 0 .55rem; color: var(--tm-line); }

/* Archive header */
.tm-archive-header { text-align:center; margin-bottom: 3rem; }
.tm-archive-header .archive-title { margin: 0; }
.tm-archive-header .archive-description { color: var(--tm-muted); max-width: 640px; margin: 1rem auto 0; font-size: 1.15rem; }

/* Pagination */
.tm-pagination { margin-top: 3rem; }
.tm-pagination .nav-links { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; }
.tm-pagination .page-numbers {
	font-family: var(--tm-display); letter-spacing:.08em; min-width: 44px; text-align:center;
	padding:.6rem .9rem; border:1px solid var(--tm-line-soft); border-radius:10px; color: var(--tm-muted);
}
.tm-pagination .page-numbers:hover { border-color: var(--tm-gold); color: var(--tm-gold-2); }
.tm-pagination .page-numbers.current { background: linear-gradient(135deg, var(--tm-violet), var(--tm-gold)); color:#fff; border-color: transparent; }
.post-navigation { margin-top: 3rem; display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.post-navigation a { display:block; padding:1.2rem 1.4rem; border:1px solid var(--tm-line-soft); border-radius: var(--tm-radius); }
.post-navigation a:hover { border-color: var(--tm-line); box-shadow: var(--tm-glow); }
.post-navigation .nav-subtitle { font-family: var(--tm-display); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color: var(--tm-gold); display:block; margin-bottom:.4rem; }
.post-navigation .nav-title { color: var(--tm-ink); font-size:1.15rem; }
.post-navigation .nav-next { text-align:right; }
@media (max-width:680px){ .post-navigation, .tm-hero__cards { grid-template-columns:1fr; } }

/* ============================================================
   Sidebar / widgets
   ============================================================ */
.widget-area .widget { background: linear-gradient(180deg, var(--tm-panel), var(--tm-bg-2)); border:1px solid var(--tm-line-soft);
	border-radius: var(--tm-radius-lg); padding: 1.5rem 1.6rem; margin-bottom: 1.6rem; }
.widget-title { font-size: 1.05rem; letter-spacing:.14em; text-transform:uppercase; color: var(--tm-gold-2);
	margin: 0 0 1.1rem; padding-bottom:.7rem; border-bottom:1px solid var(--tm-line); }
.widget ul { list-style:none; margin:0; padding:0; }
.widget ul li { padding: .5rem 0; border-bottom:1px dashed var(--tm-line-soft); }
.widget ul li:last-child { border-bottom:0; }
.widget a { color: var(--tm-muted); }
.widget a:hover { color: var(--tm-gold-2); }

/* Search form */
.search-form { display:flex; gap:.5rem; }
.search-field, input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="password"], textarea, select {
	width:100%; background: rgba(10,7,23,.6); border:1px solid var(--tm-line-soft); color: var(--tm-ink);
	border-radius: 10px; padding: .8rem 1rem; font-family: var(--tm-body); font-size:1.05rem;
}
input:focus, textarea:focus, select:focus { outline:none; border-color: var(--tm-gold); box-shadow: 0 0 0 3px rgba(212,175,55,.18); }
.search-submit, button, input[type="submit"] {
	font-family: var(--tm-display); text-transform:uppercase; letter-spacing:.12em; font-size:.78rem;
	background: linear-gradient(135deg, var(--tm-gold-2), var(--tm-gold)); color:#1b1335; border:0; border-radius:10px; padding:.8rem 1.3rem; cursor:pointer; white-space:nowrap;
}
.search-submit:hover, button:hover, input[type="submit"]:hover { filter: brightness(1.05); }

/* ============================================================
   Footer
   ============================================================ */
.site-footer { border-top: 1px solid var(--tm-line); background: linear-gradient(180deg, transparent, rgba(10,7,23,.6)); margin-top: 3rem; }
.site-footer__top { display:grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 2.5rem; padding: 3.5rem 0 2.5rem; }
@media (max-width: 860px){ .site-footer__top { grid-template-columns: 1fr 1fr; gap: 2rem; } }
@media (max-width: 520px){ .site-footer__top { grid-template-columns: 1fr; } }
.footer-brand .site-title { font-size: 1.3rem; }
.footer-brand p { color: var(--tm-faint); font-size:1.02rem; margin-top:1rem; }
.site-footer__bottom { border-top:1px solid var(--tm-line-soft); padding: 1.4rem 0 2rem; text-align:center; color: var(--tm-faint); font-size:.92rem; letter-spacing:.03em; }
.site-footer__bottom .tm-star { color: var(--tm-gold); }

/* ============================================================
   Comments
   ============================================================ */
.comments-area { margin-top: 3rem; }
.comment-list { list-style:none; margin:0; padding:0; }
.comment-list .comment-body { background: rgba(27,19,53,.5); border:1px solid var(--tm-line-soft); border-radius: var(--tm-radius); padding:1.2rem 1.4rem; margin-bottom:1.2rem; }
.comment-list .children { list-style:none; margin:0 0 0 1.5rem; padding:0; }
.comment-author .fn { font-family: var(--tm-display); color: var(--tm-ink); }
.comment-metadata a { color: var(--tm-faint); font-size:.85rem; }
.comment-respond { background: linear-gradient(180deg, var(--tm-panel), var(--tm-bg-2)); border:1px solid var(--tm-line-soft); border-radius: var(--tm-radius-lg); padding:1.8rem; margin-top:1.5rem; }
.comment-form p { margin-bottom: 1rem; }

/* ============================================================
   404 / no results
   ============================================================ */
.tm-404 { text-align:center; padding: 4rem 0; }
.tm-404 .tm-404__code { font-family: var(--tm-display); font-size: clamp(5rem, 14vw, 9rem); color: var(--tm-gold);
	background: linear-gradient(180deg,#fff,var(--tm-gold)); -webkit-background-clip:text; background-clip:text; color:transparent; letter-spacing:.1em; }
.tm-no-results { background: linear-gradient(180deg, var(--tm-panel), var(--tm-bg-2)); border:1px solid var(--tm-line-soft); border-radius: var(--tm-radius-lg); padding:2.5rem; text-align:center; }

/* ============================================================
   WordPress core / block classes
   ============================================================ */
.alignleft { float:left; margin: .4rem 1.6rem 1.2rem 0; }
.alignright { float:right; margin: .4rem 0 1.2rem 1.6rem; }
.aligncenter { display:block; margin-left:auto; margin-right:auto; }
.wp-caption, figure { margin: 1.6rem 0; }
.wp-caption-text, .wp-element-caption { font-size:.92rem; color: var(--tm-faint); text-align:center; margin-top:.6rem; font-style:italic; }
.sticky .tm-card { border-color: var(--tm-gold); }
.bypostauthor > .comment-body { box-shadow: inset 3px 0 0 var(--tm-gold); }
.wp-block-button__link { background: linear-gradient(135deg,var(--tm-gold-2),var(--tm-gold)); color:#1b1335; border-radius:999px; }
.wp-block-quote, .wp-block-pullquote { border-left:3px solid var(--tm-gold); }
.entry-content .alignwide { width: min(var(--tm-wide), 100vw - 3rem); margin-left: 50%; transform: translateX(-50%); }
.entry-content .alignfull { width: 100vw; margin-left: 50%; transform: translateX(-50%); }

/* ============================================================
   Author bio · Related · Before-footer
   ============================================================ */
.tm-author-bio {
	display: flex; gap: 1.4rem; align-items: flex-start;
	background: linear-gradient(180deg, var(--tm-panel), var(--tm-bg-2));
	border: 1px solid var(--tm-line-soft); border-radius: var(--tm-radius-lg);
	padding: 1.6rem 1.8rem; margin: 2.2rem 0;
}
.tm-author-bio__avatar img { border-radius: 50%; border: 2px solid var(--tm-line); }
.tm-author-bio__name { margin: .2rem 0 .5rem; font-size: 1.3rem; }
.tm-author-bio__body p { color: var(--tm-muted); margin: 0 0 .6rem; }
@media (max-width: 560px) { .tm-author-bio { flex-direction: column; } }

.tm-related { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--tm-line-soft); }
.tm-related .tm-section-head { margin-bottom: 1.8rem; }

.tm-before-footer {
	margin-top: 4rem; padding: 3rem 0;
	background:
		radial-gradient(600px 200px at 50% 0%, rgba(212,175,55,.10), transparent 60%),
		linear-gradient(180deg, #1a1136, #120b29);
	border-top: 1px solid var(--tm-line); border-bottom: 1px solid var(--tm-line); text-align: center;
}
.tm-before-footer .widget { background: transparent; border: 0; padding: 0; margin: 0; }
.tm-before-footer .widget-title { border: 0; color: var(--tm-gold-2); }

/* ============================================================
   Motion
   ============================================================ */
@keyframes tm-rise { from { opacity:0; transform: translateY(18px); } to { opacity:1; transform: translateY(0); } }
.tm-reveal { opacity: 0; animation: tm-rise .7s ease forwards; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.tm-hero__glyph, .tm-hero__title, .tm-hero__tagline, .tm-hero__actions, .tm-reveal { opacity: 1 !important; }
}
