:root{
  --red:#C41E3A;
  --red-dark:#8B0000;
  --red-deep:#5C0000;
  --gold:#D4AF37;
  --gold-light:#F4D03F;
  --cream:#F5E6D3;
  --paper:#FAF3E7;
  --ink:#1A1A1A;
  --ink-soft:#3D2B1F;
  --black:#0D0D0D;
  --serif:'PT Serif', Georgia, serif;
  --display:'Russo One', 'Arial Black', sans-serif;
  --cond:'Oswald', sans-serif;
  --script:'Marck Script', cursive;
}

/* DARK THEME OVERRIDES */
[data-theme="dark"]{
  --paper:#1A1410;
  --cream:#252018;
  --ink:#F5E6D3;
  --ink-soft:#C5B59A;
  --black:#000;
}
[data-theme="dark"] body{
  background:var(--paper);
}
[data-theme="dark"] .nav-logo{color:var(--gold)}
[data-theme="dark"] .about-card{background:linear-gradient(135deg, var(--red) 0%, var(--red-dark) 100%)}
[data-theme="dark"] .rep-card{background:linear-gradient(135deg, #2A2218 0%, #1A1410 100%);border-color:var(--gold)}
[data-theme="dark"] .ach-card{background:#252018;border-left-color:var(--gold)}
[data-theme="dark"] .culture-card{background:#252018;border-color:var(--gold)}
[data-theme="dark"] .arch-item{border-color:var(--gold)}
[data-theme="dark"] .poster{border-color:var(--gold)}
[data-theme="dark"] .story{background:#252018;border-color:var(--gold)}
[data-theme="dark"] .latest-card{background:#252018;border-color:rgba(212,175,55,0.3)}
[data-theme="dark"] .latest-img{filter:brightness(0.85)}
[data-theme="dark"] .modal{background:var(--cream);border-color:var(--gold)}
[data-theme="dark"] .map-info{background:var(--cream);border-color:var(--gold)}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--serif);
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
}

/* Paper texture overlay */
body::before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%, rgba(139,0,0,0.03) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(212,175,55,0.04) 0%, transparent 50%);
  z-index:1;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.container{max-width:1280px;margin:0 auto;padding:0 24px;position:relative;z-index:2}

/* ==================== NAV ==================== */
.nav{
  position:fixed;
  top:0;left:0;right:0;
  background:var(--red-deep);
  border-bottom:3px solid var(--gold);
  z-index:1000;
  padding:0;
  box-shadow:0 4px 20px rgba(0,0,0,0.4);
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:1400px;
  margin:0 auto;
  padding:0 24px;
  gap:24px;
  height:60px;
}
.nav-left{display:flex;align-items:center;gap:14px;flex-shrink:0}
.nav-logo{display:flex;align-items:center;gap:10px;font-family:var(--display);color:var(--gold);font-size:18px;letter-spacing:2px;flex-shrink:0}
.nav-logo svg{width:30px;height:30px}
.nav-logo-text{display:flex;flex-direction:column;line-height:1}
.nav-logo-text small{font-family:var(--cond);font-size:10px;color:var(--cream);opacity:0.7;letter-spacing:3px;margin-top:3px;font-weight:400}

.nav-menu{
  display:flex;
  gap:4px;
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:1px;
  font-size:12px;
  font-weight:500;
  flex:1;
  justify-content:center;
  position:relative;
}
.nav-menu a{
  color:var(--cream);
  transition:all .2s;
  padding:8px 12px;
  border-radius:2px;
  white-space:nowrap;
}
.nav-menu a:hover{color:var(--gold-light);background:rgba(212,175,55,0.12)}

/* Пункт "Ещё" — для неумещающихся пунктов меню */
.nav-more{
  position:relative;
  display:none;
}
.nav-more.show{display:flex}
.nav-more-btn{
  background:transparent;
  border:none;
  color:var(--cream);
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:1px;
  font-size:12px;
  font-weight:600;
  padding:8px 14px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:6px;
  border-radius:2px;
  transition:all .2s;
}
.nav-more-btn:hover{background:rgba(212,175,55,0.12);color:var(--gold-light)}
.nav-more-btn svg{width:10px;height:10px;fill:currentColor;transition:transform .2s}
.nav-more.open .nav-more-btn svg{transform:rotate(180deg)}
.nav-more-dropdown{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:180px;
  background:var(--red-deep);
  border:1px solid var(--gold);
  padding:8px;
  display:none;
  flex-direction:column;
  gap:2px;
  z-index:1100;
  box-shadow:0 8px 20px rgba(0,0,0,0.5);
}
.nav-more.open .nav-more-dropdown{display:flex}
.nav-more-dropdown a{
  padding:8px 12px;
  font-size:12px;
  border-radius:2px;
}

.nav-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}
.nav-action{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;
  background:transparent;
  border:1px solid transparent;
  color:var(--cream);
  cursor:pointer;
  transition:all .2s;
  border-radius:2px;
  font-family:var(--cond);
  font-weight:700;
  font-size:13px;
  padding:0;
}
.nav-action:hover{background:rgba(212,175,55,0.15);color:var(--gold-light);border-color:rgba(212,175,55,0.4)}
.nav-action svg{width:16px;height:16px;fill:currentColor}
.nav-action.font-btn{font-size:11px}
.nav-action.font-btn.active{background:var(--gold);color:var(--red-deep);border-color:var(--gold)}
.nav-action.font-btn.active:hover{background:var(--gold-light);color:var(--red-deep)}

.nav-divider{width:1px;height:20px;background:rgba(212,175,55,0.25);margin:0 4px}

.nav-search-wrap{position:relative;display:flex;align-items:center}
.nav-search-input{
  width:0;opacity:0;
  background:rgba(0,0,0,0.4);
  border:1px solid rgba(212,175,55,0.4);
  color:var(--cream);
  font-family:var(--cond);
  font-size:13px;
  padding:6px 0;
  transition:all .3s;
  outline:none;
  letter-spacing:0.5px;
  height:32px;
}
.nav-search-wrap.open .nav-search-input{width:160px;opacity:1;padding:6px 12px;margin-right:4px}
.nav-search-input::placeholder{color:rgba(245,230,211,0.6)}
.nav-search-input:focus{border-color:var(--gold)}

.nav-social{display:flex;gap:2px;margin-left:2px}
.nav-social a{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;
  border:1px solid transparent;
  border-radius:2px;
  transition:all .2s;
}
.nav-social a:hover{background:rgba(212,175,55,0.15);border-color:rgba(212,175,55,0.4);transform:translateY(-1px)}
.nav-social svg{width:18px;height:18px;fill:var(--cream);transition:fill .2s}
.nav-social a:hover svg{fill:var(--gold-light)}

.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;width:32px;height:32px;align-items:center;justify-content:center}
.nav-burger span{width:22px;height:2px;background:var(--gold);transition:.3s}

/* Mobile panel — hidden by default on ALL widths, only shown when .open AND inside mobile breakpoint */
.mobile-panel{display:none}

/* Progress bar */
.progress-bar{
  position:fixed;
  top:0;left:0;
  height:2px;
  background:linear-gradient(90deg, var(--gold), var(--gold-light));
  width:0%;
  z-index:1001;
  transition:width .1s;
  box-shadow:0 0 8px rgba(212,175,55,0.7);
}

/* Back to top button */
.back-to-top{
  position:fixed;
  bottom:24px;right:24px;
  width:44px;height:44px;
  background:var(--red);
  color:var(--gold);
  border:2px solid var(--gold);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  z-index:999;
  opacity:0;
  pointer-events:none;
  transition:all .3s;
  font-size:20px;
  font-family:var(--display);
  box-shadow:0 4px 15px rgba(0,0,0,0.4);
}
.back-to-top.visible{opacity:1;pointer-events:auto}
.back-to-top:hover{background:var(--gold);color:var(--red-deep);transform:translateY(-3px)}

/* Toast notification */
.toast{
  position:fixed;
  top:74px;right:24px;
  background:var(--ink);
  color:var(--gold);
  padding:12px 20px;
  font-family:var(--cond);
  font-size:13px;
  letter-spacing:0.5px;
  border:1px solid var(--gold);
  z-index:2000;
  transform:translateX(400px);
  transition:transform .3s;
  box-shadow:0 8px 25px rgba(0,0,0,0.4);
  max-width:320px;
}
.toast.show{transform:translateX(0)}

/* Clock widget in hero instead of nav */
.hero-clock{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  padding:6px 14px;
  background:rgba(0,0,0,0.3);
  border:1px solid rgba(212,175,55,0.4);
  border-radius:2px;
  font-family:var(--cond);
  font-size:12px;
  color:var(--cream);
  letter-spacing:1px;
}
.hero-clock-time{color:var(--gold);font-weight:700;font-size:14px}
.hero-clock-label{opacity:0.7;text-transform:uppercase;letter-spacing:1.5px}

@media(max-width:1200px){
  .nav-menu{font-size:11px;gap:2px}
  .nav-menu a{padding:8px 8px}
}
@media(max-width:1050px){
  .nav-menu{display:none}
  .nav-burger{display:flex}
  .nav-actions{display:none}
  .mobile-panel{
    display:none;
    position:absolute;
    top:100%;left:0;right:0;
    background:var(--red-deep);
    padding:18px 24px;
    border-bottom:3px solid var(--gold);
    flex-direction:column;
    gap:14px;
  }
  .mobile-panel.open{display:flex}
  .mobile-panel .nav-menu{display:flex;flex-direction:column;align-items:stretch;gap:4px;font-size:14px}
  .mobile-panel .nav-menu a{padding:10px 14px;border-bottom:1px solid rgba(212,175,55,0.15)}
  .mobile-panel .nav-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;padding-top:8px;border-top:1px solid rgba(212,175,55,0.2)}
  .mobile-panel .nav-social{display:flex;justify-content:center;gap:8px;margin:0}
  .mobile-panel .nav-search-wrap{display:flex;justify-content:center;width:100%}
  .mobile-panel .nav-search-input{width:100%;opacity:1;padding:10px 14px}
  .mobile-panel .nav-divider{display:none}
}
@media(max-width:600px){
  .back-to-top{bottom:16px;right:16px;width:40px;height:40px;font-size:18px}
  .toast{top:70px;right:12px;left:12px;max-width:none}
}

/* ==================== HERO ==================== */
.hero{
  min-height:auto;
  background:
    radial-gradient(circle at 20% 50%, rgba(212,175,55,0.18) 0%, transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(196,30,58,0.4) 0%, transparent 60%),
    linear-gradient(135deg, #3A0000 0%, #5C0000 35%, #8B0000 70%, #5C0000 100%);
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--cream);
  overflow:hidden;
  padding:100px 24px 70px;
}

/* Крутящиеся лучи — основная анимация */
.hero::before{
  content:'';
  position:absolute;
  inset:-50%;
  background:
    repeating-conic-gradient(from 0deg at 50% 50%, transparent 0deg, transparent 11deg, rgba(212,175,55,0.09) 11deg, rgba(212,175,55,0.09) 12deg);
  animation:rotate 80s linear infinite;
  z-index:0;
}

/* Восходящие лучи снизу — как на советских плакатах */
.hero-rays{
  position:absolute;
  bottom:-30%;left:50%;
  transform:translateX(-50%);
  width:250%;height:130%;
  background:
    repeating-conic-gradient(from 270deg at 50% 100%, transparent 0deg, transparent 5deg, rgba(212,175,55,0.06) 5deg, rgba(212,175,55,0.06) 6deg);
  pointer-events:none;
  z-index:0;
  animation:rotate 120s linear infinite reverse;
  opacity:0.7;
}

/* Золотые декоративные линии */
.hero-stripe-top{
  position:absolute;
  top:60px;left:0;right:0;
  height:2px;
  background:linear-gradient(90deg, transparent 0%, var(--gold) 20%, var(--gold) 80%, transparent 100%);
  opacity:0.5;
  z-index:3;
}
.hero-stripe-bottom{
  position:absolute;
  bottom:30px;left:50%;
  transform:translateX(-50%);
  width:120px;height:2px;
  background:var(--gold);
  opacity:0.5;
  z-index:3;
}

/* Мерцающие звёзды */
.hero-stars{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
}
.hero-star{
  position:absolute;
  color:var(--gold);
  animation:twinkle 3s ease-in-out infinite;
}
@keyframes twinkle{
  0%,100%{opacity:0.15;transform:scale(0.7)}
  50%{opacity:1;transform:scale(1.2)}
}
@keyframes rotate{to{transform:rotate(360deg)}}

.hero-content{position:relative;z-index:5;max-width:1000px}

/* Top emblem ribbon */
.hero-ribbon{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  padding:8px 24px;
  background:rgba(0,0,0,0.45);
  border:1px solid rgba(212,175,55,0.5);
  border-radius:2px;
  margin:0 auto 32px;
  width:fit-content;
  font-family:var(--cond);
  font-size:11px;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:600;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.hero-ribbon::before, .hero-ribbon::after{
  content:'★';
  font-size:12px;
  opacity:0.7;
}

.hero-emblem-wrap{
  position:relative;
  display:inline-block;
  margin-bottom:30px;
  transition:transform .4s ease-out;
  will-change:transform;
}
.hero-emblem-wrap::before{
  content:'';
  position:absolute;
  inset:-20px;
  border:1px solid rgba(212,175,55,0.25);
  border-radius:50%;
  animation:rotate 80s linear infinite;
  pointer-events:none;
}
.hero-emblem-wrap::after{
  content:'';
  position:absolute;
  inset:-40px;
  border:1px dashed rgba(212,175,55,0.15);
  border-radius:50%;
  animation:rotate 120s linear infinite reverse;
  pointer-events:none;
}
/* Вращающийся текст вокруг эмблемы */
.hero-emblem-orbit{
  position:absolute;
  top:50%;left:50%;
  width:280px;height:280px;
  transform:translate(-50%,-50%);
  animation:rotate 40s linear infinite;
  pointer-events:none;
  z-index:1;
}
.hero-emblem-orbit text{
  font-family:var(--cond);
  font-size:13px;
  fill:var(--gold);
  letter-spacing:6px;
  font-weight:600;
  opacity:0.7;
}
.hero-emblem{
  width:120px;height:120px;
  filter:drop-shadow(0 0 30px rgba(212,175,55,0.7));
  position:relative;
  z-index:2;
}

.hero h1{
  font-family:var(--display);
  font-size:clamp(56px,11vw,128px);
  letter-spacing:8px;
  color:var(--gold);
  text-shadow:
    0 0 40px rgba(212,175,55,0.4),
    4px 4px 0 var(--red-deep),
    8px 8px 0 rgba(0,0,0,0.3);
  line-height:0.9;
  margin-bottom:14px;
}
.hero-sub{
  font-family:var(--cond);
  font-size:clamp(13px,1.6vw,17px);
  letter-spacing:6px;
  text-transform:uppercase;
  color:var(--cream);
  margin-bottom:18px;
  font-weight:400;
}
.hero-tagline{
  font-family:var(--script);
  font-size:clamp(20px,2.6vw,30px);
  color:var(--cream);
  margin-bottom:32px;
  font-style:italic;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-tagline::after{
  content:'|';
  margin-left:4px;
  color:var(--gold);
  animation:blink 1s steps(2) infinite;
  font-style:normal;
  font-family:var(--cond);
}
@keyframes blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}
.hero-years{
  font-family:var(--display);
  font-size:clamp(22px,3.5vw,36px);
  color:var(--cream);
  letter-spacing:6px;
  margin-bottom:14px;
}
.hero-years span{color:var(--gold)}
.hero-years-sep{opacity:0.4;margin:0 8px}

.hero-clock{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:32px;
  padding:7px 16px;
  background:rgba(0,0,0,0.45);
  border:1px solid rgba(212,175,55,0.4);
  border-radius:2px;
  font-family:var(--cond);
  font-size:12px;
  color:var(--cream);
  letter-spacing:2px;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.hero-clock-time{color:var(--gold);font-weight:700;font-size:14px}
.hero-clock-label{opacity:0.7;text-transform:uppercase;letter-spacing:2px}

.hero-btn{
  display:block;
  margin:0 auto;
  width:fit-content;
  background:var(--gold);
  color:var(--red-deep);
  font-family:var(--cond);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:3px;
  padding:16px 44px;
  font-size:14px;
  border:2px solid var(--gold);
  transition:all .3s;
  position:relative;
  clip-path:polygon(12px 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
}
.hero-btn:hover{
  background:transparent;color:var(--gold);
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(212,175,55,0.3);
}

.scroll-cue{display:none}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}

@media(max-width:600px){
  .hero{padding:80px 16px 50px}
  .hero-emblem{width:90px;height:90px}
  .hero-emblem-wrap::before{inset:-14px}
  .hero-emblem-wrap::after{inset:-26px}
  .hero-emblem-orbit{width:220px;height:220px}
  .hero-ribbon{font-size:10px;letter-spacing:3px;padding:6px 16px;margin-bottom:24px}
  .hero h1{letter-spacing:4px}
  .hero-sub{letter-spacing:4px}
}

/* ==================== SECTION GENERAL ==================== */
section{padding:80px 0;position:relative}
.section-head{text-align:center;margin-bottom:60px;position:relative}
.section-eyebrow{
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:5px;
  color:var(--red-dark);
  font-size:13px;
  font-weight:700;
  margin-bottom:14px;
}
.section-title{
  font-family:var(--display);
  font-size:clamp(32px,5vw,52px);
  color:var(--ink);
  letter-spacing:2px;
  line-height:1.1;
  margin-bottom:16px;
}
.section-title::after{
  content:'';
  display:block;
  width:80px;height:4px;
  background:var(--red);
  margin:20px auto 0;
  position:relative;
}
.section-sub{
  font-family:var(--serif);
  font-style:italic;
  color:var(--ink);
  font-size:18px;
  max-width:700px;
  margin:0 auto;
  line-height:1.55;
}

/* === Global responsive adjustments === */
@media(max-width:768px){
  section{padding:56px 0}
  .section-head{margin-bottom:40px}
  .section-title{font-size:clamp(26px,7vw,36px);letter-spacing:1px}
  .section-title::after{width:60px;height:3px;margin-top:14px}
  .section-eyebrow{font-size:11px;letter-spacing:3px;margin-bottom:10px}
  .section-sub{font-size:15px}
  .container{padding:0 16px}
}
@media(max-width:480px){
  section{padding:44px 0}
  .section-head{margin-bottom:30px}
  .section-title{font-size:24px}
  .section-sub{font-size:14px}
}

/* ==================== QUICK FACTS ==================== */
.facts{background:var(--ink);color:var(--cream);padding:50px 0}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.fact{text-align:center;padding:20px;border-right:1px solid rgba(212,175,55,0.3)}
.fact:last-child{border-right:none}
.fact-num{
  font-family:var(--display);
  font-size:clamp(28px,4vw,48px);
  color:var(--gold);
  margin-bottom:8px;
  letter-spacing:1px;
}
.fact-label{
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:13px;
  color:var(--cream);
  opacity:1;
}
@media(max-width:800px){.facts-grid{grid-template-columns:repeat(2,1fr)}.fact:nth-child(2){border-right:none}.fact{border-bottom:1px solid rgba(212,175,55,0.3);padding-bottom:24px}}

/* ==================== ABOUT ==================== */
.about{background:var(--paper)}
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center}
.about-text p{margin-bottom:18px;font-size:17px;color:var(--ink-soft)}
.about-text p:first-of-type::first-letter{
  font-family:var(--display);
  font-size:64px;
  float:left;
  line-height:0.85;
  padding:6px 12px 0 0;
  color:var(--red);
}
.about-card{
  background:linear-gradient(135deg, var(--red) 0%, var(--red-dark) 100%);
  color:var(--cream);
  padding:40px;
  position:relative;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 30px), calc(100% - 30px) 100%, 0 100%);
  box-shadow:0 20px 40px rgba(139,0,0,0.3);
}
@media(max-width:600px){.about-card{padding:24px}}
.about-card::before{
  content:'★';
  position:absolute;
  top:20px;right:30px;
  font-size:80px;
  color:var(--gold);
  opacity:0.2;
}
.about-card h3{font-family:var(--display);color:var(--gold);font-size:22px;margin-bottom:18px;letter-spacing:1px}
.about-card ul{list-style:none}
.about-card li{padding:10px 0;border-bottom:1px dashed rgba(212,175,55,0.35);font-family:var(--cond);font-size:16px;display:flex;justify-content:space-between;color:var(--cream)}
.about-card li:last-child{border-bottom:none}
.about-card li span{color:var(--gold);font-weight:700}
@media(max-width:800px){.about-grid{grid-template-columns:1fr;gap:30px}}

/* ==================== TIMELINE ==================== */
.timeline{background:var(--ink);color:var(--cream);overflow:hidden}
.timeline .section-head{margin-bottom:30px}
.timeline .section-title{color:#FFFFFF}
.timeline .section-title::after{background:var(--gold)}
.timeline .section-eyebrow{color:var(--gold)}
.timeline .section-sub{color:rgba(255,255,255,0.85)}
.timeline-track{
  display:flex;
  gap:30px;
  overflow-x:auto;
  padding:30px 24px 60px;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  scrollbar-color:var(--gold) var(--ink);
}
.timeline-track::-webkit-scrollbar{height:8px}
.timeline-track::-webkit-scrollbar-track{background:var(--ink)}
.timeline-track::-webkit-scrollbar-thumb{background:var(--gold);border-radius:4px}

.tl-item{
  min-width:280px;
  background:linear-gradient(180deg, var(--red-dark) 0%, var(--red-deep) 100%);
  border:1px solid var(--gold);
  padding:28px;
  scroll-snap-align:start;
  position:relative;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%);
}
@media(max-width:480px){.tl-item{min-width:240px;padding:20px}.tl-year{font-size:36px}}
.tl-year{
  font-family:var(--display);
  font-size:42px;
  color:var(--gold);
  letter-spacing:2px;
  margin-bottom:12px;
  line-height:1;
}
.tl-title{
  font-family:var(--cond);
  font-size:18px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--cream);
  margin-bottom:10px;
}
.tl-desc{font-size:14px;color:#F5E6D3;line-height:1.55}

/* ==================== REPUBLICS ==================== */
.republics{background:var(--paper)}
.rep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.rep-card{
  background:linear-gradient(135deg, var(--cream) 0%, #EFE0C9 100%);
  border:2px solid var(--ink);
  padding:16px 16px 18px;
  cursor:pointer;
  transition:all .25s;
  position:relative;
  overflow:hidden;
  text-align:center;
}
.rep-card::before{
  content:'';
  position:absolute;
  top:0;left:0;
  width:4px;height:100%;
  background:var(--red);
}
.rep-coat-of-arms{
  width:80px;height:80px;
  margin:0 auto 10px;
  background:var(--red);
  border:2px solid var(--gold);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.rep-coat-of-arms svg{width:100%;height:100%}
.rep-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,0.15);border-color:var(--red)}
.rep-num{font-family:var(--cond);color:var(--red-dark);font-weight:700;font-size:13px;letter-spacing:2px}
.rep-name{font-family:var(--display);font-size:17px;margin:6px 0 8px;color:var(--ink)}
.rep-capital{font-family:var(--cond);font-size:13px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;font-weight:600}

/* ==================== ACHIEVEMENTS ==================== */
.achieve{background:linear-gradient(180deg, var(--paper) 0%, #F0E2C9 100%)}
.ach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ach-card{
  background:var(--cream);
  border-left:5px solid var(--red);
  padding:24px;
  box-shadow:0 4px 20px rgba(0,0,0,0.06);
  transition:transform .25s;
  position:relative;
}
.ach-card:hover{transform:translateY(-6px)}
.ach-header{
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:14px;
}
.ach-icon{
  width:56px;height:56px;
  flex-shrink:0;
  background:var(--red);
  color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-size:26px;
  clip-path:polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.ach-title{font-family:var(--display);font-size:18px;color:var(--ink);letter-spacing:0.3px;line-height:1.2;margin:0}
.ach-text{font-size:14px;color:var(--ink-soft);line-height:1.55;margin-bottom:10px}
.ach-year{font-family:var(--cond);color:var(--red-dark);font-weight:700;font-size:12px;letter-spacing:2px;display:block}
@media(max-width:900px){.ach-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.ach-grid{grid-template-columns:1fr}}

/* ==================== EVERYDAY LIFE ==================== */
.life{background:var(--ink);color:var(--cream)}
.life .section-title{color:#FFFFFF}
.life .section-title::after{background:var(--gold)}
.life .section-eyebrow{color:var(--gold)}
.life .section-sub{color:rgba(255,255,255,0.85)}
.life-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.life-card{
  background:rgba(245,230,211,0.05);
  border:1px solid rgba(212,175,55,0.3);
  padding:30px;
  display:flex;
  gap:24px;
  align-items:flex-start;
  transition:all .3s;
}
.life-card:hover{background:rgba(212,175,55,0.08);border-color:var(--gold)}
.life-emoji{
  font-size:48px;
  flex-shrink:0;
  width:80px;height:80px;
  background:var(--red-dark);
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  border:3px solid var(--gold);
}
.life-body h3{font-family:var(--display);color:var(--gold);font-size:20px;margin-bottom:10px;letter-spacing:1px}
.life-body p{font-size:15px;color:#F5E6D3;line-height:1.6}
@media(max-width:700px){.life-grid{grid-template-columns:1fr}.life-card{flex-direction:column}}

/* ==================== CULTURE TABS ==================== */
.culture{background:var(--paper)}
.tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:40px}
.tab-btn{
  background:transparent;
  border:2px solid var(--ink);
  color:var(--ink);
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:2px;
  font-weight:600;
  padding:12px 28px;
  font-size:14px;
  cursor:pointer;
  transition:all .25s;
  clip-path:polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.tab-btn.active,.tab-btn:hover{background:var(--red);color:var(--gold);border-color:var(--red)}
.tab-panel{display:none}
.tab-panel.active{display:block;animation:fadeIn .4s}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.culture-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.culture-card{
  background:var(--cream);
  border:2px solid var(--ink);
  padding:60px 20px 22px;
  text-align:center;
  position:relative;
  transition:transform .25s;
  margin-top:0;
}
.culture-card:hover{transform:translateY(-4px) rotate(-1deg)}
.culture-card::before{
  content:'★';
  position:absolute;
  top:22px;left:50%;
  transform:translateX(-50%);
  width:24px;height:24px;
  background:var(--red);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  font-size:12px;
  clip-path:polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
.culture-year{font-family:var(--cond);color:var(--red-dark);font-weight:700;font-size:13px;margin-top:8px;letter-spacing:2px}
.culture-title{font-family:var(--display);font-size:17px;margin:14px 0 8px;color:var(--ink)}
.culture-author{font-family:var(--serif);font-style:italic;color:var(--ink-soft);font-size:14px}

/* ==================== PERSONALITIES ==================== */
.people{background:linear-gradient(180deg, var(--red-deep) 0%, var(--red-dark) 100%);color:var(--cream)}
.people .section-title{color:#FFFFFF}
.people .section-title::after{background:var(--gold)}
.people .section-eyebrow{color:var(--gold-light)}
.people .section-sub{color:rgba(255,255,255,0.85)}
.ppl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:24px}
@media(max-width:480px){.ppl-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
.ppl-card{
  background:rgba(0,0,0,0.3);
  border:2px solid var(--gold);
  padding:24px 16px;
  text-align:center;
  transition:all .3s;
  cursor:pointer;
}
.ppl-card:hover{background:rgba(212,175,55,0.15);transform:scale(1.03)}
.ppl-avatar{
  width:100px;height:100px;
  background:var(--red);
  border:3px solid var(--gold);
  border-radius:50%;
  margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);
  font-size:32px;
  color:var(--gold);
}
.ppl-name{font-family:var(--display);font-size:16px;color:var(--gold);margin-bottom:6px;letter-spacing:0.5px}
.ppl-role{font-family:var(--cond);font-size:12px;color:var(--cream);text-transform:uppercase;letter-spacing:1.5px;opacity:1}
.ppl-years{font-family:var(--serif);font-style:italic;font-size:13px;color:rgba(212,175,55,0.8);margin-top:6px}

/* ==================== ARCHITECTURE ==================== */
.arch{background:var(--paper)}
.arch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;grid-auto-rows:1fr}
.arch-item{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg, var(--ink) 0%, var(--red-deep) 100%);
  cursor:pointer;
  border:2px solid var(--ink);
  min-height:280px;
}
.arch-item:nth-child(1){grid-column:span 2}
.arch-item:nth-child(6){grid-column:span 2}
.arch-img{
  width:100%;height:100%;
  background-size:cover;
  background-position:center;
  transition:transform .5s;
  display:flex;align-items:flex-end;
  padding:20px;
}
.arch-item:hover .arch-img{transform:scale(1.08)}
.arch-img::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.85) 100%);
}
.arch-label{
  position:relative;
  z-index:2;
  color:var(--cream);
}
.arch-label h4{font-family:var(--display);font-size:18px;letter-spacing:1px;margin-bottom:4px}
.arch-label span{font-family:var(--cond);font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:2px}
@media(max-width:800px){.arch-grid{grid-template-columns:repeat(2,1fr)}.arch-item:nth-child(1),.arch-item:nth-child(6){grid-column:span 2}}

/* ==================== PHOTO ARCHIVE ==================== */
.archive{background:var(--ink);color:var(--cream)}
.archive .section-title{color:#FFFFFF}
.archive .section-title::after{background:var(--gold)}
.archive .section-eyebrow{color:var(--gold)}
.archive .section-sub{color:rgba(255,255,255,0.85)}
.filters{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.filter-btn{
  background:transparent;
  border:1px solid var(--gold);
  color:var(--gold);
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:2px;
  padding:8px 18px;
  font-size:12px;
  cursor:pointer;
  transition:all .2s;
}
.filter-btn.active,.filter-btn:hover{background:var(--gold);color:var(--ink)}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.photo{
  aspect-ratio:1;
  background:linear-gradient(135deg, var(--red-deep), var(--red-dark));
  border:2px solid var(--gold);
  position:relative;
  overflow:hidden;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold);
  font-family:var(--display);
  font-size:24px;
  text-align:center;
  transition:all .3s;
}
.photo:hover{transform:scale(1.04);border-color:var(--gold-light)}
.photo::after{
  content:attr(data-year);
  position:absolute;
  bottom:8px;left:8px;
  background:rgba(0,0,0,0.7);
  color:var(--gold);
  font-family:var(--cond);
  font-size:11px;
  padding:3px 8px;
  letter-spacing:1px;
}

/* ==================== POSTERS ==================== */
.posters{background:var(--paper)}
.poster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.poster{
  background:var(--red);
  border:3px solid var(--ink);
  padding:30px 20px;
  position:relative;
  min-height:340px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  transition:transform .3s;
}
.poster:hover{transform:translateY(-6px) rotate(-1deg)}
.poster:nth-child(2n){background:var(--ink);color:var(--gold)}
.poster:nth-child(3n){background:var(--gold);color:var(--red-deep)}
.poster::before{
  content:'★';
  position:absolute;
  top:10px;right:14px;
  font-size:40px;
  opacity:0.4;
}
.poster-headline{
  font-family:var(--display);
  font-size:24px;
  line-height:1.1;
  letter-spacing:1px;
  margin-bottom:14px;
  z-index:2;
  position:relative;
}
.poster-text{
  font-family:var(--cond);
  font-size:14px;
  letter-spacing:1px;
  text-transform:uppercase;
  opacity:0.9;
  z-index:2;
  position:relative;
}
.poster-year{
  font-family:var(--cond);
  font-size:12px;
  letter-spacing:3px;
  opacity:0.7;
  margin-top:14px;
  z-index:2;
  position:relative;
}

/* ==================== QUOTES ==================== */
.quotes{
  background:linear-gradient(135deg, var(--red) 0%, var(--red-deep) 100%);
  color:var(--cream);
  padding:100px 0;
  position:relative;
  overflow:hidden;
}
.quotes::before{
  content:'«';
  position:absolute;
  top:-30px;left:5%;
  font-family:var(--display);
  font-size:300px;
  color:var(--gold);
  opacity:0.1;
  line-height:1;
}
.quotes::after{
  content:'»';
  position:absolute;
  bottom:-100px;right:5%;
  font-family:var(--display);
  font-size:300px;
  color:var(--gold);
  opacity:0.1;
  line-height:1;
}
@media(max-width:768px){
  .quotes{padding:70px 0}
  .quotes::before,.quotes::after{font-size:180px}
  .quotes::after{bottom:-60px}
}
.quote-box{
  max-width:900px;
  margin:0 auto;
  text-align:center;
  position:relative;
  z-index:2;
}
.quote-text{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(24px,4vw,38px);
  line-height:1.4;
  color:var(--cream);
  margin-bottom:30px;
  transition:opacity .4s;
}
.quote-author{
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:4px;
  color:var(--gold);
  font-size:15px;
  font-weight:600;
}
.quote-dots{margin-top:30px;display:flex;justify-content:center;gap:10px}
.quote-dot{width:10px;height:10px;background:rgba(212,175,55,0.4);border-radius:50%;cursor:pointer;transition:.2s}
.quote-dot.active{background:var(--gold);transform:scale(1.3)}

/* ==================== MAP ==================== */
.map-section{background:var(--paper)}
.map-wrap{
  background:linear-gradient(135deg, #2C3E50 0%, #1A2530 100%);
  padding:40px;
  border:3px solid var(--ink);
  position:relative;
}
.map-wrap svg{width:100%;height:auto;display:block}
.map-info{
  position:absolute;
  top:30px;right:30px;
  background:var(--cream);
  border:2px solid var(--red);
  padding:16px 20px;
  font-family:var(--cond);
  font-size:14px;
  min-width:200px;
  max-width:260px;
  box-shadow:0 8px 20px rgba(0,0,0,0.3);
}
@media(max-width:600px){
  .map-info{position:static;margin-bottom:16px;max-width:none;min-width:0}
  .map-wrap{padding:20px}
}
.map-info h4{font-family:var(--display);color:var(--red);font-size:16px;margin-bottom:6px;letter-spacing:1px}
.map-info p{color:var(--ink-soft);font-size:13px;line-height:1.5}

/* ==================== STORIES ==================== */
.stories{background:linear-gradient(180deg, #F0E2C9 0%, var(--paper) 100%)}
.stories-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
@media(max-width:480px){.stories-grid{grid-template-columns:1fr;gap:18px}}
.story{
  background:var(--cream);
  border:1px solid var(--ink-soft);
  padding:28px;
  position:relative;
  box-shadow:0 4px 12px rgba(0,0,0,0.08);
}
.story::before{
  content:'';
  position:absolute;
  top:0;left:0;
  width:100%;height:4px;
  background:linear-gradient(90deg, var(--red) 0%, var(--gold) 100%);
}
.story-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.story-avatar{
  width:50px;height:50px;
  background:var(--red);
  color:var(--gold);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-size:20px;
}
.story-author{font-family:var(--display);font-size:16px;color:var(--ink)}
.story-meta{font-family:var(--cond);font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px}
.story-text{font-style:italic;color:var(--ink-soft);font-size:15px;line-height:1.7}
.story-tag{
  display:inline-block;
  background:var(--red);
  color:var(--gold);
  font-family:var(--cond);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1.5px;
  padding:4px 10px;
  margin-top:14px;
  font-weight:600;
}

/* ==================== LATEST ARTICLES ==================== */
.latest{background:linear-gradient(180deg, #F0E2C9 0%, var(--paper) 100%);padding:80px 0}
.latest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:24px}
.latest-card{
  background:var(--cream);
  border:1px solid rgba(60,40,30,0.18);
  overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,0.08);
  transition:transform .3s, box-shadow .3s;
  display:flex;
  flex-direction:column;
  cursor:pointer;
}
.latest-card:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(139,0,0,0.18)}
.latest-img{
  height:170px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold);
  font-family:var(--display);
  font-size:48px;
  letter-spacing:2px;
  overflow:hidden;
}
.latest-img::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.5));
}
.latest-badge{
  position:absolute;
  top:12px;left:12px;
  background:var(--gold);
  color:var(--red-deep);
  font-family:var(--cond);
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:2px;
  padding:4px 10px;
  font-weight:700;
  z-index:2;
}
.latest-date{
  position:absolute;
  bottom:12px;left:14px;
  color:var(--cream);
  font-family:var(--cond);
  font-size:12px;
  letter-spacing:1.5px;
  z-index:2;
  font-weight:600;
}
.latest-body{padding:22px;flex:1;display:flex;flex-direction:column}
.latest-title{
  font-family:var(--display);
  font-size:18px;
  color:var(--ink);
  margin-bottom:10px;
  line-height:1.3;
  letter-spacing:0.3px;
}
.latest-excerpt{
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.65;
  margin-bottom:16px;
  flex:1;
}
.latest-link{
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:12px;
  font-weight:700;
  color:var(--red-dark);
  align-self:flex-start;
  border-bottom:2px solid var(--gold);
  padding-bottom:2px;
  transition:color .2s;
}
.latest-card:hover .latest-link{color:var(--red)}
.latest-cta{text-align:center;margin-top:20px}
.latest-cta-btn{
  display:inline-block;
  background:transparent;
  color:var(--red-dark);
  font-family:var(--cond);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:3px;
  padding:14px 40px;
  font-size:14px;
  border:2px solid var(--red-dark);
  transition:all .25s;
  clip-path:polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}
.latest-cta-btn:hover{background:var(--red-dark);color:var(--gold)}
@media(max-width:900px){.latest-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.latest-grid{grid-template-columns:1fr}}

/* ==================== ON THIS DAY ==================== */
.onthisday{background:linear-gradient(135deg,var(--red-deep) 0%,var(--red-dark) 100%);color:var(--cream);position:relative;overflow:hidden}
.onthisday::before{
  content:'';position:absolute;inset:0;
  background:repeating-conic-gradient(from 0deg at 50% 50%,transparent 0deg,transparent 14deg,rgba(212,175,55,0.04) 14deg,rgba(212,175,55,0.04) 15deg);
  pointer-events:none;
}
.otd-wrap{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:center;position:relative;z-index:2}
.otd-date{
  font-family:var(--display);
  font-size:clamp(60px,10vw,140px);
  color:var(--gold);
  line-height:0.85;
  letter-spacing:-2px;
  text-align:center;
  text-shadow:4px 4px 0 var(--red-deep);
}
.otd-date small{display:block;font-family:var(--cond);font-size:18px;letter-spacing:6px;color:var(--cream);margin-top:14px;font-weight:400}
.otd-card{
  background:rgba(0,0,0,0.3);
  border:1px solid var(--gold);
  padding:32px;
  position:relative;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%);
}
.otd-card::before{
  content:'★';position:absolute;top:14px;right:20px;font-size:40px;color:var(--gold);opacity:0.2;
}
.otd-year{font-family:var(--cond);color:var(--gold);font-size:14px;letter-spacing:4px;text-transform:uppercase;font-weight:700;margin-bottom:10px}
.otd-title{font-family:var(--display);font-size:clamp(20px,3vw,28px);color:var(--cream);margin-bottom:14px;line-height:1.2;letter-spacing:0.5px}
.otd-text{font-size:15px;color:rgba(245,230,211,0.92);line-height:1.7}
.otd-controls{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.otd-btn{
  background:transparent;
  color:var(--gold);
  border:1px solid var(--gold);
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:12px;
  font-weight:600;
  padding:10px 20px;
  cursor:pointer;
  transition:all .2s;
}
.otd-btn:hover{background:var(--gold);color:var(--red-deep)}
.otd-btn.primary{background:var(--gold);color:var(--red-deep)}
.otd-btn.primary:hover{background:var(--gold-light)}
@media(max-width:800px){.otd-wrap{grid-template-columns:1fr;gap:24px}.otd-date{font-size:80px}}

/* ==================== CALCULATOR ==================== */
.calc{background:linear-gradient(180deg,#F0E2C9 0%,var(--paper) 100%)}
.calc-wrap{
  background:var(--cream);
  border:2px solid var(--ink);
  padding:40px;
  box-shadow:0 14px 30px rgba(0,0,0,0.1);
  position:relative;
  margin:0 auto;
}
.calc-wrap::before{
  content:'';position:absolute;top:0;left:0;right:0;height:6px;
  background:linear-gradient(90deg,var(--red) 0%,var(--gold) 50%,var(--red) 100%);
}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}
.calc-field{display:flex;flex-direction:column;gap:8px}
.calc-label{font-family:var(--cond);text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--red-dark);font-weight:700}
.calc-select,.calc-input{
  background:var(--paper);
  border:2px solid var(--ink);
  color:var(--ink);
  font-family:var(--cond);
  font-size:16px;
  padding:12px 14px;
  cursor:pointer;
  font-weight:500;
  outline:none;
  transition:border-color .2s;
}
.calc-select:focus,.calc-input:focus{border-color:var(--red)}
.calc-slider{
  width:100%;
  -webkit-appearance:none;appearance:none;
  height:6px;background:linear-gradient(90deg,var(--red),var(--gold));
  outline:none;border-radius:3px;
  margin-top:10px;
}
.calc-slider::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:24px;height:24px;background:var(--gold);
  border:2px solid var(--red-deep);border-radius:50%;cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,0.3);
}
.calc-slider::-moz-range-thumb{width:24px;height:24px;background:var(--gold);border:2px solid var(--red-deep);border-radius:50%;cursor:pointer}
.calc-year-display{font-family:var(--display);font-size:32px;color:var(--red-dark);text-align:center;margin-top:8px}
.calc-result{
  background:linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%);
  color:var(--cream);
  padding:28px;
  text-align:center;
  position:relative;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);
}
.calc-result-from{font-family:var(--cond);font-size:14px;letter-spacing:2px;text-transform:uppercase;opacity:0.85;margin-bottom:8px}
.calc-result-amount{font-family:var(--display);font-size:clamp(28px,5vw,42px);color:var(--gold);letter-spacing:1px;line-height:1.1}
.calc-result-eq{font-family:var(--cond);font-size:13px;letter-spacing:3px;color:var(--cream);opacity:0.6;margin:8px 0}
.calc-result-to{font-family:var(--cond);font-size:14px;letter-spacing:2px;text-transform:uppercase;opacity:0.85;margin-bottom:6px}
.calc-disclaimer{font-family:var(--serif);font-style:italic;font-size:12px;color:var(--ink-soft);text-align:center;margin-top:16px;line-height:1.5}
@media(max-width:700px){.calc-grid{grid-template-columns:1fr}.calc-wrap{padding:24px}}

/* ==================== HOLIDAYS CALENDAR ==================== */
.holidays{background:var(--ink);color:var(--cream)}
.holidays .section-title{color:#FFFFFF}
.holidays .section-title::after{background:var(--gold)}
.holidays .section-eyebrow{color:var(--gold)}
.holidays .section-sub{color:rgba(255,255,255,0.85)}
.hol-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.hol-card{
  background:rgba(245,230,211,0.04);
  border:1px solid rgba(212,175,55,0.3);
  padding:22px;
  cursor:pointer;
  transition:all .25s;
  position:relative;
  display:flex;
  gap:16px;
  align-items:flex-start;
}
.hol-card:hover{background:rgba(212,175,55,0.1);border-color:var(--gold);transform:translateY(-3px)}
.hol-date{
  flex-shrink:0;
  width:72px;
  text-align:center;
}
.hol-date-block{
  background:var(--red);
  color:var(--gold);
  padding:8px 6px;
  border:1px solid var(--gold);
}
.hol-day{font-family:var(--display);font-size:24px;line-height:1;letter-spacing:1px}
.hol-month{font-family:var(--cond);font-size:11px;letter-spacing:2px;text-transform:uppercase;margin-top:4px;opacity:0.9}
.hol-dayoff{
  font-family:var(--cond);font-size:9px;font-weight:700;
  background:var(--gold);color:var(--red-deep);
  padding:3px 6px;letter-spacing:1px;
  margin-top:6px;
  text-transform:uppercase;
}
.hol-info h3{font-family:var(--display);font-size:16px;color:var(--gold);margin-bottom:6px;letter-spacing:0.5px;line-height:1.2}
.hol-info p{font-family:var(--cond);font-size:13px;color:rgba(245,230,211,0.8);letter-spacing:0.5px}

/* ==================== QUIZ ==================== */
.quiz{background:linear-gradient(180deg,var(--paper) 0%,#F0E2C9 100%)}
.quiz-wrap{
  margin:0 auto;
  background:var(--cream);
  border:2px solid var(--ink);
  padding:40px;
  position:relative;
  box-shadow:0 14px 30px rgba(0,0,0,0.1);
}
.quiz-wrap::before{
  content:'';position:absolute;top:0;left:0;right:0;height:6px;
  background:linear-gradient(90deg,var(--red-deep),var(--red),var(--gold),var(--red),var(--red-deep));
}
.quiz-progress{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.quiz-progress-bar{flex:1;height:8px;background:var(--paper);border:1px solid var(--ink);overflow:hidden}
.quiz-progress-fill{height:100%;background:linear-gradient(90deg,var(--red),var(--gold));width:0%;transition:width .4s}
.quiz-progress-text{font-family:var(--cond);font-size:13px;font-weight:700;color:var(--red-dark);letter-spacing:1px;white-space:nowrap}
.quiz-question{font-family:var(--display);font-size:clamp(18px,2.5vw,22px);color:var(--ink);margin-bottom:24px;line-height:1.3;letter-spacing:0.3px}
.quiz-options{display:flex;flex-direction:column;gap:10px}
.quiz-option{
  background:var(--paper);
  border:2px solid var(--ink);
  color:var(--ink);
  font-family:var(--cond);
  font-size:15px;
  text-align:left;
  padding:14px 18px;
  cursor:pointer;
  transition:all .2s;
  display:flex;align-items:center;gap:12px;
  font-weight:500;
}
.quiz-option:hover{border-color:var(--red);background:#FAE8D5}
.quiz-option .opt-letter{
  width:28px;height:28px;
  background:var(--red);
  color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-size:13px;
  flex-shrink:0;
  border-radius:2px;
}
.quiz-option.correct{background:#D4EDDA;border-color:#28A745;color:#155724}
.quiz-option.correct .opt-letter{background:#28A745;color:#fff}
.quiz-option.wrong{background:#F8D7DA;border-color:#DC3545;color:#721C24}
.quiz-option.wrong .opt-letter{background:#DC3545;color:#fff}
.quiz-option:disabled{cursor:default}
.quiz-feedback{
  margin-top:20px;padding:14px 18px;
  background:var(--paper);border-left:4px solid var(--gold);
  font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-soft);
  display:none;line-height:1.6;
}
.quiz-feedback.show{display:block}
.quiz-next{
  margin-top:20px;
  background:var(--red);
  color:var(--gold);
  border:none;
  font-family:var(--cond);font-weight:700;
  text-transform:uppercase;letter-spacing:2px;
  padding:12px 28px;font-size:14px;
  cursor:pointer;
  transition:all .2s;
  display:none;
  clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
}
.quiz-next.show{display:inline-block}
.quiz-next:hover{background:var(--red-dark)}
.quiz-result{text-align:center;display:none;padding:20px 0}
.quiz-result.show{display:block}
.quiz-result-title{font-family:var(--display);font-size:32px;color:var(--red-dark);margin-bottom:14px;letter-spacing:1px}
.quiz-result-score{font-family:var(--display);font-size:64px;color:var(--gold);line-height:1;margin:14px 0;text-shadow:3px 3px 0 var(--red-deep)}
.quiz-result-out-of{font-family:var(--cond);font-size:18px;color:var(--ink-soft);letter-spacing:2px;text-transform:uppercase;margin-bottom:20px}
.quiz-result-verdict{
  background:linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%);
  color:var(--cream);padding:20px 24px;margin:20px 0;
  font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.6;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%);
}
.quiz-result-verdict strong{color:var(--gold);font-style:normal;font-family:var(--cond);letter-spacing:1px}
.quiz-restart{
  background:var(--ink);
  color:var(--gold);
  border:2px solid var(--gold);
  font-family:var(--cond);font-weight:700;
  text-transform:uppercase;letter-spacing:2px;
  padding:12px 32px;font-size:14px;
  cursor:pointer;
  transition:all .2s;
  margin-top:10px;
}
.quiz-restart:hover{background:var(--gold);color:var(--red-deep)}
@media(max-width:600px){.quiz-wrap{padding:24px}}

/* ==================== FOOTER ==================== */
.footer{
  background:var(--black);
  color:var(--cream);
  padding:60px 0 30px;
  border-top:4px solid var(--gold);
}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.footer-brand{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.footer-brand svg{width:48px;height:48px}
.footer-brand h3{font-family:var(--display);color:var(--gold);font-size:24px;letter-spacing:2px}
.footer-brand p{font-family:var(--cond);color:var(--cream);font-size:13px;letter-spacing:2px;text-transform:uppercase;opacity:0.7}
.footer-col h4{font-family:var(--cond);color:var(--gold);text-transform:uppercase;letter-spacing:2px;font-size:14px;margin-bottom:18px}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:10px;font-size:14px;color:rgba(245,230,211,0.75);cursor:pointer;transition:color .2s}
.footer-col li:hover{color:var(--gold)}
.footer-bottom{
  text-align:center;
  padding-top:30px;
  border-top:1px solid rgba(212,175,55,0.2);
  font-family:var(--cond);
  font-size:13px;
  color:rgba(245,230,211,0.6);
  letter-spacing:1px;
}
.footer-disclaimer{
  text-align:center;
  font-style:italic;
  color:rgba(245,230,211,0.5);
  font-size:12px;
  margin-top:14px;
}
@media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;gap:24px}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr;gap:24px;text-align:center}.footer-brand{justify-content:center}}

/* ==================== MODAL ==================== */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.85);
  z-index:2000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.modal-overlay.open{display:flex}
.modal{
  background:var(--paper);
  border:3px solid var(--red);
  max-width:600px;
  width:100%;
  padding:40px;
  position:relative;
  max-height:90vh;
  overflow-y:auto;
}
.modal-close{
  position:absolute;
  top:14px;right:14px;
  background:var(--red);
  color:var(--gold);
  border:none;
  width:36px;height:36px;
  font-size:20px;
  cursor:pointer;
  font-family:var(--display);
}
.modal h3{font-family:var(--display);color:var(--red);font-size:24px;margin-bottom:14px;letter-spacing:1px}
.modal p{margin-bottom:12px;color:var(--ink-soft);line-height:1.7}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s, transform .8s}
.reveal.visible{opacity:1;transform:translateY(0)}

