/* ─── LOGIN MODAL ─────────────────────────────────────────────────────────── */
.modal-overlay{
  position:fixed;inset:0;z-index:500;
  background:rgba(10,8,5,0.75);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .25s ease;
  padding:1.5rem;
}
.modal-overlay.active{opacity:1;pointer-events:all}

.modal-box{
  background:var(--castle-int2);
  border:1px solid var(--border-gold2);
  padding:2.5rem 2rem;
  width:100%;max-width:420px;
  position:relative;
  animation:fadeUp .25s ease both;
  box-shadow:0 24px 60px rgba(0,0,0,0.6);
}

.modal-close{
  position:absolute;top:1rem;right:1rem;
  background:none;border:none;cursor:pointer;
  color:var(--text-dim);font-size:1rem;line-height:1;
  transition:color .2s;
}
.modal-close:hover{color:var(--text-muted)}

.modal-eyebrow{
  font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold3);margin-bottom:.9rem;
  display:flex;align-items:center;gap:.6rem;
}
.modal-eyebrow::after{content:'';width:24px;height:1px;background:var(--gold3)}

.modal-title{
  font-family:'Uncial Antiqua',serif;
  font-size:1.6rem;color:var(--text-castle);
  margin-bottom:.4rem;line-height:1.2;
}
.modal-sub{
  font-size:.95rem;font-style:italic;font-weight:300;
  color:var(--text-muted);margin-bottom:1.8rem;
}

.modal-form{display:flex;flex-direction:column;gap:0}
.modal-form input[type="email"],
.modal-form input[type="password"]{
  width:100%;padding:.75rem 1rem;
  font-family:'Crimson Pro',serif;font-size:.95rem;
  background:rgba(255,255,255,0.05);
  border:1px solid var(--border-gold2);
  color:var(--text-castle);outline:none;
  transition:background .2s,border-color .2s;
}
.modal-form input[type="password"]{border-top:none}
.modal-form input::placeholder{color:var(--text-dim)}
.modal-form input:focus{background:rgba(255,255,255,0.08);border-color:rgba(200,168,75,0.5)}
.modal-form button{
  margin-top:.6rem;width:100%;
  padding:.8rem 1.2rem;
  font-family:'Crimson Pro',serif;font-size:.95rem;font-weight:600;
  color:#1a1510;background:var(--gold);border:none;cursor:pointer;
  clip-path:polygon(0 0,100% 0,calc(100% - 5px) 100%,0 100%);
  transition:background .2s;
}
.modal-form button:hover:not(:disabled){background:var(--gold2)}
.modal-form button:disabled{opacity:.6;cursor:not-allowed}

.modal-note{font-size:.82rem;margin-top:.7rem;min-height:1.1rem;font-style:italic}
.modal-note.error{color:#c0392b}


/* HERO CTA BUTTONS */
.hero-cta-btns{
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
  max-width:400px;margin:0 auto;
  animation:fadeUp .7s .3s ease both;
}
.hero-signup-btn{
  width:100%;padding:.85rem 1.4rem;
  font-family:'Crimson Pro',serif;font-size:1rem;font-weight:600;
  color:#fff;background:#2d5c1e;border:none;cursor:pointer;
  clip-path:polygon(0 0,100% 0,calc(100% - 5px) 100%,0 100%);
  transition:background .2s;letter-spacing:.01em;
}
.hero-signup-btn:hover{background:#3a7a26}
.hero-login-btn{
  width:100%;padding:.75rem 1.4rem;
  font-family:'Crimson Pro',serif;font-size:.9rem;font-weight:400;font-style:italic;
  color:var(--text-day);background:rgba(255,255,255,0.25);
  border:1px solid rgba(0,0,0,0.18);cursor:pointer;
  clip-path:polygon(0 0,100% 0,calc(100% - 5px) 100%,0 100%);
  transition:background .2s;opacity:.85;
}
.hero-login-btn:hover{background:rgba(255,255,255,0.35)}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --sky-day:#7ecbea;--sky2:#b8e4f5;--sky3:#d4eef7;
  --grass:#3a8c2f;--grass2:#2d6e24;--grass3:#4aaa3c;
  --stone-wall:#6b6560;--stone-wall2:#7a7470;--stone-dark:#3a3530;
  --castle-int:#1a1510;--castle-int2:#221e18;--castle-int3:#2e2820;
  --gold:#c8a84b;--gold2:#e8c97a;--gold3:#8b6f2f;--gold4:#f5e4b0;
  --text-day:#1a2a1a;--text-castle:#e8e0cc;--text-muted:#a89e88;--text-dim:#6b6050;
  --border-gold:rgba(200,168,75,0.2);--border-gold2:rgba(200,168,75,0.35);
  --torch:#e8762a;
}
[data-theme="dark"]{
  --sky-day:#2a3d4a;--sky2:#1e2e38;--sky3:#162028;
  --grass:#1e4a18;--grass2:#153810;--grass3:#265e1e;
  --stone-wall:#4a4540;--stone-wall2:#5a5550;--stone-dark:#28231e;
  --castle-int:#0e0c08;--castle-int2:#141108;--castle-int3:#1c1810;
  --text-day:#c8dfd0;
}
html{scroll-behavior:smooth}
body{font-family:'Crimson Pro',Georgia,serif;background:var(--castle-int);color:var(--text-castle);overflow-x:hidden;font-size:18px}

/* THEME TOGGLE */
.theme-toggle{
  position:fixed;top:1rem;right:1rem;z-index:200;
  width:40px;height:40px;border-radius:50%;
  background:rgba(88, 88, 88, 0.4);border:1px solid var(--border-gold2);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;transition:background .2s;backdrop-filter:blur(4px);
}
.theme-toggle:hover{background:rgba(0,0,0,0.6)}

/* HERO SCENE */
.hero-scene{
  position:relative;height:100vh;min-height:600px;overflow:hidden;
}
.sky-layer{
  position:absolute;inset:0;
  background:linear-gradient(to bottom, var(--sky-day) 0%, var(--sky2) 60%, var(--sky3) 100%);
  transition:background 1s;
}
.sky-layer::after{
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(
    0deg,transparent,transparent 3px,
    rgba(255,255,255,0.008) 3px,rgba(255,255,255,0.008) 4px
  );
  pointer-events:none;
}

/* CLOUDS */
.cloud{position:absolute}
.c1{top:12%;left:8%;animation:drift1 18s ease-in-out infinite}
.c2{top:9%;left:50%;animation:drift2 22s ease-in-out infinite}
.c3{top:15%;right:4%;animation:drift1 26s 4s ease-in-out infinite}
@keyframes drift1{0%,100%{transform:translateX(0)}50%{transform:translateX(18px)}}
@keyframes drift2{0%,100%{transform:translateX(0)}50%{transform:translateX(-14px)}}

/* HERO TEXT */
.hero-text{
  position:absolute;top:18%;left:50%;transform:translateX(-50%);
  text-align:center;z-index:10;width:90%;max-width:700px;
}
.hero-eyebrow{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--text-day);opacity:.7;margin-bottom:1.2rem;
  display:flex;align-items:center;justify-content:center;gap:.8rem;
  animation:fadeUp .7s ease both;
}
.hero-eyebrow::before,.hero-eyebrow::after{content:'';width:28px;height:1px;background:currentColor;opacity:.5}
.hero-h1{
  font-family:'Uncial Antiqua',serif;
  font-size:clamp(2.6rem,6vw,5rem);
  line-height:1.1;color:var(--text-day);
  text-shadow:0 2px 20px rgba(255,255,255,0.3);
  margin-bottom:1rem;
  animation:fadeUp .7s .1s ease both;
}
.hero-h1 .gold-txt{color:#2d5c1e;text-shadow:0 1px 12px rgba(255,255,255,0.2)}
.hero-sub{
  font-size:1.15rem;font-style:italic;font-weight:300;
  color:var(--text-day);opacity:.8;max-width:480px;margin:0 auto 1.6rem;
  animation:fadeUp .7s .2s ease both;
}

/* HERO SIGNUP FORM */
.waitlist-hero{
  display:flex;flex-direction:column;max-width:400px;margin:0 auto;gap:0;
  animation:fadeUp .7s .3s ease both;
}
.waitlist-hero input[type="email"],
.waitlist-hero input[type="password"]{
  width:100%;padding:.72rem 1.1rem;
  font-family:'Crimson Pro',serif;font-size:.95rem;
  background:rgba(255,255,255,0.55);
  border:1px solid rgba(0,0,0,0.2);
  color:#1a2a1a;outline:none;transition:background .2s, border-color .2s;
}
.waitlist-hero input[type="password"]{border-top:none}
.waitlist-hero input::placeholder{color:rgba(0,0,0,0.4)}
.waitlist-hero input:focus{background:rgba(255,255,255,0.75)}
.waitlist-hero button{
  width:100%;margin-top:.5rem;
  padding:.75rem 1.2rem;font-family:'Crimson Pro',serif;
  font-size:.9rem;font-weight:600;color:#fff;background:#2d5c1e;
  border:none;cursor:pointer;
  clip-path:polygon(0 0,100% 0,calc(100% - 4px) 100%,0 100%);
  transition:background .2s;
}
.waitlist-hero button:hover:not(:disabled){background:#3a7a26}
.waitlist-hero button:disabled{opacity:.6;cursor:not-allowed}

.hero-note{font-size:.78rem;color:var(--text-day);opacity:.55;margin-top:.6rem;font-style:italic;animation:fadeUp .7s .4s ease both}
.hero-success-msg{display:none;color:#2d5c1e;font-weight:600;margin-top:.6rem;line-height:1.6;animation:fadeUp .3s ease both}

/* CASTLE BODY */
.castle-body{background:var(--castle-int);position:relative;}

.stone-section{
  background:var(--castle-int2);position:relative;padding:5.5rem 2rem;
}
.stone-section::before{
  content:'';position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(0deg,transparent,transparent 28px,rgba(255,255,255,0.012) 28px,rgba(255,255,255,0.012) 29px),
    repeating-linear-gradient(90deg,transparent,transparent 40px,rgba(255,255,255,0.006) 40px,rgba(255,255,255,0.006) 41px);
  pointer-events:none;
}
.stone-section.darker{background:var(--castle-int)}
.stone-section.lighter{background:var(--castle-int3)}
.section-inner{max-width:880px;margin:0 auto;position:relative;z-index:1}

/* TORCH */
.torch-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;padding:0 .5rem}
.torch{width:3px;height:32px;background:var(--stone-wall2);position:relative;display:flex;flex-direction:column;align-items:center}
.torch::before{
  content:'';position:absolute;top:-8px;
  width:8px;height:8px;border-radius:50% 50% 30% 30%;
  background:var(--torch);
  box-shadow:0 0 8px var(--torch),0 0 16px rgba(232,118,42,0.4);
  animation:flicker 1.5s ease-in-out infinite;
}
@keyframes flicker{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.85)}}

.rule{display:flex;align-items:center;gap:1.2rem;padding:.5rem 2rem;max-width:880px;margin:0 auto}
.rule-line{flex:1;height:1px;background:var(--border-gold)}
.rule-diamond{width:7px;height:7px;background:var(--gold3);transform:rotate(45deg);flex-shrink:0}
.rule-wrap{padding:1.5rem 0}

.eyebrow{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold3);margin-bottom:1rem;display:flex;align-items:center;gap:.6rem}
.eyebrow::after{content:'';width:28px;height:1px;background:var(--gold3)}
.sec-title{font-family:'Uncial Antiqua',serif;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.2;margin-bottom:1.1rem;color:var(--text-castle)}
.sec-body{font-size:1rem;font-weight:300;color:var(--text-muted);line-height:1.75;max-width:500px}

/* FEATURES */
.feat-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1px;margin-top:2.5rem;
  background:var(--border-gold);border:1px solid var(--border-gold);
}
.feat-card{background:var(--castle-int2);padding:1.8rem 1.5rem;position:relative;transition:background .2s}
.feat-card:hover{background:var(--castle-int3)}
.feat-card::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold3),transparent);opacity:0;transition:opacity .3s}
.feat-card:hover::after{opacity:1}
.feat-glyph{font-size:1.4rem;margin-bottom:.9rem;display:block}
.feat-title{font-family:'Uncial Antiqua',serif;font-size:.95rem;color:var(--gold);margin-bottom:.45rem}
.feat-body{font-size:.875rem;font-weight:300;color:var(--text-muted);line-height:1.65}

/* STEPS */
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-top:2.5rem}
.step{padding-left:1.4rem;border-left:1px solid var(--border-gold2)}
.step-num{font-family:'DM Mono','Courier New',monospace;font-size:.7rem;color:var(--gold3);letter-spacing:.1em;display:block;margin-bottom:.5rem}
.step-title{font-family:'Uncial Antiqua',serif;font-size:1rem;color:var(--text-castle);margin-bottom:.45rem}
.step-body{font-size:.875rem;font-weight:300;color:var(--text-muted);line-height:1.65}

/* MANIFESTO */
.manifesto-wrap{text-align:center;max-width:640px;margin:0 auto}
.manifesto-wrap blockquote{
  font-size:clamp(1.2rem,2.5vw,1.75rem);font-style:italic;font-weight:300;
  color:var(--text-castle);line-height:1.6;padding:0 2rem;position:relative;margin-bottom:1.2rem;
}
.manifesto-wrap blockquote::before{
  content:'\201C';font-family:'Uncial Antiqua',serif;font-size:5rem;
  color:var(--gold3);position:absolute;top:-2rem;left:-.5rem;line-height:1;
}
.manifesto-attr{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}

/* CTA SIGNUP FORM */
.cta-wrap{text-align:center;max-width:500px;margin:0 auto}
.waitlist-cta{display:flex;flex-direction:column;margin:0 auto;max-width:400px;gap:0}
.waitlist-cta input[type="email"],
.waitlist-cta input[type="password"]{
  width:100%;padding:.72rem 1.1rem;font-family:'Crimson Pro',serif;font-size:.95rem;
  background:rgba(255,255,255,0.05);border:1px solid var(--border-gold2);
  color:var(--text-castle);outline:none;transition:background .2s, border-color .2s;
}
.waitlist-cta input[type="password"]{border-top:none}
.waitlist-cta input::placeholder{color:var(--text-dim)}
.waitlist-cta input:focus{background:rgba(255,255,255,0.08)}
.waitlist-cta button{
  width:100%;margin-top:.5rem;
  padding:.75rem 1.2rem;font-family:'Crimson Pro',serif;font-size:.9rem;font-weight:600;
  color:#1a1510;background:var(--gold);border:none;cursor:pointer;
  clip-path:polygon(0 0,100% 0,calc(100% - 4px) 100%,0 100%);transition:background .2s;
}
.waitlist-cta button:hover:not(:disabled){background:var(--gold2)}
.waitlist-cta button:disabled{opacity:.6;cursor:not-allowed}
.cta-note{font-size:.8rem;color:var(--text-dim);font-style:italic;margin-top:.65rem}
.cta-success{display:none;color:var(--gold);margin-top:.65rem;line-height:1.6;animation:fadeUp .3s ease both}

/* FOOTER */
.footer{
  border-top:1px solid var(--border-gold);padding:1.6rem 2.5rem;
  display:flex;align-items:center;justify-content:space-between;
  font-size:.8rem;color:var(--text-dim);font-style:italic;
  background:var(--castle-int);
}
.footer-logo{font-family:'Uncial Antiqua',serif;font-size:.95rem;color:var(--gold3);text-decoration:none}

@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}