:root{
  --night:#0F241C;
  --night-deep:#0A1913;
  --panel-green:#153A2E;
  --panel-green-2:#0F2A21;
  --gold:#D4AF37;
  --gold-soft:#E9CE7E;
  --cream:#F5F1E8;
  --cream-line:#E6DFC9;
  --ink:#1B1B18;
  --ink-soft:#5C6560;
  --font-display:'Playfair Display', Georgia, serif;
  --font-body:'Inter', -apple-system, sans-serif;
}
*{box-sizing:border-box;}
body{margin:0; font-family:var(--font-body); color:var(--ink); background:var(--cream);}
h1,h2,h3,h4{font-family:var(--font-display); margin:0;}
a{text-decoration:none; color:inherit;}

/* NAVBAR */
.navbar{background:var(--night-deep); border-bottom:1px solid rgba(212,175,55,0.25); position:sticky; top:0; z-index:30;}
.navbar__inner{max-width:1400px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:16px 32px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand__mark{font-size:1.6rem; color:var(--gold);}
.brand__tag{
  font-size:0.75rem;
  white-space:nowrap;
  color:#C7CEC9;
  display:none;
}

@media(min-width:1300px){
  .brand__tag{display:block;}
}
.brand__logo{
  height:48px;
  width:auto;
  object-fit:contain;
  display:block;
}
@media(max-width:900px){
  .brand__logo{height:38px;}
}
.navlinks{display:flex; gap:30px;}
.navlinks a{color:#E7E4DC; font-size:0.95rem; font-weight:500;}
.navlinks a.active{color:var(--gold-soft); border-bottom:2px solid var(--gold-soft); padding-bottom:4px;}
.navbtns{display:flex; gap:12px;}
.btn{padding:10px 20px; border-radius:6px; font-weight:600; font-size:0.92rem; display:inline-flex; align-items:center; gap:8px; cursor:pointer;}
.btn--ghost{border:1.5px solid var(--gold); color:var(--gold-soft); background:transparent;}
.btn--icon{
  width:40px; height:40px; padding:0;
  border:1.5px solid var(--gold);
  border-radius:50%;
  color:var(--gold-soft);
  background:rgba(212,175,55,0.06);
  justify-content:center;
}
.btn--icon:hover{background:rgba(212,175,55,0.15); color:#fff;}
.btn--solid{background:var(--panel-green); color:#fff; border:none; box-shadow:0 4px 14px rgba(0,0,0,0.25);}
.btn--solid:hover{background:#0d3122;}
.btn--link{background:transparent; border:1.5px solid transparent; color:#EDE6D0; padding-left:6px; padding-right:6px;}
.btn--link:hover{color:var(--gold-soft);}
.btn--lg{padding:13px 26px; font-size:1rem;}
.nav-toggle{display:none; background:none; border:none; cursor:pointer;}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--gold-soft); margin:5px 0;}

/* HERO */
.hero{
  position:relative;
  min-height:640px;
  display:flex; flex-direction:column; justify-content:center;
  padding:60px 32px 100px; /* extra bottom padding so the overlapping card has room and never clips */
}
.hero__bg{
  position:absolute; inset:0;
  background:url('/static/images/hero.jpg') center/cover no-repeat;
  background-color:var(--night); /* fallback color until you add hero.jpg */
}
.hero__overlay{position:absolute; inset:0; background:
  linear-gradient(90deg, rgba(15,36,28,0.96) 15%, rgba(15,36,28,0.6) 55%, rgba(15,36,28,0.3) 100%),
  linear-gradient(0deg, rgba(10,25,19,0.85) 0%, rgba(10,25,19,0) 30%);}
.hero__content{position:relative; z-index:2; max-width:620px; padding:40px 0 60px;}
.hero h1{font-size:2.8rem; line-height:1.15; color:#fff; font-weight:700;}
.hero h1 .accent{color:var(--gold-soft);}
.hero__content p{color:#D8DAD4; font-size:1.05rem; margin:20px 0 28px; max-width:480px;}
.hero__cta{display:flex; gap:16px; flex-wrap:wrap;}
.hero__note{color:#B9C0BA; font-size:0.85rem; margin-top:20px;}

.hero__badge{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(212,175,55,0.12); border:1px solid rgba(212,175,55,0.4);
  border-radius:20px; padding:7px 16px; margin-bottom:20px;
  color:var(--gold-soft);
}
.hero__badge .icon-svg{width:15px; height:15px; flex-shrink:0;}
.hero__badge-title{font-size:0.8rem; font-weight:600; letter-spacing:0.02em;}
.icon-svg{width:1em; height:1em;}

/* FEATURE STRIP - overlapping bottom of hero */
.feature-strip{
  position:relative; z-index:2;
  background:var(--panel-green); border:1px solid rgba(212,175,55,0.2);
  border-radius:10px; margin:0 32px; transform:translateY(50%);
  display:grid; grid-template-columns:repeat(4,1fr);
  max-width:1200px; margin-left:auto; margin-right:auto;
  box-shadow:0 20px 45px rgba(0,0,0,0.35);
}
.feature-strip__item{display:flex; gap:14px; padding:26px 24px; border-right:1px solid rgba(255,255,255,0.08);}
.feature-strip__item:last-child{border-right:none;}
.fi-icon{width:34px; height:34px; flex-shrink:0; border-radius:50%; background:rgba(212,175,55,0.14); color:var(--gold-soft); display:flex; align-items:center; justify-content:center;}
.fi-icon svg{width:17px; height:17px;}
.feature-strip__item h3{color:var(--gold-soft); font-size:1.05rem; margin-bottom:6px;}
.feature-strip__item p{color:#C7CEC9; font-size:0.85rem; margin:0; line-height:1.4;}

/* SIGNATURE — AI Paper Generation, the one thing this page should be remembered for */
.signature{
  max-width:1300px; margin:0 auto; padding:150px 32px 90px;
  display:grid; grid-template-columns:0.95fr 1.05fr; gap:60px; align-items:center;
}
.section-eyebrow{display:block; color:var(--panel-green); font-size:0.78rem; font-weight:700; letter-spacing:0.09em; text-transform:uppercase; margin-bottom:14px;}
.signature h2{font-size:2.1rem; line-height:1.2; margin-bottom:18px;}
.accent-ink{color:var(--panel-green);}
.signature__text > p{color:var(--ink-soft); font-size:1rem; line-height:1.65; max-width:480px;}
.signature__points{list-style:none; margin:24px 0 32px; padding:0; display:flex; flex-direction:column; gap:12px;}
.signature__points li{display:flex; align-items:flex-start; gap:10px; font-size:0.92rem; color:var(--ink); line-height:1.5;}
.signature__points svg{width:18px; height:18px; flex-shrink:0; margin-top:2px; color:var(--panel-green);}

.signature__demo{display:flex; justify-content:center;}
.paper-mock{
  width:100%; max-width:480px; background:var(--night); border-radius:16px; padding:22px;
  box-shadow:0 24px 50px rgba(15,36,28,0.22);
  display:flex; flex-direction:column; gap:16px;
}
.paper-mock__panel{background:var(--panel-green); border-radius:12px; padding:20px;}
.paper-mock__panel-label{color:var(--gold-soft); font-size:0.7rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:14px;}
.paper-mock__field{background:rgba(0,0,0,0.18); border-radius:8px; padding:12px 14px; margin-bottom:14px;}
.paper-mock__field-label{display:block; color:#9FB0A6; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:4px;}
.paper-mock__field-value{color:#fff; font-size:0.9rem;}
.paper-mock__chips{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px;}
.chip{background:rgba(212,175,55,0.16); border:1px solid rgba(212,175,55,0.35); color:var(--gold-soft); font-size:0.75rem; font-weight:600; padding:5px 11px; border-radius:20px;}
.paper-mock__generate{
  display:flex; align-items:center; gap:8px; justify-content:center;
  background:var(--gold); color:var(--night-deep); font-weight:700; font-size:0.85rem;
  padding:11px; border-radius:8px;
}
.paper-mock__generate svg{width:15px; height:15px; animation:spin 3s linear infinite;}
.paper-mock__panel--output{background:#fff;}
.paper-mock__panel--output .paper-mock__panel-label{color:var(--panel-green);}
.paper-mock__doc-head{font-family:var(--font-display); font-weight:700; font-size:0.98rem; color:var(--ink); margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--cream-line);}
.paper-mock__line{
  height:9px; border-radius:4px; background:var(--cream-line); margin-bottom:10px;
  width:var(--w, 70%);
  animation:lineReveal 0.5s ease both;
  animation-delay:calc(var(--d, 0) * 0.16s + 0.2s);
}
.paper-mock__line--last{margin-bottom:0;}
@keyframes lineReveal{
  from{opacity:0; transform:translateX(-6px); background:var(--gold-soft);}
  to{opacity:1; transform:translateX(0); background:var(--cream-line);}
}
@keyframes spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce){
  .paper-mock__line{animation:none; opacity:1;}
  .paper-mock__generate svg{animation:none;}
}

/* STATUS STRIP — quiet, single line, not a stat-card grid */
.status-strip{
  display:flex; align-items:center; justify-content:center; gap:10px;
  padding:0 32px 50px; text-align:center;
}
.status-strip__dot{width:8px; height:8px; border-radius:50%; background:#4C9A6A; box-shadow:0 0 0 4px rgba(76,154,106,0.18); flex-shrink:0;}
.status-strip p{margin:0; color:var(--ink-soft); font-size:0.88rem;}

/* TRUST ROW — compact horizontal row, deliberately not the card-grid style used elsewhere */
.trust-row{
  max-width:1100px; margin:0 auto; padding:0 32px 90px;
  display:grid; grid-template-columns:repeat(3,1fr); gap:36px;
  border-top:1px solid var(--cream-line); padding-top:44px;
}
.trust-row__item{display:flex; gap:14px;}
.trust-row__item svg{width:22px; height:22px; flex-shrink:0; color:var(--panel-green); margin-top:2px;}
.trust-row__item h4{font-size:0.95rem; margin-bottom:5px;}
.trust-row__item p{font-size:0.85rem; color:var(--ink-soft); margin:0; line-height:1.5;}

/* FOOTER */
.site-footer{background:var(--night-deep); color:#B9C0BA; padding:20px 32px;}
.site-footer__inner{max-width:1300px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
.quote{font-style:italic; font-size:0.85rem; margin:0;}
.copyright{font-size:0.8rem; margin:0;}

/* RESPONSIVE */
@media(max-width:900px){
  .navlinks{position:absolute; top:100%; left:0; right:0; background:var(--night-deep); flex-direction:column; padding:20px 32px; display:none;}
  .navlinks.open{display:flex;}
  .nav-toggle{display:block;}
  .feature-strip{grid-template-columns:1fr; transform:translateY(20%);}
  .feature-strip__item{border-right:none; border-bottom:1px solid rgba(255,255,255,0.08);}
  .signature{grid-template-columns:1fr; padding-top:80px; gap:40px;}
  .trust-row{grid-template-columns:1fr; gap:24px;}
  .hero h1{font-size:2.1rem;}
}

/* PAGE HEADER (Solutions / Features / Resources / Contact) */
.page-hero{background:var(--night); padding:90px 32px 70px; text-align:center;}
.page-hero__eyebrow{color:var(--gold-soft); font-size:0.8rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:14px;}
.page-hero h1{color:#fff; font-size:2.4rem; max-width:720px; margin:0 auto; line-height:1.2;}
.page-hero h1 .accent{color:var(--gold-soft);}
.page-hero p{color:#C7CEC9; max-width:560px; margin:18px auto 0; font-size:1rem; line-height:1.6;}

/* GENERIC SECTION SCAFFOLDING */
.section{max-width:1300px; margin:0 auto; padding:80px 32px;}
.section--tight{padding-top:60px; padding-bottom:60px;}
.section--alt{background:#fff;}
.section-head{text-align:center; max-width:620px; margin:0 auto 48px;}
.section-head .eyebrow{color:var(--panel-green); font-size:0.78rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:10px;}
.section-head h2{font-size:1.9rem; line-height:1.25;}
.section-head p{color:var(--ink-soft); margin-top:14px; font-size:0.98rem;}

/* CARD GRID */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.card-grid--2{grid-template-columns:repeat(2,1fr);}
.card{background:#fff; border:1px solid var(--cream-line); border-radius:12px; padding:32px 28px; transition:box-shadow 0.2s, transform 0.2s;}
.card:hover{box-shadow:0 14px 30px rgba(27,27,24,0.08); transform:translateY(-3px);}
.card__icon{width:52px; height:52px; border-radius:12px; background:var(--panel-green); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:20px;}
.card h3{font-size:1.1rem; margin-bottom:10px;}
.card p{color:var(--ink-soft); font-size:0.9rem; line-height:1.6; margin:0;}
.card__link{display:inline-block; margin-top:16px; font-size:0.85rem; font-weight:600; color:var(--panel-green);}

/* SOLUTIONS: AUDIENCE CARDS */
.audience-card{background:var(--cream); border:1px solid var(--cream-line); border-radius:14px; padding:36px; display:flex; flex-direction:column; height:100%;}
.audience-card__icon{width:56px; height:56px; border-radius:50%; background:var(--night); color:var(--gold-soft); display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:22px;}
.audience-card h3{font-size:1.3rem; margin-bottom:10px;}
.audience-card p{color:var(--ink-soft); font-size:0.92rem; line-height:1.6; margin-bottom:20px;}
.audience-card ul{list-style:none; padding:0; margin:0 0 24px; flex-grow:1;}
.audience-card li{display:flex; gap:10px; align-items:flex-start; font-size:0.88rem; color:var(--ink); margin-bottom:10px; line-height:1.5;}
.audience-card li::before{content:"✓"; color:var(--panel-green); font-weight:700; flex-shrink:0;}

/* STEPS */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:30px; counter-reset:step;}
.step{text-align:center; position:relative;}
.step__num{width:44px; height:44px; border-radius:50%; background:var(--panel-green); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; margin:0 auto 18px;}
.step h4{font-size:1.05rem; margin-bottom:8px;}
.step p{color:var(--ink-soft); font-size:0.88rem; line-height:1.55;}

/* RESOURCES: FAQ ACCORDION */
.faq{max-width:760px; margin:0 auto;}
.faq details{background:#fff; border:1px solid var(--cream-line); border-radius:10px; padding:18px 22px; margin-bottom:12px;}
.faq summary{font-weight:600; cursor:pointer; font-size:0.98rem; list-style:none; display:flex; justify-content:space-between; align-items:center;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; font-size:1.3rem; color:var(--panel-green); font-weight:400;}
.faq details[open] summary::after{content:"−";}
.faq details p{color:var(--ink-soft); font-size:0.9rem; line-height:1.6; margin:14px 0 0;}

/* RESOURCES: COMING SOON NOTICE */
.notice{background:#F0E6C8; border:1px solid #E3D399; border-radius:10px; padding:16px 20px; font-size:0.88rem; color:#5C4E1F; text-align:center; max-width:700px; margin:0 auto 50px;}

/* CONTACT PAGE */
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:50px; align-items:start;}
.contact-info{display:flex; flex-direction:column; gap:20px;}
.contact-info__item{display:flex; gap:16px; align-items:flex-start;}
.contact-info__icon{width:46px; height:46px; border-radius:50%; background:var(--panel-green); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.contact-info__item h4{font-size:0.98rem; margin-bottom:4px;}
.contact-info__item p{color:var(--ink-soft); font-size:0.88rem; margin:0; line-height:1.5;}
.contact-form{background:#fff; border:1px solid var(--cream-line); border-radius:14px; padding:36px;}
.contact-form .field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.contact-form textarea{width:100%; padding:11px 14px; border:1.5px solid var(--cream-line); border-radius:8px; font-family:var(--font-body); font-size:0.95rem; background:#FBF9F3; resize:vertical; min-height:120px;}
.contact-form textarea:focus{outline:none; border-color:var(--panel-green);}
.form-note{font-size:0.78rem; color:var(--ink-soft); margin-top:14px; text-align:center;}

@media(max-width:900px){
  .card-grid, .card-grid--2{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .contact-form .field-row{grid-template-columns:1fr;}
  .page-hero h1{font-size:1.9rem;}
}

/* AUTH PAGES */
.auth-page{background:var(--cream); min-height:calc(100vh - 140px); display:flex; align-items:center; justify-content:center; padding:60px 20px;}
.auth-card{background:#fff; border:1px solid var(--cream-line); border-radius:12px; box-shadow:0 10px 30px rgba(27,27,24,0.08); padding:40px; width:100%; max-width:440px;}
.auth-card h2{font-size:1.6rem; margin-bottom:6px;}
.auth-card .sub{color:var(--ink-soft); font-size:0.9rem; margin-bottom:28px;}
.auth-error{background:#FBEAEA; border:1px solid #E3B3B3; color:#8A2C2C; padding:10px 14px; border-radius:8px; font-size:0.85rem; margin-bottom:20px;}
.field{margin-bottom:18px;}
.field label{display:block; font-size:0.85rem; font-weight:600; margin-bottom:6px; color:var(--ink);}
.field input{width:100%; padding:11px 14px; border:1.5px solid var(--cream-line); border-radius:8px; font-family:var(--font-body); font-size:0.95rem; background:#FBF9F3;}
.field input:focus{outline:none; border-color:var(--panel-green);}
.auth-card .btn{width:100%; justify-content:center; margin-top:6px;}
.auth-switch{text-align:center; margin-top:22px; font-size:0.88rem; color:var(--ink-soft);}
.auth-switch a{color:var(--panel-green); font-weight:600;}
.app-loader__logo{
  width:52px; height:52px;   /* was 44px */
  object-fit:contain;
  z-index:2;
  animation:loaderPulse 1.4s ease-in-out infinite;
}
/* APP LOADER */
.app-loader{
  position:fixed; inset:0; z-index:9999;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:18px;
  background:rgba(10,25,19,0.92);
  backdrop-filter:blur(3px);
  opacity:0; visibility:hidden;
  transition:opacity 0.25s ease, visibility 0.25s ease;
}
.app-loader.active{opacity:1; visibility:visible;}

.app-loader__box{
  position:relative;
  width:84px; height:84px;
  display:flex; align-items:center; justify-content:center;
}

.app-loader__logo{
  width:52px; height:52px;
  object-fit:contain;
  z-index:2;
  animation:loaderPulse 1.4s ease-in-out infinite;
}

.app-loader__ring{
  position:absolute; inset:0;
  border:3px solid rgba(212,175,55,0.18);
  border-top-color:var(--gold-soft);
  border-radius:50%;
  animation:loaderSpin 0.9s linear infinite;
}

.app-loader__text{
  color:var(--gold-soft);
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.05em;
  margin:0;
}

@keyframes loaderSpin{
  to{transform:rotate(360deg);}
}
@keyframes loaderPulse{
  0%,100%{transform:scale(1); opacity:1;}
  50%{transform:scale(0.88); opacity:0.7;}
}