/* =====================================================================
   Red Mill Haunted Village Pro — theme.css
   Cinematic haunted-village design system.
   ===================================================================== */

:root {
	--rmhv-black:      #07060a;
	--rmhv-night:      #0d0b12;
	--rmhv-night-2:    #14111c;
	--rmhv-night-3:    #1c1828;
	--rmhv-blood:      #a8141d;
	--rmhv-blood-2:    #6e0c14;
	--rmhv-wood:       #5a3a25;
	--rmhv-wood-2:     #3a2618;
	--rmhv-fog:        #b8c2cf;
	--rmhv-amber:      #f0b65a;
	--rmhv-amber-2:    #e29638;
	--rmhv-moon:       #aab9d3;
	--rmhv-moon-2:     #6f8095;
	--rmhv-bone:       #efe6d4;
	--rmhv-parchment:  #d6c79e;
	--rmhv-metal:      #5e6a73;
	--rmhv-line:       rgba(232,219,189,.12);
	--rmhv-line-2:     rgba(232,219,189,.06);
	--rmhv-text:       #ece5d2;
	--rmhv-muted:      #9aa0a7;
	--rmhv-glass:      rgba(20,17,28,.55);
	--rmhv-glass-2:    rgba(20,17,28,.78);
	--rmhv-shadow:     0 30px 60px -30px rgba(0,0,0,.9), 0 8px 20px -10px rgba(0,0,0,.6);
	--rmhv-radius:     14px;
	--rmhv-radius-sm:  10px;
	--rmhv-radius-lg:  20px;
	--rmhv-font-body:  "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--rmhv-font-head:  "Fraunces", "Cormorant Garamond", "Playfair Display", Georgia, serif;
	--rmhv-font-mono:  "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--rmhv-black); color: var(--rmhv-text); font-family: var(--rmhv-font-body); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--rmhv-amber); text-decoration: none; }
a:hover { color: var(--rmhv-bone); }
button { font-family: inherit; cursor: pointer; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); height: 1px; width: 1px; overflow: hidden; }
.rmhv-skip { position: absolute; left: -9999px; }
.rmhv-skip:focus { left: 12px; top: 12px; background: var(--rmhv-amber); color: #000; padding: 8px 14px; border-radius: 8px; z-index: 9999; }

/* Background atmosphere */
body.rmhv-theme {
	background:
		radial-gradient(ellipse at top, rgba(168, 20, 29, .12), transparent 60%),
		radial-gradient(ellipse at 80% 30%, rgba(110, 120, 150, .08), transparent 60%),
		linear-gradient(180deg, #07060a 0%, #0a080e 100%);
	background-attachment: fixed;
}

/* =================== HEADER =================== */
.rmhv-site-header { position: sticky; top: 0; z-index: 100; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.rmhv-bar { background: linear-gradient(90deg, var(--rmhv-blood-2), var(--rmhv-blood), var(--rmhv-blood-2)); color: #fff5e3; font-size: 13px; }
.rmhv-bar-inner { max-width: 1240px; margin: 0 auto; padding: 8px 20px; display: flex; align-items: center; gap: 10px; }
.rmhv-bar-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rmhv-amber); box-shadow: 0 0 14px var(--rmhv-amber); animation: rmhvPulse 2.2s infinite ease-in-out; }
@keyframes rmhvPulse { 0%,100% { opacity: .55; } 50% { opacity: 1; } }
.rmhv-bar-text { line-height: 1.4; }

.rmhv-nav { background: rgba(7, 6, 10, 0.85); border-bottom: 1px solid var(--rmhv-line); }
.rmhv-nav-inner { max-width: 1240px; margin: 0 auto; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.rmhv-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--rmhv-bone); }
.rmhv-brand-mark { color: var(--rmhv-blood); display: inline-flex; }
.rmhv-brand-text { display: inline-flex; flex-direction: column; line-height: 1; font-family: var(--rmhv-font-head); }
.rmhv-brand-line1 { font-size: 11px; letter-spacing: .25em; text-transform: uppercase; color: var(--rmhv-parchment); }
.rmhv-brand-line2 { font-size: 20px; font-weight: 700; }

.rmhv-primary-nav .rmhv-menu { list-style: none; display: flex; gap: 22px; margin: 0; padding: 0; }
.rmhv-primary-nav .rmhv-menu a { color: var(--rmhv-text); font-size: 14px; font-weight: 500; letter-spacing: .03em; padding: 6px 2px; border-bottom: 1px solid transparent; transition: border-color .15s ease, color .15s ease; }
.rmhv-primary-nav .rmhv-menu a:hover { color: var(--rmhv-amber); border-color: var(--rmhv-amber); }

.rmhv-burger { display: none; background: transparent; border: 1px solid var(--rmhv-line); width: 42px; height: 42px; border-radius: 10px; padding: 0; align-items: center; justify-content: center; flex-direction: column; gap: 4px; }
.rmhv-burger span { width: 18px; height: 2px; background: var(--rmhv-bone); display: block; }
.rmhv-mobile-menu { display: none; padding: 16px 20px 24px; border-top: 1px solid var(--rmhv-line); background: var(--rmhv-night); }
.rmhv-mobile-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.rmhv-mobile-list a { color: var(--rmhv-text); font-size: 16px; }
@media (max-width: 900px) {
	.rmhv-primary-nav { display: none; }
	.rmhv-burger { display: inline-flex; }
	.rmhv-mobile-menu[aria-hidden="false"], .rmhv-mobile-menu:not([hidden]) { display: block; }
}

/* =================== SECTIONS =================== */
.rmhv-main { min-height: 50vh; }
.rmhv-sec { position: relative; padding: 96px 20px; }
.rmhv-inner { max-width: 1240px; margin: 0 auto; }
.rmhv-narrow { max-width: 820px; margin: 0 auto; }
.rmhv-sec-head { text-align: center; margin: 0 auto 48px; max-width: 760px; }
.rmhv-sec-title { font-family: var(--rmhv-font-head); font-weight: 700; font-size: clamp(28px, 4vw, 44px); line-height: 1.1; margin: 0 0 12px; color: var(--rmhv-bone); letter-spacing: -.01em; }
.rmhv-sec-sub { color: var(--rmhv-muted); font-size: 16px; margin: 0; }
.rmhv-tight { margin-bottom: 24px; }
.rmhv-mono { font-family: var(--rmhv-font-mono); font-size: 13px; color: var(--rmhv-amber); }
.rmhv-muted { color: var(--rmhv-muted); }

/* Buttons */
.rmhv-btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; border-radius: 999px; font-weight: 600; font-size: 14px; letter-spacing: .02em; border: 1px solid transparent; transition: transform .15s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease; cursor: pointer; }
.rmhv-btn:hover { transform: translateY(-1px); }
.rmhv-btn-primary { background: linear-gradient(180deg, var(--rmhv-blood), var(--rmhv-blood-2)); color: #fff5e3; box-shadow: 0 14px 30px -12px rgba(168,20,29,.7), inset 0 1px 0 rgba(255,255,255,.18); }
.rmhv-btn-primary:hover { color: #fff; box-shadow: 0 18px 36px -10px rgba(168,20,29,.85), 0 0 30px rgba(240,182,90,.25); }
.rmhv-btn-ghost { background: rgba(255,255,255,.04); color: var(--rmhv-bone); border-color: var(--rmhv-line); }
.rmhv-btn-ghost:hover { border-color: var(--rmhv-amber); color: var(--rmhv-amber); }
.rmhv-btn-arrow { transition: transform .2s ease; }
.rmhv-btn:hover .rmhv-btn-arrow { transform: translateX(4px); }

/* Amazon CTA */
.rmhv-amz-btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 999px; background: linear-gradient(180deg, var(--rmhv-amber), var(--rmhv-amber-2)); color: #2a1a04; font-weight: 700; font-size: 14px; border: 1px solid rgba(255,255,255,.2); box-shadow: 0 10px 24px -10px rgba(240,182,90,.6), inset 0 1px 0 rgba(255,255,255,.35); }
.rmhv-amz-btn:hover { color: #1a0e02; transform: translateY(-1px); box-shadow: 0 14px 30px -8px rgba(240,182,90,.75); }
.rmhv-amz-btn.small { padding: 8px 14px; font-size: 13px; }
.rmhv-amz-btn.large { padding: 15px 26px; font-size: 16px; }
.rmhv-amz-arrow { font-weight: 700; }

/* Affiliate disclosure */
.rmhv-affiliate-disclosure { font-size: 12px; color: var(--rmhv-muted); border-left: 2px solid var(--rmhv-amber); padding: 8px 12px; margin: 14px 0; background: rgba(240,182,90,.04); border-radius: 0 8px 8px 0; }

/* Badges */
.rmhv-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-family: var(--rmhv-font-mono); }
.rmhv-badge-fact     { background: rgba(110,180,150,.14); color: #9dd6bd; border: 1px solid rgba(110,180,150,.35); }
.rmhv-badge-folklore { background: rgba(240,182,90,.14); color: var(--rmhv-amber); border: 1px solid rgba(240,182,90,.35); }
.rmhv-badge-fiction  { background: rgba(168,20,29,.16); color: #ff8a8a; border: 1px solid rgba(168,20,29,.5); }
.rmhv-badge-event    { background: rgba(170,185,211,.14); color: var(--rmhv-moon); border: 1px solid rgba(170,185,211,.35); }

/* Chips */
.rmhv-chip { display: inline-block; padding: 4px 10px; border-radius: 6px; font-size: 11px; font-family: var(--rmhv-font-mono); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.rmhv-chip-cozy    { background: rgba(170,185,211,.12); color: var(--rmhv-moon); }
.rmhv-chip-mild    { background: rgba(240,182,90,.12); color: var(--rmhv-amber); }
.rmhv-chip-classic { background: rgba(214,199,158,.12); color: var(--rmhv-parchment); }
.rmhv-chip-scary   { background: rgba(168,20,29,.18); color: #ff9a9a; }
.rmhv-chip-extreme { background: linear-gradient(90deg, rgba(168,20,29,.3), rgba(20,5,5,.5)); color: #ffdada; border: 1px solid rgba(168,20,29,.5); }

/* Pills */
.rmhv-pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 500; color: var(--rmhv-text); background: rgba(255,255,255,.04); border: 1px solid var(--rmhv-line); }
.rmhv-pill-warn { background: rgba(168,20,29,.1); border-color: rgba(168,20,29,.4); color: #ffb0b0; }
.rmhv-pill-safe { background: rgba(170,185,211,.1); border-color: rgba(170,185,211,.35); color: var(--rmhv-moon); }
.rmhv-pill-amz  { background: rgba(240,182,90,.1); border-color: rgba(240,182,90,.4); color: var(--rmhv-amber); }

/* =================== HERO =================== */
.rmhv-hero { padding: 100px 20px 90px; overflow: hidden; isolation: isolate; }
.rmhv-hero-bg { position: absolute; inset: 0; pointer-events: none; z-index: -1; overflow: hidden; }
.rmhv-hero-sky { position: absolute; inset: 0; background:
	radial-gradient(ellipse at 50% 0%, rgba(60,40,80,.45), transparent 60%),
	radial-gradient(ellipse at 20% 30%, rgba(168,20,29,.18), transparent 50%),
	linear-gradient(180deg, #0a0612 0%, #07060a 70%); }
.rmhv-hero-moon { position: absolute; top: 8%; right: 12%; width: 120px; height: 120px; border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, #eadfc6 0%, #c2b696 50%, #6c624c 80%, #1a160d 100%);
	box-shadow: 0 0 80px rgba(240,220,180,.25), 0 0 160px rgba(170,185,211,.15);
	filter: saturate(.85); }
.rmhv-hero-trees { position: absolute; left: 0; right: 0; bottom: 110px; height: 200px;
	background: linear-gradient(180deg, transparent 0%, rgba(8,6,12,.6) 50%, rgba(8,6,12,.95) 100%);
	mask-image: repeating-linear-gradient(90deg, #000 0 30px, transparent 30px 50px, #000 50px 80px, transparent 80px 110px, #000 110px 145px, transparent 145px 175px); }
.rmhv-hero-mill { position: absolute; left: 5%; bottom: 90px; width: 220px; height: 230px;
	background:
		linear-gradient(180deg, #2a1212 0%, #1a0a0a 100%);
	clip-path: polygon(15% 100%, 15% 35%, 50% 5%, 85% 35%, 85% 100%);
	box-shadow: inset 0 0 60px rgba(0,0,0,.7);
	opacity: .65; }
.rmhv-hero-mill::before { content: ''; position: absolute; left: 42%; top: 60%; width: 16%; height: 30%; background: rgba(240,182,90,.55); box-shadow: 0 0 30px rgba(240,182,90,.65); }
.rmhv-hero-river { position: absolute; left: 0; right: 0; bottom: 0; height: 110px;
	background: linear-gradient(180deg, #0c1a22 0%, #050a10 100%);
	box-shadow: inset 0 14px 40px rgba(170,185,211,.06); }
.rmhv-hero-river::before { content: ''; position: absolute; inset: 0; opacity: .25;
	background: repeating-linear-gradient(90deg, transparent 0 30px, rgba(170,185,211,.3) 30px 32px); animation: rmhvWater 12s linear infinite; }
@keyframes rmhvWater { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }

.rmhv-hero-fog { position: absolute; left: -10%; right: -10%; height: 220px; opacity: .35;
	background: radial-gradient(ellipse at center, rgba(184,194,207,.5), transparent 70%);
	filter: blur(40px); pointer-events: none; }
.rmhv-fog-1 { bottom: 80px; animation: rmhvFog1 28s linear infinite; }
.rmhv-fog-2 { bottom: 150px; opacity: .25; animation: rmhvFog2 38s linear infinite reverse; }
.rmhv-fog-3 { bottom: 40px; opacity: .45; animation: rmhvFog1 22s linear infinite; }
@keyframes rmhvFog1 { 0% { transform: translateX(-10%);} 50% { transform: translateX(10%);} 100% { transform: translateX(-10%);} }
@keyframes rmhvFog2 { 0% { transform: translateX(8%);} 50% { transform: translateX(-12%);} 100% { transform: translateX(8%);} }

.rmhv-hero-lantern { position: absolute; right: 18%; bottom: 220px; width: 24px; height: 30px; background: radial-gradient(circle at 50% 40%, var(--rmhv-amber) 0%, var(--rmhv-amber-2) 60%, transparent 90%); border-radius: 4px; box-shadow: 0 0 30px var(--rmhv-amber), 0 0 70px rgba(240,182,90,.4); animation: rmhvFlicker 3.4s infinite; }
@keyframes rmhvFlicker { 0%,100% { opacity: 1; } 45% { opacity: .85; } 55% { opacity: 1; } 70% { opacity: .7; } 80% { opacity: .95; } }

.rmhv-hero-inner { position: relative; max-width: 1240px; margin: 0 auto; text-align: center; padding-top: 30px; }
.rmhv-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: rgba(240,182,90,.08); border: 1px solid rgba(240,182,90,.25); color: var(--rmhv-amber); font-size: 12px; letter-spacing: .15em; text-transform: uppercase; font-family: var(--rmhv-font-mono); margin-bottom: 28px; }
.rmhv-eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--rmhv-amber); box-shadow: 0 0 10px var(--rmhv-amber); }
.rmhv-hero-headline { font-family: var(--rmhv-font-head); font-weight: 800; font-size: clamp(36px, 6vw, 76px); line-height: 1.02; margin: 0 0 22px; letter-spacing: -.02em; color: var(--rmhv-bone); text-shadow: 0 4px 30px rgba(0,0,0,.6); }
.rmhv-hero-sub { color: var(--rmhv-text); max-width: 720px; margin: 0 auto 32px; font-size: 18px; opacity: .9; }
.rmhv-hero-ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 28px; }
.rmhv-hero-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 60px; }

.rmhv-hero-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; max-width: 760px; margin: 0 auto; }
.rmhv-hero-card { background: var(--rmhv-glass); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 22px; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); text-align: left; box-shadow: var(--rmhv-shadow); }
.rmhv-hc-label { font-family: var(--rmhv-font-mono); font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: var(--rmhv-amber); }
.rmhv-hc-title { font-family: var(--rmhv-font-head); font-size: 22px; margin: 6px 0 14px; color: var(--rmhv-bone); }
.rmhv-hc-mini { display: flex; align-items: center; gap: 8px; color: var(--rmhv-muted); font-size: 13px; }
.rmhv-mini-year { font-family: var(--rmhv-font-mono); color: var(--rmhv-parchment); }
.rmhv-mini-bar { flex: 1; height: 2px; background: linear-gradient(90deg, transparent, var(--rmhv-line), transparent); }
.rmhv-hc-link { display: inline-block; margin-top: 14px; color: var(--rmhv-amber); font-weight: 600; font-size: 14px; }
.rmhv-scare-meter { display: flex; gap: 6px; margin: 8px 0 4px; }
.rmhv-sm-step { width: 26px; height: 8px; background: rgba(255,255,255,.06); border-radius: 4px; }
.rmhv-sm-step.rmhv-on { background: linear-gradient(90deg, var(--rmhv-blood-2), var(--rmhv-blood), var(--rmhv-amber)); box-shadow: 0 0 12px rgba(168,20,29,.4); }

/* =================== NOTICE STRIP =================== */
.rmhv-notice-strip { padding: 56px 20px; background: linear-gradient(180deg, rgba(168,20,29,.06), transparent); border-block: 1px solid var(--rmhv-line); }
.rmhv-notice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.rmhv-notice-card { background: rgba(20,17,28,.55); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 16px 18px; display: flex; align-items: flex-start; gap: 12px; }
.rmhv-notice-icon { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 10px; background: rgba(240,182,90,.12); border: 1px solid rgba(240,182,90,.3); display: inline-flex; align-items: center; justify-content: center; color: var(--rmhv-amber); }
.rmhv-notice-icon svg { display: block; }
.rmhv-notice-card p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--rmhv-text); }

/* =================== QUICK START =================== */
.rmhv-qs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.rmhv-qs-card { display: flex; flex-direction: column; align-items: flex-start; text-align: left; gap: 6px; padding: 20px; border-radius: var(--rmhv-radius); background: linear-gradient(180deg, rgba(20,17,28,.7), rgba(20,17,28,.5)); border: 1px solid var(--rmhv-line); color: var(--rmhv-bone); transition: transform .15s ease, border-color .2s ease, box-shadow .25s ease; position: relative; }
.rmhv-qs-card:hover { transform: translateY(-3px); border-color: var(--rmhv-amber); box-shadow: 0 18px 36px -16px rgba(0,0,0,.7), 0 0 30px -10px rgba(240,182,90,.3); }
.rmhv-qs-label { font-family: var(--rmhv-font-head); font-size: 18px; }
.rmhv-qs-desc { color: var(--rmhv-muted); font-size: 13px; }
.rmhv-qs-go { position: absolute; top: 18px; right: 18px; color: var(--rmhv-amber); font-weight: 700; opacity: .6; transition: opacity .2s ease, transform .2s ease; }
.rmhv-qs-card:hover .rmhv-qs-go { opacity: 1; transform: translateX(4px); }
.rmhv-qs-card.rmhv-on { border-color: var(--rmhv-amber); box-shadow: inset 0 0 0 1px var(--rmhv-amber), 0 18px 36px -16px rgba(240,182,90,.3); }

/* =================== QUIZ =================== */
.rmhv-quiz-shell { max-width: 760px; margin: 0 auto; background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-lg); padding: 32px; backdrop-filter: blur(10px); }
.rmhv-quiz-progress { height: 6px; background: rgba(255,255,255,.05); border-radius: 999px; overflow: hidden; margin-bottom: 22px; }
.rmhv-quiz-bar { display: block; height: 100%; background: linear-gradient(90deg, var(--rmhv-blood-2), var(--rmhv-amber)); transition: width .3s ease; }
.rmhv-quiz-meta { font-family: var(--rmhv-font-mono); font-size: 12px; color: var(--rmhv-amber); margin: 0 0 6px; letter-spacing: .15em; text-transform: uppercase; }
.rmhv-quiz-q { font-family: var(--rmhv-font-head); font-size: 26px; margin: 0 0 18px; color: var(--rmhv-bone); }
.rmhv-quiz-options { display: grid; gap: 10px; margin-bottom: 22px; }
.rmhv-quiz-option { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); background: rgba(255,255,255,.02); color: var(--rmhv-text); text-align: left; transition: border-color .15s ease, background .15s ease; cursor: pointer; }
.rmhv-quiz-option:hover { border-color: var(--rmhv-amber); }
.rmhv-quiz-option.rmhv-on { border-color: var(--rmhv-amber); background: rgba(240,182,90,.08); color: var(--rmhv-bone); }
.rmhv-quiz-option::before { content: ''; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--rmhv-line); flex: 0 0 16px; transition: all .15s ease; }
.rmhv-quiz-option.rmhv-on::before { border-color: var(--rmhv-amber); background: var(--rmhv-amber); box-shadow: 0 0 0 3px rgba(240,182,90,.2); }
.rmhv-quiz-controls { display: flex; justify-content: space-between; gap: 10px; }
.rmhv-quiz-result { animation: rmhvFade .4s ease; }
.rmhv-quiz-result-head { margin-bottom: 14px; }
.rmhv-quiz-result-title { font-family: var(--rmhv-font-head); font-size: 30px; color: var(--rmhv-bone); margin: 0 0 8px; }
.rmhv-quiz-result-desc { color: var(--rmhv-text); margin: 0 0 18px; }
.rmhv-quiz-result-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.rmhv-pb-badge { display: inline-block; padding: 4px 10px; border-radius: 999px; background: linear-gradient(90deg, var(--rmhv-amber), var(--rmhv-amber-2)); color: #2a1a04; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
@keyframes rmhvFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* =================== FIELDS =================== */
.rmhv-field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--rmhv-muted); }
.rmhv-field > span { letter-spacing: .05em; font-family: var(--rmhv-font-mono); text-transform: uppercase; font-size: 11px; }
.rmhv-field input, .rmhv-field select, .rmhv-field textarea { background: rgba(20,17,28,.7); border: 1px solid var(--rmhv-line); color: var(--rmhv-text); padding: 11px 14px; border-radius: var(--rmhv-radius-sm); font-family: inherit; font-size: 14px; }
.rmhv-field input:focus, .rmhv-field select:focus, .rmhv-field textarea:focus { outline: none; border-color: var(--rmhv-amber); box-shadow: 0 0 0 3px rgba(240,182,90,.15); }
.rmhv-checkfield { flex-direction: row; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-sm); background: rgba(20,17,28,.5); }
.rmhv-checkfield input { width: 18px; height: 18px; accent-color: var(--rmhv-amber); }
.rmhv-checkfield span { font-size: 14px; color: var(--rmhv-text); font-family: var(--rmhv-font-body); text-transform: none; letter-spacing: 0; }

/* =================== CALC =================== */
.rmhv-calc-form { max-width: 920px; margin: 0 auto; }
.rmhv-calc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-bottom: 22px; }
.rmhv-calc-actions { display: flex; gap: 10px; justify-content: center; }
.rmhv-calc-result { max-width: 920px; margin: 40px auto 0; background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-lg); padding: 28px; backdrop-filter: blur(10px); animation: rmhvFade .4s ease; }
.rmhv-calc-meter { height: 12px; background: rgba(255,255,255,.05); border-radius: 999px; overflow: hidden; margin-bottom: 14px; }
.rmhv-cm-fill { display: block; height: 100%; background: linear-gradient(90deg, var(--rmhv-moon), var(--rmhv-amber), var(--rmhv-blood)); transition: width .5s ease; }
.rmhv-calc-level { font-family: var(--rmhv-font-head); font-size: 28px; color: var(--rmhv-bone); margin: 0 0 8px; }
.rmhv-calc-desc { color: var(--rmhv-text); margin: 0 0 22px; }
.rmhv-calc-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.rmhv-calc-col h4 { font-family: var(--rmhv-font-head); font-size: 16px; color: var(--rmhv-amber); margin: 0 0 10px; }
.rmhv-calc-col ul { padding-left: 18px; margin: 0; color: var(--rmhv-text); font-size: 14px; }
.rmhv-calc-col li { margin: 6px 0; }
.rmhv-calc-note { color: var(--rmhv-muted); font-size: 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--rmhv-line); }

/* =================== TIMELINE =================== */
.rmhv-tl-filters { display: flex; justify-content: center; gap: 8px; margin-bottom: 32px; flex-wrap: wrap; }
.rmhv-tl-filter { background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); color: var(--rmhv-text); padding: 8px 16px; border-radius: 999px; font-size: 13px; }
.rmhv-tl-filter.rmhv-on { background: rgba(240,182,90,.1); border-color: var(--rmhv-amber); color: var(--rmhv-amber); }
.rmhv-tl-rails { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
@media (max-width: 800px) { .rmhv-tl-rails { grid-template-columns: 1fr; } }
.rmhv-tl-rail { position: relative; padding-top: 20px; }
.rmhv-tl-rail::before { content: ''; position: absolute; left: 50px; top: 60px; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--rmhv-amber), transparent); opacity: .35; }
.rmhv-tl-rail-folklore::before { background: linear-gradient(180deg, var(--rmhv-blood), transparent); }
.rmhv-tl-rail-title { font-family: var(--rmhv-font-head); font-size: 18px; color: var(--rmhv-amber); letter-spacing: .04em; text-transform: uppercase; margin: 0 0 18px; padding-left: 50px; }
.rmhv-tl-rail-folklore .rmhv-tl-rail-title { color: #ff9a9a; }
.rmhv-tl-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.rmhv-tl-item { position: relative; padding-left: 80px; }
.rmhv-tl-item::before { content: ''; position: absolute; left: 44px; top: 14px; width: 14px; height: 14px; border-radius: 50%; background: var(--rmhv-amber); box-shadow: 0 0 14px var(--rmhv-amber); }
.rmhv-tl-rail-folklore .rmhv-tl-item::before { background: var(--rmhv-blood); box-shadow: 0 0 14px var(--rmhv-blood); }
.rmhv-tl-year { position: absolute; left: 0; top: 12px; font-family: var(--rmhv-font-mono); font-size: 13px; color: var(--rmhv-parchment); width: 36px; text-align: right; }
.rmhv-tl-card { background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 16px 18px; }
.rmhv-tl-card-head { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; flex-wrap: wrap; }
.rmhv-tl-title { font-family: var(--rmhv-font-head); font-size: 18px; color: var(--rmhv-bone); margin: 0; }
.rmhv-tl-card p { margin: 0; color: var(--rmhv-text); font-size: 14px; }
.rmhv-tl-src { font-size: 12px; color: var(--rmhv-amber); margin-top: 8px; display: inline-block; }
.rmhv-tl-note { color: var(--rmhv-muted); font-size: 12px; text-align: center; margin-top: 30px; }

/* =================== LORE EXPLORER =================== */
.rmhv-lore-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 26px; }
.rmhv-lore-filters label { display: flex; flex-direction: column; gap: 4px; font-family: var(--rmhv-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--rmhv-muted); }
.rmhv-lore-filters input, .rmhv-lore-filters select { background: rgba(20,17,28,.7); border: 1px solid var(--rmhv-line); color: var(--rmhv-text); padding: 10px 12px; border-radius: var(--rmhv-radius-sm); font-family: var(--rmhv-font-body); font-size: 14px; }
.rmhv-lore-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.rmhv-lore-card { background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 18px; position: relative; transition: border-color .2s ease, transform .15s ease; }
.rmhv-lore-card:hover { border-color: var(--rmhv-amber); transform: translateY(-2px); }
.rmhv-lore-head { display: flex; gap: 8px; margin-bottom: 10px; }
.rmhv-lore-title { font-family: var(--rmhv-font-head); font-size: 20px; color: var(--rmhv-bone); margin: 0 0 6px; }
.rmhv-lore-sum { color: var(--rmhv-text); font-size: 14px; margin: 0 0 14px; }
.rmhv-lore-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* =================== STORY GEN =================== */
.rmhv-gen-form { max-width: 920px; margin: 0 auto; }
.rmhv-gen-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 22px; }
.rmhv-gen-actions { display: flex; gap: 10px; justify-content: center; }
.rmhv-gen-result { max-width: 920px; margin: 40px auto 0; background:
	linear-gradient(180deg, rgba(40,30,20,.7), rgba(20,15,10,.85)),
	repeating-linear-gradient(45deg, transparent 0 30px, rgba(214,199,158,.02) 30px 31px);
	border: 1px solid rgba(214,199,158,.18); border-radius: var(--rmhv-radius-lg); padding: 28px; position: relative;
	box-shadow: var(--rmhv-shadow); animation: rmhvFade .4s ease; }
.rmhv-gen-head { display: flex; gap: 10px; margin-bottom: 14px; align-items: center; flex-wrap: wrap; }
.rmhv-gen-tag { font-family: var(--rmhv-font-mono); font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: var(--rmhv-parchment); }
.rmhv-gen-title { font-family: var(--rmhv-font-head); font-size: 28px; color: var(--rmhv-bone); margin: 0 0 8px; }
.rmhv-gen-hook { color: var(--rmhv-text); font-style: italic; margin: 0 0 22px; font-size: 16px; }
.rmhv-gen-acts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-bottom: 18px; }
.rmhv-gen-acts h4 { font-family: var(--rmhv-font-head); color: var(--rmhv-amber); margin: 0 0 6px; font-size: 16px; }
.rmhv-gen-acts p { color: var(--rmhv-text); margin: 0; font-size: 14px; }
.rmhv-gen-extra { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
.rmhv-gen-extra h4 { font-family: var(--rmhv-font-head); color: var(--rmhv-amber); margin: 0 0 8px; font-size: 16px; }
.rmhv-gen-extra ul { padding-left: 18px; margin: 0; color: var(--rmhv-text); font-size: 14px; }
@media (max-width: 700px) { .rmhv-gen-extra { grid-template-columns: 1fr; } }
.rmhv-gen-note { color: var(--rmhv-muted); font-size: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rmhv-line); }

/* =================== CHECKLIST =================== */
.rmhv-check-form { max-width: 920px; margin: 0 auto; }
.rmhv-check-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 22px; }
.rmhv-check-actions { display: flex; gap: 10px; justify-content: center; }
.rmhv-check-result { max-width: 920px; margin: 40px auto 0; background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-lg); padding: 28px; animation: rmhvFade .4s ease; }
.rmhv-check-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; margin-bottom: 18px; }
.rmhv-check-col h4 { font-family: var(--rmhv-font-head); color: var(--rmhv-amber); margin: 0 0 10px; font-size: 16px; }
.rmhv-check-col ul { padding-left: 18px; margin: 0; color: var(--rmhv-text); font-size: 14px; }
.rmhv-check-col li { margin: 6px 0; }
.rmhv-check-cta { display: flex; gap: 10px; flex-wrap: wrap; }
.rmhv-check-note { color: var(--rmhv-muted); font-size: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rmhv-line); }

/* =================== MAP =================== */
.rmhv-map-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; }
@media (max-width: 800px) { .rmhv-map-grid { grid-template-columns: 1fr; } }
.rmhv-map-canvas { position: relative; border-radius: var(--rmhv-radius-lg); overflow: hidden; border: 1px solid var(--rmhv-line); }
.rmhv-map-svg { width: 100%; height: auto; display: block; }
.rmhv-map-legend { position: absolute; left: 12px; bottom: 12px; padding: 4px 10px; border-radius: 999px; background: rgba(0,0,0,.6); border: 1px solid var(--rmhv-line); font-size: 11px; font-family: var(--rmhv-font-mono); color: var(--rmhv-parchment); }
.rmhv-map-pin { fill: var(--rmhv-amber); stroke: #2a1a04; stroke-width: 2; filter: drop-shadow(0 0 8px var(--rmhv-amber)); cursor: pointer; transition: r .15s ease; }
.rmhv-map-pin:hover { fill: var(--rmhv-bone); }
.rmhv-map-side { background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-lg); padding: 20px; }
.rmhv-map-side h3 { font-family: var(--rmhv-font-head); margin: 0 0 12px; font-size: 18px; color: var(--rmhv-bone); }
.rmhv-map-zones { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 6px; }
.rmhv-zone-btn { width: 100%; text-align: left; padding: 10px 12px; background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-sm); color: var(--rmhv-text); display: flex; flex-direction: column; gap: 2px; transition: border-color .15s ease; }
.rmhv-zone-btn:hover, .rmhv-zone-btn.rmhv-on { border-color: var(--rmhv-amber); }
.rmhv-zone-label { font-family: var(--rmhv-font-head); font-size: 16px; color: var(--rmhv-bone); }
.rmhv-zone-desc { font-size: 12px; color: var(--rmhv-muted); }
.rmhv-map-route { padding-left: 22px; margin: 0 0 16px; color: var(--rmhv-text); font-size: 14px; min-height: 30px; }
.rmhv-map-route li { margin: 4px 0; }
.rmhv-map-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.rmhv-map-note { font-size: 12px; color: var(--rmhv-muted); border-top: 1px solid var(--rmhv-line); padding-top: 12px; margin: 0; }

/* =================== FEATURED STORIES =================== */
.rmhv-feat-rail { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.rmhv-feat-card { position: relative; padding: 24px 22px; background:
	linear-gradient(180deg, rgba(232,219,189,.06), rgba(232,219,189,.02)),
	rgba(20,17,28,.85);
	border: 1px solid rgba(214,199,158,.18); border-radius: var(--rmhv-radius); transition: transform .15s ease, border-color .2s ease; }
.rmhv-feat-card:hover { transform: translateY(-3px); border-color: var(--rmhv-amber); }
.rmhv-feat-tear { position: absolute; left: 0; right: 0; top: 0; height: 8px;
	background: linear-gradient(90deg, transparent 0%, var(--rmhv-blood) 50%, transparent 100%); opacity: .3;
	mask: repeating-linear-gradient(90deg, #000 0 6px, transparent 6px 10px); }
.rmhv-feat-meta { display: flex; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.rmhv-feat-title { font-family: var(--rmhv-font-head); font-size: 22px; margin: 0 0 8px; color: var(--rmhv-bone); }
.rmhv-feat-desc { color: var(--rmhv-text); font-size: 14px; margin: 0 0 16px; }
.rmhv-feat-actions { display: flex; gap: 10px; align-items: center; }
.rmhv-feat-link { color: var(--rmhv-amber); font-size: 14px; font-weight: 600; margin-left: auto; }

/* =================== HISTORY DB =================== */
.rmhv-histdb-table { display: grid; gap: 6px; }
.rmhv-histdb-row { display: grid; grid-template-columns: 100px 130px 1fr 130px; gap: 14px; padding: 14px 18px; background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-sm); align-items: start; }
.rmhv-histdb-head { background: rgba(240,182,90,.06); font-family: var(--rmhv-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--rmhv-amber); }
@media (max-width: 800px) { .rmhv-histdb-row { grid-template-columns: 1fr; } .rmhv-histdb-head { display: none; } }
.rmhv-histdb-note { color: var(--rmhv-muted); font-size: 12px; margin-top: 14px; text-align: center; }

/* =================== PRODUCTS =================== */
.rmhv-prod-filters { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 26px; }
.rmhv-prod-filter { background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); color: var(--rmhv-text); padding: 8px 16px; border-radius: 999px; font-size: 13px; }
.rmhv-prod-filter.rmhv-on { background: rgba(240,182,90,.1); border-color: var(--rmhv-amber); color: var(--rmhv-amber); }
.rmhv-prod-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.rmhv-prod-card { background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 18px; display: flex; flex-direction: column; gap: 8px; transition: transform .15s ease, border-color .2s ease; }
.rmhv-prod-card:hover { transform: translateY(-2px); border-color: var(--rmhv-amber); }
.rmhv-prod-head { display: flex; gap: 8px; align-items: center; margin-bottom: 4px; }
.rmhv-prod-title { font-family: var(--rmhv-font-head); font-size: 20px; color: var(--rmhv-bone); margin: 0; }
.rmhv-prod-best { color: var(--rmhv-text); font-size: 14px; margin: 0 0 8px; }
.rmhv-prod-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: auto; }

/* =================== COMPARISON =================== */
.rmhv-cmp-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); }
.rmhv-cmp-table { width: 100%; border-collapse: collapse; min-width: 720px; }
.rmhv-cmp-table th, .rmhv-cmp-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--rmhv-line); font-size: 14px; vertical-align: top; }
.rmhv-cmp-table th { background: rgba(240,182,90,.06); font-family: var(--rmhv-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--rmhv-amber); }
.rmhv-cmp-table tbody tr:hover { background: rgba(255,255,255,.02); }
.rmhv-cmp-drawer { position: fixed; right: 20px; bottom: 90px; width: min(360px, calc(100vw - 40px)); max-height: 60vh; overflow: auto; background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-amber); border-radius: var(--rmhv-radius-lg); padding: 18px; z-index: 80; box-shadow: var(--rmhv-shadow); }
.rmhv-cmp-drawer-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; gap: 8px; }
.rmhv-cmp-clear, .rmhv-cmp-close { background: transparent; border: 1px solid var(--rmhv-line); color: var(--rmhv-text); border-radius: 8px; padding: 4px 10px; font-size: 12px; }
.rmhv-cmp-close { font-size: 18px; padding: 2px 8px; }

/* =================== TRACKER =================== */
.rmhv-track-tabs { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 22px; }
.rmhv-track-tab { background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); color: var(--rmhv-text); padding: 8px 16px; border-radius: 999px; font-size: 13px; }
.rmhv-track-tab.rmhv-on { background: rgba(168,20,29,.15); border-color: var(--rmhv-blood); color: #ffb0b0; }
.rmhv-track-empty { text-align: center; padding: 28px; color: var(--rmhv-muted); background: rgba(20,17,28,.6); border: 1px dashed var(--rmhv-line); border-radius: var(--rmhv-radius); }
.rmhv-track-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.rmhv-track-item { background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.rmhv-track-item h4 { font-family: var(--rmhv-font-head); font-size: 16px; color: var(--rmhv-bone); margin: 0; }
.rmhv-track-item .rmhv-meta { font-family: var(--rmhv-font-mono); font-size: 11px; color: var(--rmhv-muted); }
.rmhv-track-item .rmhv-x { align-self: flex-end; background: transparent; border: 1px solid var(--rmhv-line); border-radius: 8px; padding: 4px 10px; font-size: 12px; color: var(--rmhv-muted); }
.rmhv-track-item .rmhv-x:hover { color: var(--rmhv-blood); border-color: var(--rmhv-blood); }
.rmhv-track-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.rmhv-track-note { font-size: 12px; color: var(--rmhv-muted); margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rmhv-line); }

/* =================== NIGHT PLANNER =================== */
.rmhv-night-form { max-width: 920px; margin: 0 auto; }
.rmhv-night-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 22px; }
.rmhv-night-actions { display: flex; gap: 10px; justify-content: center; }
.rmhv-night-result { max-width: 920px; margin: 40px auto 0; background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-lg); padding: 28px; animation: rmhvFade .4s ease; }
.rmhv-night-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin-bottom: 18px; }
.rmhv-night-cols h4 { font-family: var(--rmhv-font-head); color: var(--rmhv-amber); margin: 0 0 10px; font-size: 16px; }
.rmhv-night-cols ul { padding-left: 18px; margin: 0; color: var(--rmhv-text); font-size: 14px; }
.rmhv-night-bar { display: flex; gap: 10px; flex-wrap: wrap; }
.rmhv-night-bundle { display: flex; flex-direction: column; gap: 8px; }

/* =================== BUDGET =================== */
.rmhv-bud-form { max-width: 920px; margin: 0 auto; }
.rmhv-bud-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 22px; }
.rmhv-bud-actions { display: flex; gap: 10px; justify-content: center; }
.rmhv-bud-result { max-width: 920px; margin: 40px auto 0; background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-lg); padding: 28px; animation: rmhvFade .4s ease; }
.rmhv-bud-band { height: 10px; background: rgba(255,255,255,.05); border-radius: 999px; overflow: hidden; margin-bottom: 14px; }
.rmhv-bud-band-fill { display: block; height: 100%; background: linear-gradient(90deg, var(--rmhv-moon), var(--rmhv-amber), var(--rmhv-blood)); transition: width .5s ease; }
.rmhv-bud-tier { font-family: var(--rmhv-font-head); font-size: 24px; color: var(--rmhv-bone); margin: 0; }
.rmhv-bud-est { color: var(--rmhv-amber); font-family: var(--rmhv-font-mono); margin: 4px 0 18px; }
.rmhv-bud-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.rmhv-bud-cols h4 { font-family: var(--rmhv-font-head); color: var(--rmhv-amber); margin: 0 0 10px; font-size: 16px; }
.rmhv-bud-cols ul { padding-left: 18px; margin: 0; color: var(--rmhv-text); font-size: 14px; }
.rmhv-bud-note { color: var(--rmhv-muted); font-size: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rmhv-line); }

/* =================== BEGINNER HUB =================== */
.rmhv-begin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.rmhv-begin-card { display: block; padding: 22px; background: rgba(20,17,28,.7); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); color: var(--rmhv-bone); transition: border-color .2s ease, transform .15s ease; position: relative; }
.rmhv-begin-card:hover { border-color: var(--rmhv-amber); transform: translateY(-2px); }
.rmhv-begin-step { font-family: var(--rmhv-font-mono); font-size: 11px; color: var(--rmhv-amber); letter-spacing: .15em; text-transform: uppercase; }
.rmhv-begin-card h3 { font-family: var(--rmhv-font-head); font-size: 18px; margin: 4px 0 6px; }
.rmhv-begin-card p { color: var(--rmhv-muted); font-size: 14px; margin: 0; }
.rmhv-begin-go { position: absolute; right: 18px; top: 18px; color: var(--rmhv-amber); font-weight: 700; }

/* =================== FAQ =================== */
.rmhv-faq-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.rmhv-faq-item details { background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 16px 20px; transition: border-color .2s ease; }
.rmhv-faq-item details[open] { border-color: var(--rmhv-amber); }
.rmhv-faq-item summary { cursor: pointer; font-family: var(--rmhv-font-head); font-size: 18px; color: var(--rmhv-bone); list-style: none; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.rmhv-faq-item summary::-webkit-details-marker { display: none; }
.rmhv-faq-item summary::after { content: '+'; font-family: var(--rmhv-font-mono); color: var(--rmhv-amber); font-size: 20px; }
.rmhv-faq-item details[open] summary::after { content: '–'; }
.rmhv-faq-a { color: var(--rmhv-text); margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--rmhv-line); font-size: 15px; }

/* =================== NEWSLETTER =================== */
.rmhv-news-card { position: relative; padding: 36px 30px; background: linear-gradient(180deg, rgba(40,30,20,.7), rgba(20,15,10,.85)); border: 1px solid rgba(240,182,90,.25); border-radius: var(--rmhv-radius-lg); text-align: center; overflow: hidden; }
.rmhv-news-glow { position: absolute; top: -20%; left: 50%; width: 60%; height: 60%; transform: translateX(-50%); background: radial-gradient(circle, rgba(240,182,90,.25), transparent 70%); filter: blur(40px); pointer-events: none; }
.rmhv-news-title { font-family: var(--rmhv-font-head); font-size: 32px; color: var(--rmhv-bone); margin: 0 0 8px; position: relative; }
.rmhv-news-sub { color: var(--rmhv-text); margin: 0 0 22px; position: relative; }
.rmhv-news-form { display: flex; gap: 8px; max-width: 480px; margin: 0 auto; flex-wrap: wrap; position: relative; justify-content: center; }
.rmhv-news-form input { flex: 1 1 240px; padding: 14px 18px; border-radius: 999px; border: 1px solid var(--rmhv-line); background: rgba(0,0,0,.4); color: var(--rmhv-text); font-size: 15px; }
.rmhv-news-form input:focus { outline: none; border-color: var(--rmhv-amber); }
.rmhv-news-note { color: var(--rmhv-muted); font-size: 12px; margin: 14px 0 0; position: relative; }
.rmhv-news-success { color: var(--rmhv-amber); margin-top: 12px; font-size: 14px; position: relative; }

/* =================== TRUST =================== */
.rmhv-trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.rmhv-trust-card { background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 22px; }
.rmhv-trust-card h3 { font-family: var(--rmhv-font-head); font-size: 18px; color: var(--rmhv-amber); margin: 0 0 8px; }
.rmhv-trust-card p { color: var(--rmhv-text); font-size: 14px; margin: 0; }

/* =================== FOOTER =================== */
.rmhv-site-footer { background: linear-gradient(180deg, #050409 0%, #02010a 100%); border-top: 1px solid var(--rmhv-line); padding: 64px 20px 30px; }
.rmhv-footer-inner { max-width: 1240px; margin: 0 auto; }
.rmhv-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 32px; margin-bottom: 40px; }
@media (max-width: 800px) { .rmhv-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 500px) { .rmhv-footer-grid { grid-template-columns: 1fr; } }
.rmhv-footer-brand .rmhv-brand { color: var(--rmhv-bone); }
.rmhv-foot-tag { color: var(--rmhv-muted); margin: 14px 0; max-width: 360px; font-size: 14px; }
.rmhv-foot-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.rmhv-footer-col h4 { font-family: var(--rmhv-font-head); color: var(--rmhv-bone); margin: 0 0 14px; font-size: 17px; }
.rmhv-foot-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.rmhv-foot-list a { color: var(--rmhv-muted); font-size: 14px; }
.rmhv-foot-list a:hover { color: var(--rmhv-amber); }
.rmhv-footer-disclaimers { background: rgba(168,20,29,.04); border-block: 1px solid var(--rmhv-line); padding: 22px; margin: 30px 0; border-radius: var(--rmhv-radius); }
.rmhv-foot-disc { color: var(--rmhv-muted); font-size: 12px; margin: 6px 0; line-height: 1.5; }
.rmhv-foot-disc strong { color: var(--rmhv-amber); }
.rmhv-footer-bar { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; color: var(--rmhv-muted); font-size: 12px; padding-top: 16px; border-top: 1px solid var(--rmhv-line); }

/* =================== MOBILE STICKY CTA + FAB =================== */
.rmhv-mobile-cta { display: none; position: fixed; left: 12px; right: 12px; bottom: 12px; gap: 8px; z-index: 90; padding: 8px; background: var(--rmhv-glass-2); backdrop-filter: blur(10px); border: 1px solid var(--rmhv-line); border-radius: 999px; box-shadow: 0 20px 50px -20px rgba(0,0,0,.7); }
.rmhv-mcta-btn { flex: 1; text-align: center; padding: 11px 14px; border-radius: 999px; font-size: 13px; color: var(--rmhv-text); background: rgba(255,255,255,.04); font-weight: 600; }
.rmhv-mcta-primary { background: linear-gradient(180deg, var(--rmhv-blood), var(--rmhv-blood-2)); color: #fff5e3; }
@media (max-width: 700px) { .rmhv-mobile-cta { display: flex; } body.rmhv-theme { padding-bottom: 80px; } }

.rmhv-tracker-fab { position: fixed; right: 18px; bottom: 86px; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(180deg, var(--rmhv-amber), var(--rmhv-amber-2)); border: 2px solid rgba(255,255,255,.18); color: #2a1a04; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 18px 36px -10px rgba(240,182,90,.6), 0 0 30px rgba(240,182,90,.25); z-index: 85; cursor: pointer; transition: transform .2s ease; }
.rmhv-tracker-fab:hover { transform: translateY(-2px); }
.rmhv-tracker-fab-count { position: absolute; top: -4px; right: -4px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--rmhv-blood); color: #fff5e3; font-family: var(--rmhv-font-mono); font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; border: 2px solid #07060a; }
@media (min-width: 1024px) { .rmhv-tracker-fab { right: 24px; bottom: 24px; } }

/* Toast accessibility */
.rmhv-toast { font-family: var(--rmhv-font-mono); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }

/* =================== PRODUCT BOX BLOCK =================== */
.rmhv-product-box { background: var(--rmhv-glass-2); border: 1px solid rgba(240,182,90,.25); border-radius: var(--rmhv-radius-lg); padding: 22px; box-shadow: var(--rmhv-shadow); margin: 24px 0; }
.rmhv-pb-head { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.rmhv-pb-title { font-family: var(--rmhv-font-head); font-size: 22px; color: var(--rmhv-bone); margin: 0 0 8px; }
.rmhv-pb-best { color: var(--rmhv-text); margin: 0 0 14px; font-size: 14px; }
.rmhv-pb-pc { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
@media (max-width: 600px) { .rmhv-pb-pc { grid-template-columns: 1fr; } }
.rmhv-pros, .rmhv-cons { font-size: 14px; }
.rmhv-pros strong { color: #9dd6bd; display: block; margin-bottom: 4px; font-family: var(--rmhv-font-mono); font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }
.rmhv-cons strong { color: #ff9a9a; display: block; margin-bottom: 4px; font-family: var(--rmhv-font-mono); font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }
.rmhv-pros ul, .rmhv-cons ul { padding-left: 18px; margin: 0; color: var(--rmhv-text); }
.rmhv-pb-note { color: var(--rmhv-muted); font-size: 12px; margin: 10px 0; }

/* Related products block */
.rmhv-related { background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); padding: 22px; margin: 28px 0; }
.rmhv-related-title { font-family: var(--rmhv-font-head); margin: 0 0 14px; color: var(--rmhv-bone); }
.rmhv-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.rmhv-related-card { background: rgba(20,17,28,.7); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius-sm); padding: 14px; display: flex; flex-direction: column; gap: 6px; }
.rmhv-related-name { font-family: var(--rmhv-font-head); color: var(--rmhv-bone); font-size: 16px; }
.rmhv-related-best { color: var(--rmhv-muted); font-size: 13px; flex: 1; }

/* Disclaimer / unofficial / safety / quick answer boxes */
.rmhv-unofficial-notice, .rmhv-safety-notice { background: rgba(168,20,29,.06); border: 1px solid rgba(168,20,29,.25); border-left: 4px solid var(--rmhv-blood); border-radius: var(--rmhv-radius-sm); padding: 12px 16px; margin: 14px 0; color: var(--rmhv-text); font-size: 13px; }
.rmhv-safety-notice { background: rgba(170,185,211,.06); border-color: rgba(170,185,211,.25); border-left-color: var(--rmhv-moon); }
.rmhv-disclaimer-box { background: rgba(20,17,28,.6); border: 1px solid var(--rmhv-line); border-left: 4px solid var(--rmhv-amber); border-radius: var(--rmhv-radius-sm); padding: 14px 18px; margin: 18px 0; font-size: 14px; }
.rmhv-quick-answer { background: rgba(240,182,90,.06); border: 1px solid rgba(240,182,90,.25); border-radius: var(--rmhv-radius); padding: 16px 20px; margin: 18px 0; }
.rmhv-qa-q { font-family: var(--rmhv-font-head); font-size: 18px; color: var(--rmhv-bone); margin-bottom: 6px; }
.rmhv-qa-a { color: var(--rmhv-text); }
.rmhv-procons { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 18px 0; }
@media (max-width: 600px) { .rmhv-procons { grid-template-columns: 1fr; } }

/* =================== PAGE / ARTICLES =================== */
.rmhv-page, .rmhv-single, .rmhv-archive { max-width: 920px; margin: 0 auto; padding: 60px 20px; }
.rmhv-page-hero, .rmhv-single-hero, .rmhv-archive-hero { margin-bottom: 36px; text-align: center; }
.rmhv-page-title, .rmhv-single-title, .rmhv-archive-title { font-family: var(--rmhv-font-head); font-size: clamp(28px, 4vw, 44px); color: var(--rmhv-bone); margin: 0 0 14px; }
.rmhv-single-meta, .rmhv-archive-sub { color: var(--rmhv-muted); font-size: 14px; font-family: var(--rmhv-font-mono); }
.rmhv-single-thumb { margin: 22px 0; border-radius: var(--rmhv-radius); overflow: hidden; }
.rmhv-page-body, .rmhv-single-body { color: var(--rmhv-text); font-size: 17px; line-height: 1.8; }
.rmhv-page-body h2, .rmhv-single-body h2 { font-family: var(--rmhv-font-head); color: var(--rmhv-bone); margin-top: 2em; }
.rmhv-page-body a, .rmhv-single-body a { color: var(--rmhv-amber); border-bottom: 1px solid rgba(240,182,90,.3); }
.rmhv-archive-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.rmhv-card { background: var(--rmhv-glass-2); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); overflow: hidden; transition: transform .15s ease, border-color .2s ease; }
.rmhv-card:hover { transform: translateY(-2px); border-color: var(--rmhv-amber); }
.rmhv-card-thumb img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.rmhv-card-body { padding: 18px; }
.rmhv-card-title { font-family: var(--rmhv-font-head); font-size: 20px; margin: 0 0 8px; }
.rmhv-card-title a { color: var(--rmhv-bone); }
.rmhv-card-title a:hover { color: var(--rmhv-amber); }
.rmhv-card-meta { color: var(--rmhv-muted); font-size: 12px; font-family: var(--rmhv-font-mono); }
.rmhv-card-excerpt { color: var(--rmhv-text); font-size: 14px; margin: 8px 0; }
.rmhv-card-link { color: var(--rmhv-amber); font-size: 14px; font-weight: 600; }

/* =================== 404 =================== */
.rmhv-404 { max-width: 1100px; margin: 0 auto; padding: 60px 20px 100px; }
.rmhv-404-product { background: linear-gradient(180deg, rgba(40,30,20,.7), rgba(20,15,10,.85)); border: 1px solid rgba(240,182,90,.35); border-radius: var(--rmhv-radius-lg); padding: 32px; margin-bottom: 40px; box-shadow: var(--rmhv-shadow); }
.rmhv-404-pb-meta { display: flex; gap: 8px; margin-bottom: 12px; }
.rmhv-404-pb-title { font-family: var(--rmhv-font-head); font-size: clamp(26px, 4vw, 36px); color: var(--rmhv-bone); margin: 0 0 8px; }
.rmhv-404-pb-desc { color: var(--rmhv-text); margin: 0 0 18px; }
.rmhv-404-hero { text-align: center; margin: 40px 0; }
.rmhv-404-headline { font-family: var(--rmhv-font-head); font-size: clamp(28px, 5vw, 48px); color: var(--rmhv-bone); margin: 0 0 12px; }
.rmhv-404-sub { color: var(--rmhv-muted); margin: 0 0 22px; }
.rmhv-404-search { display: flex; gap: 8px; max-width: 480px; margin: 0 auto; }
.rmhv-404-search input { flex: 1; padding: 12px 16px; border-radius: 999px; border: 1px solid var(--rmhv-line); background: rgba(0,0,0,.4); color: var(--rmhv-text); }
.rmhv-404-search button { padding: 12px 22px; border-radius: 999px; border: 0; background: linear-gradient(180deg, var(--rmhv-blood), var(--rmhv-blood-2)); color: #fff; font-weight: 600; }
.rmhv-404-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-top: 30px; }
.rmhv-404-card { padding: 18px; background: rgba(20,17,28,.7); border: 1px solid var(--rmhv-line); border-radius: var(--rmhv-radius); color: var(--rmhv-bone); display: flex; flex-direction: column; gap: 4px; transition: border-color .2s ease; }
.rmhv-404-card:hover { border-color: var(--rmhv-amber); }
.rmhv-404-card strong { font-family: var(--rmhv-font-head); font-size: 18px; }
.rmhv-404-card span { color: var(--rmhv-muted); font-size: 13px; }

/* =================== MODAL =================== */
.rmhv-modal { position: fixed; inset: 0; background: rgba(0,0,0,.7); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); display: none; align-items: center; justify-content: center; z-index: 1000; padding: 20px; }
.rmhv-modal.rmhv-modal-open { display: flex; animation: rmhvFade .2s ease; }
.rmhv-modal-card { background: linear-gradient(180deg, #1c1828 0%, #14111c 100%); border: 1px solid rgba(240,182,90,.3); border-radius: var(--rmhv-radius-lg); padding: 28px; max-width: 560px; width: 100%; box-shadow: 0 40px 80px -20px rgba(0,0,0,.9); position: relative; }
.rmhv-modal-close { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.06); border: 1px solid var(--rmhv-line); color: var(--rmhv-bone); font-size: 22px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.rmhv-modal-close:hover { color: var(--rmhv-amber); border-color: var(--rmhv-amber); }
.rmhv-modal-head { display: flex; gap: 8px; margin-bottom: 12px; }
.rmhv-modal-title { font-family: var(--rmhv-font-head); font-size: 26px; color: var(--rmhv-bone); margin: 0 0 12px; }
.rmhv-modal-desc { color: var(--rmhv-text); font-size: 15px; line-height: 1.7; margin: 0 0 16px; }
.rmhv-modal-note { color: var(--rmhv-muted); font-size: 12px; margin: 0 0 18px; padding: 10px 14px; background: rgba(240,182,90,.05); border-left: 2px solid var(--rmhv-amber); border-radius: 0 8px 8px 0; }
.rmhv-modal-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.rmhv-hero-fog, .rmhv-hero-river::before, .rmhv-bar-dot, .rmhv-hero-lantern { display: none; }
}
