/* ================================================================
   MIND.CSS — ARCHITECTURA MENTIS
   Izolovaný design systém pro mind.html
   ================================================================ */

:root {
  --m-void:    #020101;
  --m-deep:    #060405;
  --m-dark:    #0a0809;
  --m-surface: #0e0b0d;
  --m-gold:    #ff5e00;
  --m-border:  rgba(255,255,255,0.055);
  --m-head:    'Cinzel', serif;
  --m-body:    'Manrope', sans-serif;
  --m-serif:   'Playfair Display', serif;
  --m-label:   'Rajdhani', sans-serif;
}

/* ── Scroll reveal ── */
.m-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.m-reveal.is-visible { opacity: 1; transform: translateY(0); }
.m-reveal.d1 { transition-delay: 0.12s; }
.m-reveal.d2 { transition-delay: 0.26s; }
.m-reveal.d3 { transition-delay: 0.40s; }

/* ── Shared ── */
.m-eyebrow {
  display: block;
  font-family: var(--m-label);
  font-size: 0.52rem;
  letter-spacing: 8px;
  color: var(--m-gold);
  opacity: 0.48;
  text-transform: uppercase;
}

/* ================================================================
   HERO
   ================================================================ */
.m-hero {
  position: relative;
  height: 100vh;
  min-height: 680px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--m-void);
}
.m-hero__bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 110% 80% at 50% -5%, rgba(36,11,0,0.92) 0%, transparent 62%),
    radial-gradient(ellipse 70% 55% at 50% 52%, rgba(255,94,0,0.07) 0%, transparent 65%),
    radial-gradient(ellipse 40% 30% at 50% 50%, rgba(255,140,0,0.04) 0%, transparent 60%),
    linear-gradient(to bottom, transparent 72%, rgba(6,4,5,0.9) 100%);
}
.m-hero__lines {
  position: absolute; inset: 0;
  display: flex; justify-content: space-evenly; padding: 0 6vw;
  pointer-events: none; overflow: hidden;
}
.m-hero__lines span { width: 1px; height: 100%; background: rgba(255,255,255,0.02); }

.m-hero__eagle {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -54%); pointer-events: none; z-index: 1;
}
.m-hero__eagle img {
  width: clamp(300px, 42vw, 600px);
  opacity: 0.13;
  filter: sepia(1) saturate(2.2) hue-rotate(-18deg) brightness(1.15);
  animation: mEagleBreath 7s ease-in-out infinite;
}
@keyframes mEagleBreath {
  0%, 100% { opacity: 0.11; filter: sepia(1) saturate(2) hue-rotate(-18deg) brightness(1.1); }
  50%       { opacity: 0.17; filter: sepia(1) saturate(2.8) hue-rotate(-12deg) brightness(1.28) drop-shadow(0 0 60px rgba(255,180,0,0.18)); }
}

.m-hero__content {
  position: relative; z-index: 2;
  text-align: center;
  padding: clamp(28px, 4vw, 48px) clamp(20px, 5vw, 80px);
  max-width: 960px; width: 100%;
}
.m-hero__content::before {
  content: '';
  position: absolute; top: 0; left: 0;
  width: 22px; height: 22px;
  border-top: 1px solid rgba(255,94,0,0.28);
  border-left: 1px solid rgba(255,94,0,0.28);
  pointer-events: none;
}
.m-hero__content::after {
  content: '';
  position: absolute; bottom: 0; right: 0;
  width: 22px; height: 22px;
  border-bottom: 1px solid rgba(255,94,0,0.28);
  border-right: 1px solid rgba(255,94,0,0.28);
  pointer-events: none;
}
.m-hero__over {
  display: block;
  font-family: var(--m-label);
  font-size: clamp(0.44rem, 0.7vw, 0.54rem);
  letter-spacing: clamp(6px, 1.2vw, 14px);
  color: var(--m-gold); opacity: 0.4;
  margin-bottom: clamp(32px, 4.5vw, 54px);
}
.m-hero__title {
  display: flex; flex-direction: column; align-items: center;
  margin-bottom: clamp(22px, 3.5vw, 40px);
}
.m-hero__italic {
  font-family: var(--m-serif); font-style: italic; font-weight: 400;
  font-size: clamp(1.8rem, 4vw, 4.5rem);
  color: rgba(255,255,255,0.38);
  letter-spacing: clamp(6px, 1vw, 14px);
  line-height: 1; margin-bottom: 0.08em; display: block;
}
.m-hero__main {
  font-family: var(--m-head); font-weight: 900;
  font-size: clamp(3.8rem, 8.5vw, 10rem);
  color: #fff; letter-spacing: clamp(2px, 0.5vw, 8px);
  line-height: 0.9; display: block;
  text-shadow: 0 0 60px rgba(255,94,0,0.28), 0 0 140px rgba(255,94,0,0.12), 0 2px 0 rgba(0,0,0,0.5);
}
.m-hero__outline {
  font-family: var(--m-head); font-weight: 900;
  font-size: clamp(3.8rem, 8.5vw, 10rem);
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,94,0,0.58);
  letter-spacing: clamp(2px, 0.5vw, 8px);
  line-height: 0.9; display: block;
}
.m-hero__rule {
  width: clamp(60px, 7vw, 90px); height: 1px;
  background: linear-gradient(to right, transparent, rgba(255,94,0,0.68), transparent);
  box-shadow: 0 0 7px rgba(255,94,0,0.22);
  margin: 0 auto clamp(16px, 2.2vw, 26px);
}
.m-hero__sub {
  font-family: var(--m-serif); font-style: italic;
  font-size: clamp(0.85rem, 1.3vw, 1.05rem);
  color: rgba(255,255,255,0.38); margin-bottom: 10px;
}
.m-hero__desc {
  font-family: var(--m-body);
  font-size: clamp(0.72rem, 0.95vw, 0.86rem);
  color: rgba(255,255,255,0.40); letter-spacing: 3px;
  margin-bottom: clamp(44px, 5.5vw, 64px);
}
.m-hero__cta {
  display: inline-flex; align-items: center; gap: 14px;
  font-family: var(--m-label); font-size: 0.62rem; letter-spacing: 6px;
  color: var(--m-gold); border: 1px solid rgba(255,94,0,0.28);
  padding: 18px 40px; text-decoration: none; transition: all 0.45s ease;
}
.m-hero__cta:hover {
  background: rgba(255,94,0,0.07);
  border-color: rgba(255,94,0,0.6); color: #fff; letter-spacing: 8px;
}
.m-hero__cta i { transition: transform 0.4s ease; }
.m-hero__cta:hover i { transform: translateY(5px); }

.m-hero__side {
  position: absolute; right: clamp(20px, 3vw, 48px); top: 50%;
  transform: translateY(-50%) rotate(90deg);
  font-family: var(--m-label); font-size: 0.42rem; letter-spacing: 8px;
  color: rgba(255,255,255,0.09); white-space: nowrap; z-index: 2; pointer-events: none;
}
.m-hero__scroll {
  position: absolute; bottom: clamp(24px, 3.5vw, 44px); left: 50%;
  transform: translateX(-50%); z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  font-family: var(--m-label); font-size: 0.4rem; letter-spacing: 6px;
  color: rgba(255,255,255,0.12); text-decoration: none; transition: color 0.3s ease;
}
.m-hero__scroll:hover { color: rgba(255,94,0,0.4); }
.m-hero__scroll-line {
  display: block; width: 1px; height: clamp(28px, 3.5vw, 44px);
  background: linear-gradient(to bottom, rgba(255,255,255,0.2), transparent);
  animation: mPulse 2.4s ease-in-out infinite;
}
@keyframes mPulse { 0%,100%{opacity:.3} 50%{opacity:1} }

/* ================================================================
   IDENTITAS
   ================================================================ */
.m-identitas {
  padding: clamp(90px, 12vw, 170px) clamp(24px, 8vw, 120px);
  background: var(--m-deep);
}
.m-identitas__inner { max-width: 1160px; margin: 0 auto; }

.m-identitas__top {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(36px, 6vw, 80px); align-items: end;
  padding-bottom: clamp(36px, 5vw, 60px);
  margin-bottom: clamp(48px, 6vw, 80px);
  border-bottom: 1px solid var(--m-border);
}
.m-identitas__h {
  font-family: var(--m-head); font-size: clamp(2rem, 4.5vw, 4rem);
  color: #fff; font-weight: 800; line-height: 1.05;
  letter-spacing: 3px; margin-top: 14px;
}
.m-identitas__h em {
  font-family: var(--m-serif); font-style: italic;
  color: rgba(255,94,0,0.6); font-size: 0.82em;
  font-weight: 400; display: block;
}
.m-identitas__intro {
  font-family: var(--m-serif); font-style: italic;
  font-size: clamp(0.98rem, 1.5vw, 1.25rem);
  color: rgba(255,255,255,0.48); line-height: 1.75;
  border-left: 2px solid rgba(255,94,0,0.28); padding-left: 22px;
}

.m-identitas__stmts { display: flex; flex-direction: column; }
.m-stmt {
  display: grid; grid-template-columns: 72px 1fr;
  gap: clamp(24px, 4vw, 48px);
  padding: clamp(32px, 4.5vw, 52px) 0;
  border-bottom: 1px solid var(--m-border); align-items: start;
}
.m-stmt:last-child { border-bottom: none; }
.m-stmt__n {
  font-family: var(--m-head); font-size: 2.2rem;
  color: rgba(255,94,0,0.1); font-weight: 800;
  line-height: 1; text-align: right; display: block; padding-top: 2px;
}
.m-stmt__head {
  font-family: var(--m-label); font-size: 0.54rem; letter-spacing: 5px;
  color: rgba(255,255,255,0.22); margin-bottom: 12px; font-weight: 600;
}
.m-stmt__text {
  font-family: var(--m-body); font-size: clamp(0.9rem, 1.2vw, 1rem);
  color: rgba(255,255,255,0.66); line-height: 1.95;
}

/* ================================================================
   NUMERALIA
   ================================================================ */
.m-numeralia {
  padding: clamp(52px, 7vw, 88px) clamp(24px, 6vw, 80px);
  background: var(--m-void);
  border-top: 1px solid var(--m-border);
  border-bottom: 1px solid var(--m-border);
}
.m-numeralia__inner {
  max-width: 1060px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  align-items: center;
}
.m-numeralia__sep {
  width: 1px; height: clamp(38px,5vw,56px);
  background: rgba(255,255,255,0.07); justify-self: center;
}
.m-numeralia__item { text-align: center; padding: 8px clamp(10px,2vw,32px); }
.m-numeralia__fig {
  display: block; font-family: var(--m-head);
  font-size: clamp(1.9rem, 3.2vw, 3rem); font-weight: 800;
  color: var(--m-gold); letter-spacing: 2px; margin-bottom: 8px; line-height: 1;
}
.m-numeralia__lbl {
  font-family: var(--m-label); font-size: 0.46rem;
  letter-spacing: 4px; color: rgba(255,255,255,0.18);
  line-height: 1.9; text-transform: uppercase;
}

/* ================================================================
   AXIOMATA
   ================================================================ */
.m-axiomata {
  padding: clamp(90px, 12vw, 160px) clamp(24px, 6vw, 80px);
  background: var(--m-deep);
}
.m-axiomata__hd {
  max-width: 540px; margin: 0 auto clamp(60px, 8vw, 104px); text-align: center;
}
.m-axiomata__title {
  font-family: var(--m-head); font-size: clamp(1.6rem, 2.6vw, 2.5rem);
  color: #fff; font-weight: 600; letter-spacing: 4px; margin: 14px 0 12px;
}
.m-axiomata__sub {
  font-family: var(--m-serif); font-style: italic;
  font-size: clamp(0.86rem, 1.2vw, 1.02rem); color: rgba(255,255,255,0.22);
}
.m-axiomata__grid {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 1px; background: var(--m-border);
}
.m-card {
  position: relative; background: var(--m-dark);
  padding: clamp(40px,5.5vw,68px) clamp(28px,3.5vw,50px);
  overflow: hidden; transition: background 0.4s ease;
}
.m-card:hover { background: var(--m-surface); }
.m-card__wm {
  position: absolute; bottom: -0.1em; right: -0.03em;
  font-family: var(--m-head); font-size: clamp(120px,18vw,210px);
  font-weight: 900; color: rgba(255,255,255,0.016); line-height: 1;
  pointer-events: none; user-select: none; transition: color 0.5s ease;
}
.m-card:hover .m-card__wm { color: rgba(255,94,0,0.035); }
.m-card__in { position: relative; z-index: 1; }
.m-card__title {
  font-family: var(--m-head); font-size: clamp(1.05rem,1.7vw,1.45rem);
  color: #fff; letter-spacing: 5px; font-weight: 600; margin-bottom: 5px;
}
.m-card__sub {
  display: block; font-family: var(--m-label); font-size: 0.52rem;
  letter-spacing: 4px; color: var(--m-gold); opacity: 0.42; margin-bottom: 20px;
}
.m-card__rule {
  width: 26px; height: 1px; background: rgba(255,94,0,0.32);
  margin-bottom: 20px; transition: width 0.4s ease;
}
.m-card:hover .m-card__rule { width: 50px; }
.m-card__text {
  font-family: var(--m-body); font-size: clamp(0.84rem,1.1vw,0.94rem);
  color: rgba(255,255,255,0.58); line-height: 1.94;
}
.m-card__text em { font-style: italic; color: rgba(255,255,255,0.64); }

/* ================================================================
   PANTHEON
   ================================================================ */
.m-pantheon { background: #030202; }
.m-pantheon__hd {
  padding: clamp(80px,10vw,140px) clamp(24px,6vw,80px) clamp(32px,5vw,56px);
  max-width: 1400px; margin: 0 auto;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 40px;
}
.m-pantheon__title {
  font-family: var(--m-head); font-size: clamp(2.2rem,4.5vw,4.2rem);
  color: #fff; font-weight: 800; letter-spacing: 6px; margin-top: 10px; line-height: 1;
}
.m-pantheon__count {
  font-family: var(--m-head); font-size: clamp(2.5rem,6vw,6.5rem);
  color: rgba(255,94,0,0.09); font-weight: 900; line-height: 1; flex-shrink: 0;
}

/* ================================================================
   VISIO
   ================================================================ */
.m-visio {
  padding: clamp(90px,11vw,150px) clamp(24px,6vw,80px);
  background: var(--m-void);
}
.m-visio__hd { text-align: center; margin-bottom: clamp(48px,6vw,72px); }
.m-visio__chapter {
  font-family: var(--m-serif); font-style: italic;
  font-size: clamp(0.96rem,1.5vw,1.3rem);
  color: rgba(255,255,255,0.18); margin-top: 10px;
}
.m-visio__frame { max-width: 960px; margin: 0 auto; }
.m-visio__ratio {
  position: relative; padding-bottom: 56.25%;
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 20px 80px rgba(0,0,0,0.7); transition: border-color 0.4s ease;
}
.m-visio__ratio:hover { border-color: rgba(255,94,0,0.3); }
.m-visio__ratio iframe { position: absolute; top:0; left:0; width:100%; height:100%; }
.m-visio__quote {
  font-family: var(--m-serif); font-style: italic;
  font-size: clamp(0.96rem,1.4vw,1.2rem);
  color: rgba(255,255,255,0.22); text-align: center;
  margin-top: clamp(28px,3.5vw,44px);
}

/* ================================================================
   TRACTATUS
   ================================================================ */
.m-tractatus {
  padding: clamp(90px,12vw,160px) clamp(24px,6vw,80px);
  background: var(--m-deep); border-top: 1px solid var(--m-border);
}
.m-tractatus__in { max-width: 1200px; margin: 0 auto; }
.m-tractatus__lbl {
  display: flex; align-items: center; gap: 22px;
  margin-bottom: clamp(48px,7vw,84px);
}
.m-tractatus__lbl-line { flex:1; height:1px; background: rgba(255,255,255,0.05); }
.m-tractatus__grid {
  display: grid; grid-template-columns: 0.85fr 1.5fr;
  gap: clamp(44px,7vw,96px); align-items: center;
}
.m-tractatus__visual {
  position: relative; background: var(--m-dark);
  border: 1px solid var(--m-border);
  display: flex; align-items: center; justify-content: center;
  min-height: 390px; padding: 56px 36px; overflow: hidden;
}
.m-tractatus__badge { position: absolute; top: 22px; left: 22px; }
.m-tractatus__badge-n {
  display: block; font-family: var(--m-head); font-size: 1.1rem;
  color: var(--m-gold); opacity: 0.48; letter-spacing: 4px;
}
.m-tractatus__badge-y {
  display: block; font-family: var(--m-label); font-size: 0.42rem;
  letter-spacing: 4px; color: rgba(255,255,255,0.14); margin-top: 4px;
}
.m-tractatus__cat {
  display: block; font-family: var(--m-label); font-size: 0.48rem;
  letter-spacing: 5px; color: var(--m-gold); opacity: 0.42; margin-bottom: 18px;
}
.m-tractatus__title {
  font-family: var(--m-head); font-size: clamp(1.35rem,2.4vw,2.1rem);
  color: #fff; font-weight: 600; line-height: 1.3; letter-spacing: 1px; margin-bottom: 13px;
}
.m-tractatus__sub {
  font-family: var(--m-serif); font-style: italic;
  font-size: clamp(0.9rem,1.3vw,1.04rem);
  color: rgba(255,255,255,0.44); margin-bottom: 26px;
}
.m-tractatus__pull {
  border-left: 2px solid rgba(255,94,0,0.3); padding-left: 20px;
  font-family: var(--m-serif); font-style: italic;
  font-size: clamp(0.88rem,1.25vw,1rem);
  color: rgba(255,255,255,0.5); line-height: 1.75; margin-bottom: 26px;
}
.m-tractatus__meta {
  font-family: var(--m-label); font-size: 0.5rem; letter-spacing: 3px;
  color: rgba(255,255,255,0.18); margin-bottom: 36px;
}
.m-tractatus__meta span { margin: 0 8px; }
.m-tractatus__btn {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--m-label); font-size: 0.58rem; letter-spacing: 5px;
  color: var(--m-gold); border-bottom: 1px solid rgba(255,94,0,0.26);
  padding-bottom: 9px; text-decoration: none; transition: all 0.35s ease;
}
.m-tractatus__btn:hover { color: #fff; border-color: rgba(255,255,255,0.3); gap: 20px; }

/* ================================================================
   TABULARIUM
   ================================================================ */
.m-tabularium {
  padding: clamp(90px,12vw,160px) clamp(24px,6vw,80px);
  background: var(--m-void);
}
.m-tabularium__in { max-width: 860px; margin: 0 auto; }
.m-tabularium__hd { margin-bottom: clamp(60px,8vw,96px); }
.m-tabularium__title {
  font-family: var(--m-head); font-size: clamp(2.2rem,4.5vw,4.2rem);
  color: #fff; font-weight: 800; letter-spacing: 6px; margin-top: 12px; line-height: 1;
}
.m-tabularium__list { display: flex; flex-direction: column; }

.m-entry {
  display: grid; grid-template-columns: 52px 1fr;
  gap: clamp(18px,3vw,40px);
  padding: clamp(32px,4.5vw,52px) 0;
  border-bottom: 1px solid var(--m-border); align-items: start;
}
.m-entry:last-child { border-bottom: none; }
.m-entry__n {
  font-family: var(--m-head); font-size: clamp(1.5rem,2.5vw,2.2rem);
  color: rgba(255,94,0,0.11); font-weight: 800;
  line-height: 1; text-align: right; padding-top: 3px;
}
.m-entry__tag {
  display: block; font-family: var(--m-label); font-size: 0.46rem;
  letter-spacing: 5px; color: var(--m-gold); opacity: 0.35; margin-bottom: 7px;
}
.m-entry__title {
  font-family: var(--m-head); font-size: clamp(1rem,1.6vw,1.35rem);
  color: rgba(255,255,255,0.8); letter-spacing: 3px; font-weight: 600;
  margin-bottom: 9px; transition: color 0.3s ease;
}
.m-entry:hover .m-entry__title { color: #fff; }
.m-entry__desc {
  font-family: var(--m-body); font-size: clamp(0.82rem,1.05vw,0.91rem);
  color: rgba(255,255,255,0.3); line-height: 1.85; margin-bottom: 16px;
}
.m-entry__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.m-entry__date {
  font-family: var(--m-label); font-size: 0.48rem;
  letter-spacing: 3px; color: rgba(255,255,255,0.14);
}
.m-entry__link {
  font-family: var(--m-label); font-size: 0.52rem; letter-spacing: 4px;
  color: var(--m-gold); opacity: 0.52;
  display: flex; align-items: center; gap: 8px;
  text-decoration: none; transition: all 0.3s ease;
}
.m-entry__link:hover { opacity: 1; gap: 14px; }
.m-tabularium__cta { margin-top: clamp(56px,7vw,90px); text-align: center; }

/* ================================================================
   FOOTER
   ================================================================ */
.m-footer {
  padding: clamp(64px,8vw,110px) clamp(24px,6vw,80px) clamp(40px,5vw,56px);
  background: var(--m-void); border-top: 1px solid var(--m-border);
}
.m-footer__in { max-width: 1200px; margin: 0 auto; }
.m-footer__top {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 40px; margin-bottom: clamp(32px,4.5vw,52px);
}
.m-footer__name {
  display: block; font-family: var(--m-head);
  font-size: clamp(1.2rem,2vw,1.8rem);
  color: rgba(255,255,255,0.78); letter-spacing: 6px; font-weight: 600; margin-bottom: 6px;
}
.m-footer__tag {
  display: block; font-family: var(--m-label); font-size: 0.46rem;
  letter-spacing: 5px; color: rgba(255,255,255,0.16);
}
.m-footer__links { display: flex; flex-direction: column; align-items: flex-end; gap: 9px; }
.m-footer__email {
  font-family: var(--m-serif); font-size: clamp(0.85rem,1.3vw,1.02rem);
  color: rgba(255,255,255,0.4); text-decoration: none; transition: color 0.3s ease;
}
.m-footer__email:hover { color: var(--m-gold); }
.m-footer__social {
  font-family: var(--m-label); font-size: 0.54rem; letter-spacing: 3px;
  color: rgba(255,255,255,0.18); text-decoration: none;
  display: flex; align-items: center; gap: 8px; transition: color 0.3s ease;
}
.m-footer__social:hover { color: rgba(255,255,255,0.5); }
.m-footer__rule { height:1px; background: rgba(255,255,255,0.05); margin-bottom: clamp(24px,3vw,36px); }
.m-footer__bot {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--m-label); font-size: 0.46rem;
  letter-spacing: 4px; color: rgba(255,255,255,0.12);
}
.m-footer__motto { color: rgba(197,160,89,0.25); letter-spacing: 5px; }
.m-footer__spqr {
  font-family: var(--m-head); font-weight: 900;
  font-size: clamp(2.4rem,5vw,5.5rem);
  letter-spacing: 0.28em; color: rgba(255,255,255,0.055);
  text-align: center; margin-bottom: clamp(20px,3vw,36px);
  pointer-events: none; user-select: none;
}

/* ================================================================
   ROMA — Věčné město
   ================================================================ */
.m-roma {
  background: var(--m-void);
  border-top: 1px solid var(--m-border);
  overflow: hidden;
  position: relative;
}
.m-roma::before {
  content: '';
  position: absolute;
  top: -30%; left: 50%;
  transform: translateX(-50%);
  width: 80%; height: 70%;
  background: radial-gradient(ellipse at center, rgba(180,30,0,0.08) 0%, transparent 68%);
  pointer-events: none;
}
.m-roma__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(80px,11vw,130px) clamp(24px,6vw,80px) 0;
}
.m-roma__head {
  text-align: center;
  margin-bottom: clamp(48px,7vw,80px);
}
.m-roma__caput {
  display: block;
  font-family: var(--m-label);
  font-size: 0.52rem;
  letter-spacing: 6px;
  color: var(--m-gold);
  opacity: 0.5;
  margin-bottom: 12px;
}
.m-roma__spqr {
  display: block;
  font-family: var(--m-head);
  font-size: clamp(0.8rem,1.5vw,1.05rem);
  letter-spacing: 0.5em;
  color: rgba(255,94,0,0.32);
  margin-bottom: 16px;
}
.m-roma__title {
  font-family: var(--m-head);
  font-size: clamp(3.5rem,9vw,7rem);
  letter-spacing: 0.18em;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  text-shadow: 0 0 80px rgba(255,94,0,0.18), 0 2px 0 rgba(0,0,0,0.5);
  margin-bottom: 22px;
}
.m-roma__rule {
  width: 60px; height: 1px;
  background: linear-gradient(to right, transparent, rgba(255,94,0,0.7), transparent);
  margin: 0 auto 22px;
}
.m-roma__caption {
  font-family: var(--m-label);
  font-size: 0.5rem;
  letter-spacing: 5px;
  color: rgba(255,255,255,0.2);
}
.m-roma__grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: clamp(16px,2.5vw,32px);
  margin-bottom: clamp(40px,6vw,64px);
}
.m-roma__box {
  padding: clamp(28px,3.5vw,44px);
  background: var(--m-deep);
  border: 1px solid var(--m-border);
  border-top: 2px solid rgba(255,94,0,0.35);
  position: relative;
  overflow: hidden;
  transition: border-color 0.4s, background 0.4s;
}
.m-roma__box::after {
  content: '';
  position: absolute;
  top: 0; left: -110%;
  width: 100%; height: 1px;
  background: linear-gradient(to right, transparent, rgba(255,94,0,0.65), transparent);
  transition: left 0.7s ease;
}
.m-roma__box:hover::after { left: 110%; }
.m-roma__box:hover { border-color: rgba(255,94,0,0.38); background: var(--m-dark); }
.m-roma__box h3 {
  font-family: var(--m-head);
  font-size: 0.68rem;
  letter-spacing: 4px;
  color: var(--m-gold);
  margin-bottom: 16px;
}
.m-roma__box p {
  font-size: clamp(0.88rem,1.1vw,0.98rem);
  color: rgba(255,255,255,0.5);
  line-height: 1.84;
}
.m-roma__strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3px;
}
.m-roma__photo {
  flex: 0 0 calc((100% - 18px) / 7);
  aspect-ratio: 2/3;
  overflow: hidden;
  position: relative;
}
.m-roma__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(0.42) saturate(0.65) sepia(0.12);
  transition: filter 0.7s ease, transform 1s ease;
  transform: scale(1.06);
  display: block;
}
.m-roma__photo:hover img {
  filter: brightness(0.78) saturate(1.05);
  transform: scale(1.0);
}

/* ================================================================
   FIDES — Základ Evropy
   ================================================================ */
.m-fides {
  background: var(--m-deep);
  border-top: 1px solid var(--m-border);
  overflow: hidden;
  position: relative;
}
.m-fides::before {
  content: '';
  position: absolute;
  bottom: -15%; left: 50%;
  transform: translateX(-50%);
  width: 55%; height: 55%;
  background: radial-gradient(ellipse at center, rgba(197,160,89,0.06) 0%, transparent 68%);
  pointer-events: none;
}
.m-fides__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(80px,11vw,130px) clamp(24px,6vw,80px) 0;
}
.m-fides__head {
  text-align: center;
  margin-bottom: clamp(48px,7vw,80px);
}
.m-fides__orn {
  display: block;
  font-size: 1.1rem;
  color: rgba(197,160,89,0.45);
  margin-bottom: 16px;
  letter-spacing: 10px;
}
.m-fides__label {
  display: block;
  font-family: var(--m-label);
  font-size: 0.52rem;
  letter-spacing: 6px;
  color: rgba(197,160,89,0.6);
  margin-bottom: 12px;
}
.m-fides__title {
  font-family: var(--m-head);
  font-size: clamp(3.5rem,9vw,7rem);
  letter-spacing: 0.18em;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  text-shadow: 0 0 80px rgba(197,160,89,0.14), 0 2px 0 rgba(0,0,0,0.5);
  margin-bottom: 14px;
}
.m-fides__sub {
  display: block;
  font-family: var(--m-label);
  font-size: 0.52rem;
  letter-spacing: 5px;
  color: rgba(255,255,255,0.18);
  margin-bottom: 24px;
}
.m-fides__rule {
  width: 60px; height: 1px;
  background: linear-gradient(to right, transparent, rgba(197,160,89,0.6), transparent);
  margin: 0 auto 28px;
}
.m-fides__grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: clamp(20px,3vw,40px);
  margin-bottom: clamp(32px,5vw,52px);
}
.m-fides__text {
  font-size: clamp(0.9rem,1.15vw,1.01rem);
  color: rgba(255,255,255,0.48);
  line-height: 1.88;
  padding-left: 18px;
  border-left: 1px solid rgba(197,160,89,0.22);
}
.m-fides__latin-block {
  text-align: center;
  padding: clamp(22px,3vw,34px) 0;
  border-top: 1px solid var(--m-border);
  border-bottom: 1px solid var(--m-border);
  margin-bottom: clamp(40px,6vw,64px);
}
.m-fides__latin {
  font-family: var(--m-serif);
  font-style: italic;
  font-size: clamp(1.1rem,2vw,1.5rem);
  color: rgba(197,160,89,0.68);
  letter-spacing: 2px;
  display: block;
  margin-bottom: 10px;
}
.m-fides__latin-trans {
  font-family: var(--m-label);
  font-size: 0.48rem;
  letter-spacing: 5px;
  color: rgba(255,255,255,0.16);
}
.m-fides__strip {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 3px;
}
.m-fides__photo {
  aspect-ratio: 3/2;
  overflow: hidden;
  position: relative;
}
.m-fides__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(0.38) saturate(0.55) sepia(0.18);
  transition: filter 0.7s ease, transform 1s ease;
  transform: scale(1.06);
  display: block;
}
.m-fides__photo:hover img {
  filter: brightness(0.74) saturate(1.0);
  transform: scale(1.0);
}
.m-fides__photo-label {
  position: absolute;
  bottom: 14px; left: 50%;
  transform: translateX(-50%);
  font-family: var(--m-label);
  font-size: 0.4rem;
  letter-spacing: 5px;
  color: rgba(255,255,255,0.5);
  white-space: nowrap;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.m-fides__photo:hover .m-fides__photo-label { opacity: 1; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 960px) {
  .m-identitas__top  { grid-template-columns: 1fr; gap: 22px; }
  .m-identitas__intro { border-left: none; padding-left: 0; border-top: 2px solid rgba(255,94,0,0.16); padding-top: 18px; }
  .m-axiomata__grid  { grid-template-columns: 1fr; }
  .m-tractatus__grid { grid-template-columns: 1fr; }
  .m-pantheon__hd    { flex-direction: column; align-items: flex-start; }
  .m-footer__top     { flex-direction: column; align-items: flex-start; }
  .m-footer__links   { align-items: flex-start; }
  .m-roma__grid      { grid-template-columns: 1fr; }
  .m-fides__grid     { grid-template-columns: 1fr; }
  .m-roma__strip .m-roma__photo { flex: 0 0 calc(25% - 3px); }
  .m-fides__strip    { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 680px) {
  .m-numeralia__inner { grid-template-columns: 1fr 1fr; gap: 28px 0; }
  .m-numeralia__sep   { display: none; }
  .m-stmt             { grid-template-columns: 40px 1fr; gap: 14px; }
  .m-entry            { grid-template-columns: 32px 1fr; gap: 12px; }
  .m-entry__n         { font-size: 1.2rem; }
  .m-hero__side       { display: none; }
  .m-tractatus__visual { min-height: 240px; padding: 36px 20px; }
  .m-footer__bot      { flex-direction: column; gap: 10px; text-align: center; }
  .m-roma__strip .m-roma__photo { flex: 0 0 calc(33.333% - 3px); }
  .m-roma__photo      { aspect-ratio: 1/1; }
  .m-fides__strip     { grid-template-columns: repeat(2,1fr); }
  .m-fides__photo     { aspect-ratio: 1/1; }
  .m-roma__title,
  .m-fides__title     { letter-spacing: 0.1em; }
  .m-fides__text      { padding-left: 12px; }
}
@media (max-width: 480px) {
  .m-roma__inner,
  .m-fides__inner     { padding-left: 18px; padding-right: 18px; }
  .m-roma__strip .m-roma__photo { flex: 0 0 calc(50% - 3px); }
  .m-fides__strip     { grid-template-columns: 1fr; }
  .m-fides__photo     { aspect-ratio: 3/2; }
  .m-roma__title,
  .m-fides__title     { letter-spacing: 0.06em; font-size: clamp(2.8rem,14vw,4rem); }
  .m-roma__box,
  .m-fides__text      { padding: 20px 18px; }
  .m-fides__latin     { font-size: clamp(1rem,4.5vw,1.2rem); }
  .m-roma__grid       { gap: 12px; }
}

/* ================================================================
   ██████╗ ██████╗ ███████╗███╗   ███╗██╗██╗   ██╗███╗   ███╗
   ██╔══██╗██╔══██╗██╔════╝████╗ ████║██║██║   ██║████╗ ████║
   ██████╔╝██████╔╝█████╗  ██╔████╔██║██║██║   ██║██╔████╔██║
   ██╔═══╝ ██╔══██╗██╔══╝  ██║╚██╔╝██║██║██║   ██║██║╚██╔╝██║
   ██║     ██║  ██║███████╗██║ ╚═╝ ██║██║╚██████╔╝██║ ╚═╝ ██║
   LAYER — WORLD-CLASS INTERACTION SYSTEM
   ================================================================ */

/* ── I. CINEMATIC INTRO ─────────────────────────────────────── */

/* ── II. CINEMATIC INTRO (ne loader — žádný progress bar) ────── */
.m-cin {
  position: fixed; inset: 0;
  background: #000;
  z-index: 99999;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: clamp(16px,2.5vw,28px);
  pointer-events: none;
}
.m-cin.is-exit {
  animation: mCinExit 0.65s cubic-bezier(0.7,0,0.85,1) forwards;
}
@keyframes mCinExit {
  to { opacity: 0; transform: scale(1.05); visibility: hidden; }
}

/* Eagle */
.m-cin__eagle {
  width: clamp(52px,7vw,88px); height: auto;
  opacity: 0;
  filter: drop-shadow(0 0 22px #ff5e00) drop-shadow(0 0 50px rgba(255,94,0,0.35));
  animation: mCinEagleIn 0.55s cubic-bezier(0.16,1,0.3,1) forwards 0.1s;
}
@keyframes mCinEagleIn {
  from { opacity:0; transform:scale(0.65) translateY(12px); }
  to   { opacity:1; transform:scale(1)    translateY(0); }
}

/* S · P · Q · R */
.m-cin__spqr {
  font-family: var(--m-head); font-weight: 900;
  font-size: clamp(2.2rem,6vw,5rem);
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,0.55);
  letter-spacing: 0.35em;
  line-height: 1;
  opacity: 0;
  animation: mCinSpqrIn 0.7s cubic-bezier(0.16,1,0.3,1) forwards 0.35s;
}
@keyframes mCinSpqrIn {
  from { opacity:0; letter-spacing:0.65em; filter:blur(6px); }
  to   { opacity:1; letter-spacing:0.35em; filter:blur(0); }
}

/* Fire line */
.m-cin__line {
  height: 1px; width: 0;
  background: linear-gradient(to right,
    transparent,
    #ff2200 10%,
    #ff5e00 35%,
    #ffcc00 50%,
    #ff5e00 65%,
    #ff2200 90%,
    transparent);
  box-shadow: 0 0 12px rgba(255,94,0,0.7), 0 0 30px rgba(255,200,0,0.25);
  animation: mCinLineIn 0.7s cubic-bezier(0.4,0,0.2,1) forwards 0.7s;
}
@keyframes mCinLineIn { to { width: clamp(180px,28vw,380px); } }

/* Subtitle */
.m-cin__sub {
  font-family: var(--m-label); font-size: clamp(0.44rem,0.75vw,0.58rem);
  letter-spacing: 10px; color: rgba(255,94,0,0.55);
  text-transform: uppercase;
  opacity: 0;
  animation: mCinSubIn 0.55s ease forwards 1.0s;
}
@keyframes mCinSubIn { to { opacity:1; } }

@keyframes mLdrUp   { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }


/* ── III. SCROLL PROGRESS (GOLD LINE) ───────────────────────── */
.m-scroll-progress {
  position: fixed; top: 0; left: 0; height: 2px;
  background: linear-gradient(to right, var(--m-gold), rgba(255,94,0,0.4));
  width: 0; z-index: 9990; pointer-events: none;
  box-shadow: 0 0 8px rgba(255,94,0,0.5);
}

/* ── IV. HERO LINES ENTRANCE ────────────────────────────────── */
.m-hero__lines span {
  transform-origin: top center;
  transform: scaleY(0); opacity: 0;
  animation: mLinesIn 2.5s cubic-bezier(0.16,1,0.3,1) forwards;
}
.m-hero__lines span:nth-child(1) { animation-delay: 0.04s; }
.m-hero__lines span:nth-child(2) { animation-delay: 0.11s; }
.m-hero__lines span:nth-child(3) { animation-delay: 0.19s; }
.m-hero__lines span:nth-child(4) { animation-delay: 0.27s; }
.m-hero__lines span:nth-child(5) { animation-delay: 0.35s; }
@keyframes mLinesIn { to { transform: scaleY(1); opacity: 1; } }

/* ── V. HERO CTA FILL SWEEP ─────────────────────────────────── */
.m-hero__cta {
  position: relative; overflow: hidden;
}
.m-hero__cta::before {
  content: ''; position: absolute; inset: 0;
  background: var(--m-gold);
  transform: translateX(-102%);
  transition: transform 0.5s cubic-bezier(0.4,0,0.2,1);
  z-index: 0;
}
.m-hero__cta:hover::before  { transform: translateX(0); }
.m-hero__cta span,
.m-hero__cta i { position: relative; z-index: 1; }
.m-hero__cta:hover {
  color: var(--m-void) !important;
  border-color: var(--m-gold);
  letter-spacing: 8px;
}

/* Scroll line pulse */
.m-hero__scroll-line {
  animation: mScrollLine 2.2s ease-in-out infinite;
}
@keyframes mScrollLine {
  0%   { transform: scaleY(0); transform-origin: top; opacity: 0; }
  40%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
  60%  { transform: scaleY(1); transform-origin: bottom; opacity: 1; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

/* ── VI. REVEAL — UPGRADED EASING ───────────────────────────── */
.m-reveal {
  transition: opacity 0.95s cubic-bezier(0.16,1,0.3,1),
              transform 0.95s cubic-bezier(0.16,1,0.3,1) !important;
}

/* ── VII. CARD — 3D TILT + GLOW BORDER ──────────────────────── */
.m-card {
  transform-style: preserve-3d;
  will-change: transform;
  transition: background 0.4s ease, box-shadow 0.5s ease;
}
.m-card::after {
  content: ''; position: absolute; inset: 0;
  border: 1px solid transparent; pointer-events: none;
  transition: border-color 0.45s ease, box-shadow 0.45s ease;
}
.m-card:hover { box-shadow: 0 0 60px rgba(0,0,0,0.55), inset 0 0 40px rgba(255,94,0,0.025); }
.m-card:hover::after {
  border-color: rgba(255,94,0,0.42);
  box-shadow: 0 0 18px rgba(255,94,0,0.18);
  animation: mFireBorder 3s ease-in-out infinite;
}

/* ── VIII. TABULARIUM ENTRY HOVER ───────────────────────────── */
.m-entry { position: relative; }
.m-entry::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 0; background: rgba(255,94,0,0.028);
  transition: width 0.55s cubic-bezier(0.4,0,0.2,1);
  pointer-events: none;
}
.m-entry:hover::before { width: 100%; }
.m-entry__n { transition: color 0.4s ease; }
.m-entry:hover .m-entry__n { color: rgba(255,94,0,0.22); }

/* ── IX. OBSIDIAN GALLERY ENTRY ─────────────────────────────── */
.obsidian-entry {
  transition: transform 0.55s cubic-bezier(0.25,1,0.5,1), box-shadow 0.55s ease;
  will-change: transform;
}
.obsidian-entry:hover {
  box-shadow: 0 0 0 1px rgba(255,94,0,0.38), 0 32px 64px rgba(0,0,0,0.65);
  transform: translateY(-5px) scale(1.006);
}

/* ── X. NUMERALIA COUNTER ────────────────────────────────────── */
.m-numeralia__fig {
  transition: color 0.4s ease;
}
.m-numeralia__item:hover .m-numeralia__fig { color: #fff; }

/* ── XI. FOOTER SPQR REVEAL ─────────────────────────────────── */
.m-footer__spqr {
  transition: letter-spacing 0.9s cubic-bezier(0.16,1,0.3,1),
              opacity 0.9s ease, color 0.6s ease,
              -webkit-text-stroke 0.6s ease, filter 0.9s ease;
  cursor: default;
}
.m-footer__spqr.is-revealed {
  animation: mSpqrReveal 1.4s cubic-bezier(0.16,1,0.3,1) forwards;
}
.m-footer__spqr:hover {
  color: transparent;
  -webkit-text-stroke: 1px rgba(197,160,89,0.28);
  letter-spacing: 0.40em;
}
@keyframes mSpqrReveal {
  from { opacity:0; letter-spacing:0.6em; filter:blur(5px); }
  to   { opacity:1; letter-spacing:0.28em; filter:blur(0); }
}

/* ── XII. BTN-IMPERIAL FILL SWEEP ───────────────────────────── */
.btn-imperial {
  position: relative; overflow: hidden; will-change: transform;
  border-color: rgba(255,94,0,0.45) !important;
  color: rgba(255,255,255,0.75) !important;
}
.btn-imperial::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, #cc0000 0%, #ff5e00 100%);
  transform: translateX(-102%);
  transition: transform 0.45s cubic-bezier(0.4,0,0.2,1); z-index: 0;
}
.btn-imperial:hover::before { transform: translateX(0); }
.btn-imperial > * { position: relative; z-index: 1; }
.btn-imperial { position: relative; z-index: 1; }
.btn-imperial:hover {
  color: #fff !important;
  border-color: #cc0000 !important;
  box-shadow: 0 0 36px rgba(200,0,0,0.4), 0 0 60px rgba(255,94,0,0.15) !important;
  letter-spacing: 6px;
  transition: letter-spacing 0.4s ease, color 0.3s, border-color 0.3s, box-shadow 0.3s;
}

/* ── XIII. NAV LINK UNDERLINE ────────────────────────────────── */
.nav-roman-container .nav-center a { position: relative; }
.nav-roman-container .nav-center a::after {
  content: ''; position: absolute; bottom: -3px; left: 0;
  width: 0; height: 1px; background: var(--m-gold);
  transition: width 0.35s cubic-bezier(0.4,0,0.2,1);
}
.nav-roman-container .nav-center a:hover::after { width: 100%; }

/* ── XIV. SECTION TRANSITION — NOISE OVERLAY ────────────────── */
.noise-overlay {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  background-size: 180px 180px;
  opacity: 0.028;
}

/* ── XV. TRACTATUS BTN MAGNETIC AREA ────────────────────────── */
.m-tractatus__btn {
  will-change: transform; display: inline-flex; align-items: center;
  gap: 12px; transition: color 0.35s ease, border-color 0.35s ease, gap 0.35s ease;
}

/* ── XVI. EYEBROW REVEAL ANIMATION ──────────────────────────── */
.m-eyebrow {
  overflow: hidden; display: block;
}
.m-eyebrow.is-visible {
  animation: mEyebrowIn 0.7s cubic-bezier(0.16,1,0.3,1) forwards;
}
@keyframes mEyebrowIn {
  from { opacity:0; transform:translateX(-10px); }
  to   { opacity:0.48; transform:none; }
}

/* ── XVII. LAVA EXTRAS — pulsující glow, hover intenzita ─────── */

/* Hero rule — pulse animace */
.m-hero__rule {
  animation: mRulePulse 3s ease-in-out infinite;
}
@keyframes mRulePulse {
  0%,100% { box-shadow: 0 0 0px rgba(255,94,0,0); width: 48px; }
  50%     { box-shadow: 0 0 18px rgba(255,94,0,0.55); width: 64px; }
}

/* Hero CTA — pulsující border glow */
.m-hero__cta {
  box-shadow: 0 0 0 rgba(255,94,0,0);
  animation: mCtaGlow 4s ease-in-out infinite;
}
@keyframes mCtaGlow {
  0%,100% { box-shadow: 0 0 0px rgba(255,94,0,0); }
  50%     { box-shadow: 0 0 24px rgba(255,94,0,0.2); }
}

/* Numeralia — lava glow na hover */
.m-numeralia__item {
  transition: transform 0.4s cubic-bezier(0.25,1,0.5,1);
}
.m-numeralia__item:hover {
  transform: translateY(-4px);
}
.m-numeralia__item:hover .m-numeralia__fig {
  color: #fff;
  text-shadow: 0 0 30px rgba(255,94,0,0.7);
}

/* Stmt numbers — reveal glow */
.m-stmt:hover .m-stmt__n {
  color: rgba(255,94,0,0.3);
  text-shadow: 0 0 20px rgba(255,94,0,0.2);
  transition: color 0.4s ease, text-shadow 0.4s ease;
}

/* Hero background — ambient lava pulse */
.m-hero__bg {
  animation: mBgBreath 8s ease-in-out infinite alternate;
}
@keyframes mBgBreath {
  from { opacity: 0.85; }
  to   { opacity: 1; }
}

/* Obsidian entry quote — orange highlight na hover */
.obsidian-entry:hover .obsidian-entry-quote {
  color: rgba(255,94,0,0.85);
  transition: color 0.4s ease;
}

/* Tractatus pull quote — left border glow */
.m-tractatus__pull {
  border-left-color: rgba(255,94,0,0.35);
  transition: border-left-color 0.4s ease;
}
.m-tractatus:hover .m-tractatus__pull {
  border-left-color: rgba(255,94,0,0.6);
}

/* Entry link — lava hover */
.m-entry__link:hover {
  color: var(--m-gold);
  text-shadow: 0 0 12px rgba(255,94,0,0.5);
}

/* Btn imperial — lava glow hover */
.btn-imperial:hover {
  box-shadow: 0 0 32px rgba(255,94,0,0.35);
}

/* M-card hover — ambient lava glow */
.m-card:hover {
  box-shadow: 0 0 60px rgba(0,0,0,0.55),
              0 0 40px rgba(255,94,0,0.06),
              inset 0 0 30px rgba(255,94,0,0.015);
}

/* ================================================================
   XVIII. FIRE CYCLING — oranžová ↔ červená ↔ žlutá
   ================================================================ */

/* Keyframes pro fire-cycle barev */
@keyframes mFireCycle {
  0%   { color: #ff5e00; text-shadow: 0 0 18px rgba(255,94,0,0.55); }
  30%  { color: #ff2200; text-shadow: 0 0 18px rgba(255,34,0,0.55); }
  65%  { color: #ffcc00; text-shadow: 0 0 22px rgba(255,204,0,0.5); }
  100% { color: #ff5e00; text-shadow: 0 0 18px rgba(255,94,0,0.55); }
}

@keyframes mFireGlow {
  0%   { box-shadow: 0 0 8px rgba(255,94,0,0.55); background: #ff5e00; }
  30%  { box-shadow: 0 0 8px rgba(255,34,0,0.6);  background: #ff2200; }
  65%  { box-shadow: 0 0 14px rgba(255,204,0,0.5); background: #ffcc00; }
  100% { box-shadow: 0 0 8px rgba(255,94,0,0.55); background: #ff5e00; }
}

@keyframes mFireBorder {
  0%   { border-color: rgba(255,94,0,0.45);  box-shadow: 0 0 14px rgba(255,94,0,0.2); }
  33%  { border-color: rgba(255,34,0,0.45);  box-shadow: 0 0 14px rgba(255,34,0,0.2); }
  66%  { border-color: rgba(255,204,0,0.45); box-shadow: 0 0 18px rgba(255,204,0,0.2); }
  100% { border-color: rgba(255,94,0,0.45);  box-shadow: 0 0 14px rgba(255,94,0,0.2); }
}

/* Scroll progress bar — fire gradient animace */
.m-scroll-progress {
  background: linear-gradient(to right, #ff2200, #ff5e00, #ffcc00, #ff5e00);
  background-size: 200% 100%;
  animation: mProgressFire 2.5s linear infinite;
}
@keyframes mProgressFire {
  0%   { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}

/* Hero rule — fire cycle */
.m-hero__rule {
  animation: mRulePulse 3s ease-in-out infinite, mFireGlowLine 4s ease-in-out infinite;
}
@keyframes mFireGlowLine {
  0%,100% { background: rgba(255,94,0,0.38);  box-shadow: 0 0 12px rgba(255,94,0,0.4); }
  33%     { background: rgba(255,34,0,0.38);   box-shadow: 0 0 12px rgba(255,34,0,0.45); }
  66%     { background: rgba(255,204,0,0.38);  box-shadow: 0 0 18px rgba(255,204,0,0.4); }
}

/* Numeralia figures — fire cycle na hover */
.m-numeralia__item:hover .m-numeralia__fig {
  animation: mFireCycle 2.5s ease-in-out infinite;
  color: unset;
  text-shadow: unset;
}

/* Hero eyebrow overline — fire cycle (subtle) */
.m-hero__over {
  animation: mOverFire 6s ease-in-out infinite;
}
@keyframes mOverFire {
  0%,100% { color: rgba(255,94,0,0.4); }
  40%     { color: rgba(255,34,0,0.4); }
  70%     { color: rgba(255,204,0,0.38); }
}

/* CTA button border — fire cycle při hoveru */
.m-hero__cta:hover {
  animation: mFireBorder 2.5s ease-in-out infinite;
  color: var(--m-void) !important;
  letter-spacing: 8px;
}

/* M-cin fire line doprovod — ember particly efekt */
.m-cin__line::after {
  content: '';
  position: absolute; right: -4px; top: -3px;
  width: 7px; height: 7px; border-radius: 50%;
  background: #ffcc00;
  box-shadow: 0 0 10px #ffcc00, 0 0 20px rgba(255,94,0,0.8);
  opacity: 0;
  animation: mCinEmber 0.7s ease forwards 1.35s;
}
.m-cin__line { position: relative; overflow: visible; }
@keyframes mCinEmber {
  0%   { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-16px) scale(0.3); }
}

/* Obsidian gallery count */
.m-pantheon__count {
  animation: mFireCycle 5s ease-in-out infinite;
  opacity: 1 !important;
}

/* Tabularium entry number — fire na hover */
.m-entry:hover .m-entry__n {
  animation: mFireCycle 2s ease-in-out infinite;
}

/* Tractatus badge number */
.m-tractatus__badge-n {
  animation: mFireCycle 4s ease-in-out infinite;
  opacity: 1 !important;
}
