  /* Fonts (self-hosted). B Lotus has no Latin letters, so Crimson Pro (OFL)
     covers Latin text on Persian pages and is the main face on English ones.
     size-adjust evens out B Lotus's small glyphs against the old layout. */
  @font-face{font-family:'B Lotus';src:url('/assets/fonts/b-lotus-400.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap;size-adjust:122%;}
  @font-face{font-family:'B Lotus';src:url('/assets/fonts/b-lotus-700.woff2') format('woff2');font-weight:700 900;font-style:normal;font-display:swap;size-adjust:122%;}
  @font-face{font-family:'Crimson Pro';src:url('/assets/fonts/crimson-pro-latin-400-normal.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap;size-adjust:112%;}
  @font-face{font-family:'Crimson Pro';src:url('/assets/fonts/crimson-pro-latin-700-normal.woff2') format('woff2');font-weight:700 900;font-style:normal;font-display:swap;size-adjust:112%;}
  @font-face{font-family:'Crimson Pro';src:url('/assets/fonts/crimson-pro-latin-400-italic.woff2') format('woff2');font-weight:400 900;font-style:italic;font-display:swap;size-adjust:112%;}

  :root{
    --void:#04140c;
    --void-deep:#020b07;
    --aubergine:#0a2418;
    --aubergine-soft:#0e2f1f;
    --gold:#BF9A69;
    --gold-soft:#BF9A69;
    --gold-hover:#BF9A69;
    --copper:#b85c2e;
    --parchment:#ffffff;
    --ash:#cfe4d9;
    --ash-dim:#8fae9c;
    --teal:#356a61;
    --hairline: rgba(191,154,105,0.22);
    --radius: 16px;
    --font-fa:'B Lotus','Crimson Pro',serif;
    --font-en:'Crimson Pro','B Lotus',serif;
  }

  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;overflow-x:hidden;}
  section[id], div[id]{scroll-margin-top:90px;}
  body{
    background:var(--void);
    color:var(--parchment);
    font-family:var(--font-fa);
    line-height:1.75;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }
  body[data-lang="en"]{ direction:ltr; }
  body[data-lang="en"] .fa{ display:none !important; }
  body[data-lang="fa"] .en{ display:none !important; }
  body[data-lang="en"], body[data-lang="en"] *{ font-family:var(--font-en); }
  body[data-lang="fa"] input, body[data-lang="fa"] textarea, body[data-lang="fa"] select, body[data-lang="fa"] button{ font-family:var(--font-fa); }

  .mono{ letter-spacing:0.04em; }

  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  section{position:relative;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,64px);}

  ::selection{background:var(--gold);color:var(--void-deep);}

  /* -------- scroll reveal -------- */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease, transform .9s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
  }

  /* -------- eyebrow / labels -------- */
  .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-size:12.5px;letter-spacing:0.22em;text-transform:uppercase;
    color:var(--gold);margin-bottom:18px;
  }
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--gold);}

  h1,h2,h3{font-weight:600;color:var(--parchment);}
  body[data-lang="fa"] h1,body[data-lang="fa"] h2,body[data-lang="fa"] h3{font-weight:700;}

  /* -------- nav -------- */
  header.site-nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    padding:20px clamp(20px,5vw,64px);
    display:flex;align-items:center;justify-content:space-between;
    background:linear-gradient(to bottom, rgba(2,11,7,0.88), rgba(2,11,7,0));
    backdrop-filter:blur(2px);
    transition:background .4s ease, padding .4s ease;
  }
  header.site-nav.scrolled{
    background:rgba(3,14,9,0.92);
    padding:14px clamp(20px,5vw,64px);
    border-bottom:1px solid var(--hairline);
  }
  .logo{
    font-family:inherit;font-style:italic;font-weight:500;
    font-size:22px;letter-spacing:0.02em;color:var(--parchment);
    display:flex;align-items:center;gap:10px;
  }
  .logo img{height:40px;width:40px;object-fit:contain;display:block;}
  .logo .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);display:inline-block;}
  nav.links{display:flex;align-items:center;gap:36px;}
  nav.links a{font-size:14px;color:var(--ash);transition:color .3s;position:relative;}
  nav.links a:hover{color:var(--gold-soft);}
  .nav-right{display:flex;align-items:center;gap:18px;}
  .social-icons{display:flex;align-items:center;gap:10px;}
  .social-icons a{
    width:34px;height:34px;border-radius:50%;border:1px solid var(--hairline);
    display:flex;align-items:center;justify-content:center;color:var(--ash);
    transition:all .3s ease;
  }
  .social-icons a:hover{border-color:var(--gold);color:var(--gold-soft);transform:translateY(-3px);background:rgba(191,154,105,0.08);}
  .social-icons svg{width:16px;height:16px;}
  .lang-toggle{
    display:flex;border:1px solid var(--hairline);border-radius:20px;overflow:hidden;
    font-size:12px;
  }
  .lang-toggle button{
    background:transparent;border:none;color:var(--ash-dim);padding:6px 14px;cursor:pointer;
    font-family:inherit;letter-spacing:0.05em;transition:all .3s;
  }
  .lang-toggle button.active{background:var(--gold);color:var(--void-deep);}
  .menu-btn{display:none;background:none;border:none;color:var(--parchment);cursor:pointer;font-size:22px;}

  @media (max-width:920px){
    nav.links{display:none;}
    .menu-btn{display:block;}
  }

  /* -------- mobile drawer -------- */
  #drawer{
    position:fixed;inset:0;z-index:200;background:var(--void-deep);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;
    transform:translateY(-100%);transition:transform .5s cubic-bezier(.7,0,.3,1);
  }
  #drawer.open{transform:translateY(0);}
  #drawer a{font-size:24px;font-family:inherit;color:var(--parchment);}
  #drawer .close-btn{position:absolute;top:24px;right:24px;font-size:28px;background:none;border:none;color:var(--parchment);cursor:pointer;}

  /* ================= HERO ================= */
  .hero{
    min-height:100svh;
    display:flex;align-items:flex-end;
    position:relative;
    background:#020d08;
  }
  .hero::before{
    content:"";position:absolute;inset:0;
    background:linear-gradient(to top, rgba(2,11,7,0.97) 2%, rgba(2,11,7,0.42) 45%, rgba(2,11,7,0.3) 65%, rgba(2,11,7,0.6) 100%);
  }
  .hero-inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(50px,9vw,110px);text-align:center;}
  .hero h1{
    font-family:inherit;
    font-size:clamp(34px,6.4vw,78px);
    line-height:1.18;
    max-width:920px;margin:0 auto 26px;
    color:var(--parchment);
    text-shadow:0 2px 40px rgba(0,0,0,0.5);
  }
  body[data-lang="en"] .hero h1{font-style:italic;font-weight:500;}
  .hero .lede{
    max-width:560px;margin:0 auto 40px;color:var(--ash);font-size:16.5px;
  }
  .hero-ctas{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:15px 30px;font-size:14.5px;letter-spacing:0.03em;
    border-radius:10px;cursor:pointer;transition:all .35s cubic-bezier(.2,.8,.2,1);border:1px solid transparent;
  }
  .btn-primary{background:var(--gold);color:var(--void-deep);font-weight:600;}
  .btn-primary:hover{background:var(--gold-soft);transform:translateY(-3px);box-shadow:0 14px 28px -10px rgba(191,154,105,0.45);}
  .btn-ghost{border-color:rgba(255,255,255,0.28);color:var(--parchment);}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold-soft);transform:translateY(-3px);background:rgba(191,154,105,0.06);}

  .scroll-hint{
    position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;
    display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--ash-dim);
  }
  .scroll-hint .line{width:1px;height:34px;background:linear-gradient(to bottom, var(--gold), transparent);animation:pulseline 2.4s ease-in-out infinite;}
  @keyframes pulseline{0%,100%{opacity:.3;}50%{opacity:1;}}

  /* ================= SECTION SHARED ================= */
  .section{padding:clamp(80px,11vw,150px) 0;}
  .section-head{max-width:680px;margin-bottom:64px;}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .section-head h2{font-size:clamp(28px,3.6vw,44px);}
  .section-head p{color:var(--ash);margin-top:18px;font-size:16px;}
  .hairline{height:1px;background:var(--hairline);border:none;}

  /* ================= MANIFESTO ================= */
  .manifesto{background:var(--void-deep);position:relative;overflow:hidden;}
  .orbit-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:900px;max-width:110vw;opacity:0.5;pointer-events:none;}
  .manifesto blockquote{
    max-width:820px;margin:0 auto;text-align:center;position:relative;z-index:1;
    font-family:inherit;
    font-size:clamp(20px,2.6vw,32px);
    font-weight:500;font-style:italic;
    line-height:1.65;color:var(--parchment);
  }
  .manifesto blockquote .accent{color:var(--gold-soft);}
  .manifesto cite{display:block;margin-top:30px;font-style:normal;font-size:13px;color:var(--ash-dim);}

  /* ================= PILLARS ================= */
  .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .pillar{
    background:var(--aubergine);padding:44px 34px;border-radius:var(--radius);
    border:1px solid var(--hairline);
    transition:transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s, border-color .45s, background .45s;
  }
  .pillar:hover{background:var(--aubergine-soft);border-color:var(--gold);transform:translateY(-8px);box-shadow:0 24px 44px -18px rgba(0,0,0,0.55);}
  .pillar .num{font-size:12px;color:var(--gold);margin-bottom:22px;}
  .pillar h3{font-family:inherit;font-size:24px;margin-bottom:14px;}
  .pillar p{color:var(--ash);font-size:14.5px;}
  @media (max-width:820px){.pillars{grid-template-columns:1fr;}}

  /* ================= PATH / 7 STAGES ================= */
  .path-section{background:linear-gradient(180deg, var(--void) 0%, var(--void-deep) 100%);}
  .orbit-track{position:relative;max-width:920px;margin:0 auto;padding:20px 0;}
  .orbit-line{
    position:absolute;top:0;bottom:0;left:50%;width:1px;
    background:linear-gradient(to bottom, transparent, var(--hairline) 8%, var(--hairline) 92%, transparent);
  }
  .stage{
    position:relative;display:grid;grid-template-columns:1fr 60px 1fr;align-items:center;
    padding:34px 0;gap:0 28px;
  }
  .stage-node{
    grid-column:2; width:14px;height:14px;border-radius:50%;
    background:var(--void); border:2px solid var(--gold);
    justify-self:center; position:relative; z-index:2;
    transition:transform .4s, background .4s;
  }
  .stage.in .stage-node{background:var(--gold);transform:scale(1.15);}
  .stage-content{padding:8px 6px;}
  .stage:nth-child(odd) .stage-content{grid-column:1;text-align:end;}
  .stage:nth-child(even) .stage-content{grid-column:3;text-align:start;}
  .stage:nth-child(odd) .stage-fill{grid-column:3;}
  .stage:nth-child(even) .stage-fill{grid-column:1;}
  .stage-tag{font-size:11.5px;color:var(--gold);margin-bottom:10px;}
  .stage-content h3{font-family:inherit;font-size:21px;margin-bottom:8px;}
  .stage-content p{color:var(--ash);font-size:14px;max-width:340px;}
  .stage:nth-child(odd) .stage-content p{margin-inline-start:auto;}
  @media (max-width:760px){
    .orbit-line{left:auto;inset-inline-start:22px;}
    .stage{grid-template-columns:44px 1fr;gap:0 18px;padding:26px 0;}
    .stage-node{grid-column:1 !important;justify-self:start;margin-inline-start:16px;}
    .stage:nth-child(odd) .stage-content, .stage:nth-child(even) .stage-content{grid-column:2 !important;text-align:start !important;}
    .stage-content p{margin-inline-start:0 !important;}
    .stage-fill{display:none;}
  }

  /* ================= FACULTIES ================= */
  .faculties-section{background:var(--void-deep);}
  .fac-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .fac-card{
    background:var(--aubergine);padding:38px 30px;min-height:230px;border-radius:var(--radius);
    border:1px solid var(--hairline);
    display:flex;flex-direction:column;justify-content:space-between;
    transition:background .45s, transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s, border-color .45s;
  }
  .fac-card:hover{background:var(--aubergine-soft);border-color:var(--gold);transform:translateY(-8px) scale(1.01);box-shadow:0 24px 44px -18px rgba(0,0,0,0.55);}
  .fac-card .fac-code{font-size:11px;color:var(--ash-dim);margin-bottom:20px;}
  .fac-card h3{font-family:inherit;font-size:22px;margin-bottom:6px;color:var(--gold-soft);}
  .fac-card .fac-en{font-size:12px;color:var(--ash-dim);margin-bottom:16px;letter-spacing:0.03em;}
  .fac-card p{font-size:13.5px;color:var(--ash);}
  @media (max-width:920px){.fac-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:600px){.fac-grid{grid-template-columns:1fr;}}

  /* ================= LIBRARY + VOICE SPLIT ================= */
  .split-section{background:var(--void);}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .split-col{background:var(--aubergine);padding:clamp(30px,4vw,54px);border-radius:var(--radius);border:1px solid var(--hairline);transition:border-color .4s, transform .4s;}
  .split-col:hover{border-color:var(--gold);}
  .split-col .eyebrow{margin-bottom:14px;}
  .split-col h3{font-family:inherit;font-size:clamp(22px,2.4vw,30px);margin-bottom:16px;}
  .split-col > p{color:var(--ash);font-size:14.5px;margin-bottom:32px;max-width:420px;}
  .item-list{display:flex;flex-direction:column;gap:10px;}
  .item-row{
    background:rgba(255,255,255,0.03);padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;
    border-radius:10px;border:1px solid transparent;
    transition:transform .3s cubic-bezier(.2,.8,.2,1), background .3s, border-color .3s;
  }
  .item-row:hover{transform:translateY(-3px);background:rgba(191,154,105,0.08);border-color:var(--hairline);}
  .item-row .it-title{font-size:14.5px;color:var(--parchment);}
  .item-row .it-meta{font-size:11.5px;color:var(--ash-dim);white-space:nowrap;}
  @media (max-width:820px){.split{grid-template-columns:1fr;}}

  /* ================= ARTICLES ================= */
  .articles-section{background:var(--void-deep);}
  .art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
  .art-card{display:flex;flex-direction:column;cursor:pointer;transition:transform .4s cubic-bezier(.2,.8,.2,1);}
  .art-card:hover{transform:translateY(-6px);}
  .art-thumb{
    aspect-ratio:4/3;background:linear-gradient(135deg,var(--aubergine) 0%, var(--void) 100%);
    position:relative;overflow:hidden;margin-bottom:20px;border:1px solid var(--hairline);
    border-radius:var(--radius);transition:border-color .4s;
  }
  .art-card:hover .art-thumb{border-color:var(--gold);}
  .art-thumb::after{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 30% 70%, rgba(191,154,105,0.25), transparent 60%);
    transition:transform .6s ease;
  }
  .art-card:hover .art-thumb::after{transform:scale(1.3);}
  .art-tag{font-size:11px;color:var(--gold);margin-bottom:10px;letter-spacing:0.05em;}
  .art-card h3{font-family:inherit;font-size:19px;margin-bottom:10px;line-height:1.4;}
  .art-card .art-meta{font-size:12px;color:var(--ash-dim);}
  @media (max-width:920px){.art-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:620px){.art-grid{grid-template-columns:1fr;}}
  .art-more{margin-top:56px;text-align:center;}

  /* ================= CTA ================= */
  .cta-section{
    background:var(--void);
    text-align:center;
    position:relative;
  }
  .cta-section h2{font-family:inherit;font-size:clamp(28px,4vw,46px);max-width:640px;margin:0 auto 22px;}
  .cta-section p{color:var(--ash);max-width:480px;margin:0 auto 40px;}

  /* ================= FOOTER ================= */
  footer{background:var(--void-deep);border-top:1px solid var(--hairline);padding:70px 0 30px;}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:60px;}
  .foot-col h4{font-size:12.5px;letter-spacing:0.1em;color:var(--ash-dim);margin-bottom:18px;text-transform:uppercase;}
  .foot-col a{display:block;font-size:14px;color:var(--ash);margin-bottom:12px;transition:color .3s;}
  .foot-col a:hover{color:var(--gold-soft);}
  .foot-col p{color:var(--ash);font-size:14px;margin-bottom:20px;}
  .newsletter{display:flex;border-bottom:1px solid var(--hairline);padding-bottom:10px;}
  .newsletter input{background:none;border:none;color:var(--parchment);font-size:13.5px;flex:1;outline:none;font-family:inherit;}
  .newsletter input::placeholder{color:var(--ash-dim);}
  .newsletter button{background:none;border:none;color:var(--gold);cursor:pointer;font-size:13px;}
  .foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:26px;border-top:1px solid var(--hairline);font-size:12px;color:var(--ash-dim);}
  @media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.foot-grid{grid-template-columns:1fr;}}
  .foot-social{display:flex;gap:10px;margin-top:22px;}

  /* ================= MEMBERSHIP MODAL ================= */
  .modal-overlay{
    position:fixed;inset:0;z-index:300;background:rgba(4,15,10,0.78);backdrop-filter:blur(4px);
    display:flex;align-items:center;justify-content:center;padding:20px;
    opacity:0;pointer-events:none;transition:opacity .35s ease;
  }
  .modal-overlay.open{opacity:1;pointer-events:auto;}
  .modal-box{
    background:var(--aubergine);border:1px solid var(--hairline);border-radius:20px;
    max-width:420px;width:100%;padding:clamp(28px,4vw,44px);position:relative;
    transform:translateY(16px) scale(.98);transition:transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .modal-overlay.open .modal-box{transform:translateY(0) scale(1);}
  .modal-close{position:absolute;top:18px;inset-inline-end:18px;background:none;border:none;color:var(--ash);font-size:22px;cursor:pointer;transition:color .3s;}
  .modal-close:hover{color:var(--gold-soft);}
  .modal-box h3{font-family:inherit;font-size:26px;margin-bottom:10px;}
  .modal-box .modal-sub{color:var(--ash);font-size:13.5px;margin-bottom:28px;}
  .field{margin-bottom:18px;}
  .field label{display:block;font-size:12.5px;color:var(--ash-dim);margin-bottom:8px;letter-spacing:0.03em;}
  .field input{
    width:100%;background:rgba(255,255,255,0.04);border:1px solid var(--hairline);border-radius:10px;
    padding:13px 16px;color:var(--parchment);font-size:14.5px;font-family:inherit;outline:none;
    transition:border-color .3s, background .3s;
  }
  .field input:focus{border-color:var(--gold);background:rgba(255,255,255,0.06);}
  .field .hint{font-size:11.5px;color:var(--ash-dim);margin-top:6px;}
  .modal-box .btn-primary{width:100%;justify-content:center;margin-top:8px;}
  .form-msg{margin-top:16px;font-size:13px;text-align:center;border-radius:10px;padding:10px;display:none;}
  .form-msg.show{display:block;}
  .form-msg.ok{background:rgba(53,106,97,0.25);color:#bfe8d8;border:1px solid rgba(53,106,97,0.5);}
  .form-msg.err{background:rgba(184,92,46,0.18);color:#f4c3a8;border:1px solid rgba(184,92,46,0.4);}

/* ================= AUTH TABS + MEMBER/ADMIN PAGES (shared) ================= */
.auth-tabs{display:flex;gap:4px;background:rgba(255,255,255,0.04);border-radius:12px;padding:4px;margin-bottom:26px;}
.auth-tab{flex:1;text-align:center;padding:10px;border-radius:9px;font-size:13.5px;cursor:pointer;color:var(--ash);transition:all .3s;border:none;background:none;font-family:inherit;}
.auth-tab.active{background:var(--gold);color:var(--void-deep);font-weight:600;}
.auth-panel{display:none;}
.auth-panel.active{display:block;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:480px){.field-row{grid-template-columns:1fr;}}
.field .hint.optional{color:var(--ash-dim);}

.page-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;}
.page-card{
  background:var(--aubergine);border:1px solid var(--hairline);border-radius:20px;
  max-width:480px;width:100%;padding:clamp(28px,4vw,44px);
}
.page-card.wide{max-width:820px;}
.page-card .logo{margin-bottom:26px;justify-content:center;}
.page-card h1{font-family:inherit;font-size:26px;margin-bottom:6px;text-align:center;}
.page-card .sub{color:var(--ash);font-size:13.5px;text-align:center;margin-bottom:30px;}
.role-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:11.5px;font-family:inherit;letter-spacing:0.04em;}
.role-badge.admin{background:rgba(191,154,105,0.18);color:var(--gold-soft);border:1px solid var(--hairline);}
.role-badge.member{background:rgba(255,255,255,0.06);color:var(--ash);border:1px solid rgba(255,255,255,0.1);}
.user-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.user-table th{text-align:start;color:var(--ash-dim);font-weight:500;font-size:11.5px;letter-spacing:0.05em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--hairline);}
.user-table td{padding:12px;border-bottom:1px solid rgba(255,255,255,0.05);color:var(--parchment);}
.user-table select{background:var(--void);color:var(--parchment);border:1px solid var(--hairline);border-radius:8px;padding:6px 10px;font-family:inherit;font-size:13px;}
.empty-state{text-align:center;padding:50px 20px;color:var(--ash-dim);}
.top-mini-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;max-width:820px;width:100%;}
.top-mini-nav a{font-size:13px;color:var(--ash);}
.top-mini-nav a:hover{color:var(--gold-soft);}
.load-msg{text-align:center;color:var(--ash-dim);font-size:13px;padding:20px;}
