:root{
  --soil:#171210;
  --bark:#221a15;
  --bark-2:#2c221b;
  --cream:#f4ede1;
  --cream-dim:#c9bcab;
  --moss:#8fae6a;
  --moss-deep:#5d7c40;
  --gold:#d9a441;
  --rust:#b5622c;
  --radius:18px;
  --maxw:1180px;
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Inter",system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
/* While GSAP drives the page, CSS smooth-scroll double-smooths and fights the
   pinned sections (a known "page stops displaying after scrolling up" trigger).
   Reserve CSS smoothness for the no-JS experience only. */
html.js-motion{scroll-behavior:auto}
body{
  background:var(--soil);
  color:var(--cream);
  font-family:var(--font-body);
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.1;letter-spacing:-.01em}
h2{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:.4em}
h3{font-size:1.35rem;margin-bottom:.5em}

.eyebrow{
  font-family:var(--font-body);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.1rem;
  font-weight:500;
}

.section{max-width:var(--maxw);margin:0 auto;padding:clamp(5rem,12vh,9rem) 1.5rem}
.section__head{margin-bottom:3.5rem;max-width:720px}
.lead{font-size:1.2rem;color:var(--cream)}
p+p{margin-top:1.1rem}
.about__text p,.panel p{color:var(--cream-dim)}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;
  padding:.85rem 1.7rem;
  border-radius:100px;
  font-size:.9rem;
  font-weight:500;
  letter-spacing:.02em;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s,color .3s,border-color .3s;
  will-change:transform;
}
.btn--gold{background:var(--gold);color:#1c1509}
.btn--gold:hover{transform:translateY(-3px);background:#e9b75c}
.btn--ghost{border:1px solid rgba(244,237,225,.25);color:var(--cream)}
.btn--ghost:hover{transform:translateY(-3px);border-color:var(--gold);color:var(--gold)}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem clamp(1.2rem,4vw,3rem);
  transition:background .4s,backdrop-filter .4s,padding .4s,border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.is-scrolled{
  background:rgba(23,18,16,.82);
  backdrop-filter:blur(14px);
  padding:.7rem clamp(1.2rem,4vw,3rem);
  border-bottom-color:rgba(244,237,225,.08);
}
.nav__logo{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.05rem;color:var(--moss)}
.nav__links{display:flex;align-items:center;gap:1.7rem;font-size:.85rem}
.nav__links a{color:var(--cream-dim);transition:color .3s}
.nav__links a:hover{color:var(--cream)}
.nav__cta{border:1px solid rgba(244,237,225,.25);padding:.45rem 1.1rem;border-radius:100px}
.nav__cta:hover{border-color:var(--gold);color:var(--gold)!important}
.nav__lang{border:1px solid rgba(217,164,65,.5);color:var(--gold);padding:.42rem 1rem;border-radius:100px}
.nav__lang:hover{background:var(--gold);color:#1c1509!important}
@media(max-width:820px){.nav__links a:not(.nav__cta):not(.nav__lang){display:none}}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:center;
  padding:9rem clamp(1.2rem,5vw,4rem) 4rem;
  overflow:hidden;
  background:
    radial-gradient(60% 55% at 78% 42%,rgba(143,174,106,.14),transparent 70%),
    radial-gradient(50% 50% at 12% 85%,rgba(217,164,65,.10),transparent 70%),
    var(--soil);
}
.hero__content{position:relative;z-index:3;max-width:720px}
.hero__title{font-size:clamp(3rem,9vw,6.6rem);margin:0 0 1.4rem}
.hero__title .line{display:block;overflow:hidden}
.line--accent{color:var(--moss);font-style:italic}
.hero__sub{color:var(--cream-dim);max-width:52ch;font-size:1.05rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.4rem}
.hero__scroll{display:flex;align-items:center;gap:.9rem;margin-top:4rem;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cream-dim)}
.hero__scrollline{width:64px;height:1px;background:rgba(244,237,225,.2);position:relative;overflow:hidden}
.hero__scrollline i{position:absolute;inset:0;background:var(--gold);transform:translateX(-100%);animation:scrollcue 2.2s infinite}
@keyframes scrollcue{0%{transform:translateX(-100%)}55%{transform:translateX(0)}100%{transform:translateX(100%)}}

.hero__art{
  position:absolute;right:-2%;top:50%;transform:translateY(-50%);
  width:min(46vw,560px);z-index:1;opacity:.95;pointer-events:none;
}
.mushroom path,.mushroom circle{fill:none;stroke:var(--moss);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.mushroom .faint{stroke:var(--moss-deep);stroke-width:1.6}
.mushroom .pop{stroke:var(--gold)}
@media(max-width:900px){.hero__art{opacity:.16;right:-18%;width:80vw}}

.spores{position:absolute;inset:0;z-index:2;pointer-events:none}
.spore{position:absolute;border-radius:50%;background:var(--gold);opacity:.35}

/* ---------- marquee ---------- */
.marquee{
  border-top:1px solid rgba(244,237,225,.08);
  border-bottom:1px solid rgba(244,237,225,.08);
  padding:1.1rem 0;overflow:hidden;background:var(--bark);
}
.marquee__track{display:flex;gap:2rem;white-space:nowrap;width:max-content;font-family:var(--font-display);font-size:1.05rem;color:var(--cream-dim);animation:marquee 34s linear infinite}
.marquee__track span:nth-child(even){color:var(--moss-deep)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- about ---------- */
.about__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:4rem}
@media(max-width:880px){.about__grid{grid-template-columns:1fr;gap:3rem}}
.about__text .btn{margin-top:1.8rem}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(244,237,225,.1);border:1px solid rgba(244,237,225,.1);border-radius:var(--radius);overflow:hidden;align-self:start}
.stat{background:var(--bark);padding:2rem 1.5rem}
.stat__num{display:block;font-family:var(--font-display);font-size:2.6rem;color:var(--gold);line-height:1}
.stat__label{font-size:.78rem;color:var(--cream-dim);letter-spacing:.04em}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media(max-width:960px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.cards{grid-template-columns:1fr}}
.card{
  background:linear-gradient(160deg,var(--bark-2),var(--bark));
  border:1px solid rgba(244,237,225,.07);
  border-radius:var(--radius);padding:2.2rem 1.9rem;
  transition:transform .5s cubic-bezier(.2,.8,.2,1),border-color .5s;
}
.card:hover{transform:translateY(-8px);border-color:rgba(217,164,65,.4)}
.card p{color:var(--cream-dim);font-size:.93rem}
.card__icon{width:46px;height:46px;margin-bottom:1.4rem;fill:none;stroke:var(--moss);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}
.card:hover .card__icon{stroke:var(--gold)}

/* ---------- timeline ---------- */
.timeline{position:relative;padding-left:3rem}
.timeline__line{position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:rgba(244,237,225,.12)}
.timeline__line i{position:absolute;top:0;left:0;width:100%;height:0;background:linear-gradient(var(--gold),var(--moss))}
.tl-item{position:relative;padding-bottom:3.2rem}
.tl-item:last-child{padding-bottom:0}
.tl-item__dot{position:absolute;left:-3rem;top:.55rem;width:18px;height:18px;border-radius:50%;background:var(--soil);border:2px solid var(--moss-deep);transform:translateX(0);transition:border-color .4s,box-shadow .4s}
.tl-item.is-active .tl-item__dot{border-color:var(--gold);box-shadow:0 0 0 6px rgba(217,164,65,.14)}
.tl-item__year{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.tl-item p{color:var(--cream-dim);max-width:62ch}

/* ---------- horizontal scroll ---------- */
.international{background:var(--bark);border-top:1px solid rgba(244,237,225,.07);border-bottom:1px solid rgba(244,237,225,.07)}
.hscroll{display:flex;align-items:center;gap:2.5rem;padding:0 max(1.5rem,6vw);width:max-content}
.panel{flex:0 0 auto;width:min(78vw,460px);min-height:60vh;display:flex;flex-direction:column;justify-content:center}
.panel--intro{width:min(85vw,560px)}
.panel--intro h2{font-size:clamp(2.2rem,5vw,3.6rem)}
.hscroll__hint{color:var(--gold);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;margin-top:1.5rem}
.panel--card{background:linear-gradient(160deg,var(--bark-2),var(--soil));border:1px solid rgba(244,237,225,.08);border-radius:var(--radius);padding:3rem 2.5rem;justify-content:flex-start}
.panel__index{font-family:var(--font-display);font-size:3.4rem;color:rgba(217,164,65,.28);line-height:1;margin-bottom:1.2rem}
.panel--card h3{font-size:2rem}
.panel ul{list-style:none;margin-top:1.6rem;display:grid;gap:.6rem}
.panel li{font-size:.85rem;color:var(--cream-dim);padding-left:1.2rem;position:relative}
.panel li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--moss)}
.panel--end{width:min(85vw,480px)}
.panel--end h3{font-size:2.4rem;margin-bottom:1.6rem}
@media(max-width:760px){
  .hscroll{flex-direction:column;width:100%;padding:5rem 1.5rem;gap:1.6rem}
  .panel{width:100%;min-height:auto}
}

/* ---------- facility ---------- */
.facility__wrap{display:grid;grid-template-columns:1.6fr .9fr;gap:2rem;align-items:stretch}
@media(max-width:880px){.facility__wrap{grid-template-columns:1fr}}
.facility__map{border-radius:var(--radius);overflow:hidden;border:1px solid rgba(244,237,225,.1);min-height:400px;background:var(--bark)}
.facility__map iframe{width:100%;height:100%;min-height:400px;border:0;filter:grayscale(.4) contrast(1.05)}
.facility__side{background:var(--bark);border:1px solid rgba(244,237,225,.08);border-radius:var(--radius);padding:2.6rem 2.2rem;display:flex;flex-direction:column;justify-content:center;gap:1rem}
.facility__side p{color:var(--cream-dim)}
.facility__side .btn{align-self:flex-start;margin-top:.6rem}

/* ---------- contact ---------- */
.contact{text-align:center}
.contact__inner{max-width:760px;margin:0 auto}
.contact h2{font-size:clamp(2.4rem,7vw,4.6rem)}
.contact__actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2.4rem}

/* ---------- footer ---------- */
.footer{border-top:1px solid rgba(244,237,225,.08);padding:2.4rem 1.5rem;text-align:center;color:var(--cream-dim);font-size:.82rem}
.footer__small{opacity:.5;font-size:.72rem;margin-top:.4rem}

/* ---------- animation prep (JS removes if GSAP unavailable) ---------- */
.js-motion .reveal{opacity:0;transform:translateY(34px)}
.js-motion [data-hero]{opacity:0}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .js-motion .reveal,.js-motion [data-hero]{opacity:1!important;transform:none!important}
}

/* ---------- RTL / Persian (fa.html) ---------- */
html[dir="rtl"]{direction:rtl;text-align:right}
html[dir="rtl"] body{font-family:"Vazirmatn","Inter",system-ui,-apple-system,sans-serif}
html[dir="rtl"] h1,html[dir="rtl"] h2,html[dir="rtl"] h3{font-family:"Vazirmatn",Georgia,serif;letter-spacing:0;line-height:1.35}
html[dir="rtl"] .eyebrow{letter-spacing:.08em}
html[dir="rtl"] .hero__title .line--accent{font-style:normal}
html[dir="rtl"] .hero__art{right:auto;left:-2%}
@media(max-width:900px){html[dir="rtl"] .hero__art{left:-18%;right:auto}}

/* marquee runs the other way so the loop stays seamless */
html[dir="rtl"] .marquee__track{animation-name:marquee-rtl}
@keyframes marquee-rtl{from{transform:translateX(0)}to{transform:translateX(50%)}}

/* timeline mirrored to the right edge */
html[dir="rtl"] .timeline{padding-left:0;padding-right:3rem}
html[dir="rtl"] .timeline__line{left:auto;right:8px}
html[dir="rtl"] .tl-item__dot{left:auto;right:-3rem}

/* bullets on the right */
html[dir="rtl"] .panel li{padding-left:0;padding-right:1.2rem}
html[dir="rtl"] .panel li::before{left:auto;right:0}

/* stats + résumé-style lists read right-aligned */
html[dir="rtl"] .stat__label{letter-spacing:0}
html[dir="rtl"] .hero__scroll{letter-spacing:.1em}

/* ============================================================
   SWORD CURSOR — the downloaded mushroom-tip sword centered on the
   pointer. Element and .cursor-on are added by js/main.js, under
   .js-motion, with pointer:fine only — so touch, reduced motion and
   no-JS users keep the native cursor and normal behaviour.
   ============================================================ */
.cursor-sword{
  position:fixed;top:0;left:0;width:48px;height:48px;
  pointer-events:none;opacity:0;z-index:9999;
}
/* The art carries its own drop shadow (feDropShadow inside the SVG). */
/* Two states, straight from the downloaded pair of files: the fresh
   red cap is the default, the grilled cap appears over clickables —
   a pure art swap, never a size or motion change. */
.cursor-sword__svg--hover{display:none}
.cursor-sword--hover .cursor-sword__svg--hover{display:block}
.cursor-sword--hover .cursor-sword__svg--default{display:none}
/* Hide the native cursor only while the custom one is live. */
.js-motion.cursor-on,
.js-motion.cursor-on a,
.js-motion.cursor-on button,
.js-motion.cursor-on .btn,
.js-motion.cursor-on label{cursor:none}
/* Embeds (the Google Maps facility map) swallow the pointer and strand
   the sword. With the custom cursor live, pointer-events come back to
   the page: the sword follows everywhere and no native cursor shows.
   Pan/zoom/directions stay available via the "Open in Google Maps"
   button next to the embed. Touch and no-JS users keep the fully
   interactive embed. */
.js-motion.cursor-on iframe{pointer-events:none}
@media (pointer: coarse){
  .cursor-sword{display:none}
}
