/* ===== Flat Earth People — global design system ===== */
:root{
  --fep-bg:#0a0c12; --fep-bg-2:#11141d; --fep-bg-3:#171b26; --fep-bg-4:#1d2230;
  --fep-border:#262b3a; --fep-border-soft:#1c2130;
  --fep-text:#f2efe9; --fep-text-dim:#a3a8b8; --fep-text-faint:#6f7385;
  --fep-accent:#9d6bff; --fep-accent-bright:#c4a7ff; --fep-accent-dim:rgba(157,107,255,.14);
  --fep-accent-line:rgba(157,107,255,.35);
  --fep-radius:14px; --fep-radius-sm:9px;
  --fep-maxw:1180px;
}
body.fep-site{ background:var(--fep-bg); color:var(--fep-text); }
body.fep-site #page, body.fep-site #content, body.fep-site .site-content{ background:var(--fep-bg); }
.fep-app{ background:var(--fep-bg); color:var(--fep-text); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; }
.fep-app *{ box-sizing:border-box; }
.fep-app a{ color:var(--fep-accent-bright); text-decoration:none; }
.fep-app a:hover{ text-decoration:underline; }
.fep-wrap{ max-width:var(--fep-maxw); margin:0 auto; padding:0 24px; }
.fep-section{ padding:76px 0; }
.fep-section-tight{ padding:44px 0; }
.fep-section-border-top{ border-top:1px solid var(--fep-border-soft); }

/* type */
.fep-eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--fep-accent-bright); margin:0 0 14px; }
.fep-eyebrow::before{ content:""; width:18px; height:1px; background:var(--fep-accent); display:inline-block; }
.fep-h1{ font-size:clamp(34px,5vw,58px); line-height:1.06; font-weight:800; letter-spacing:-.5px; color:#fff; margin:0 0 18px; }
.fep-h2{ font-size:clamp(26px,3.4vw,38px); line-height:1.12; font-weight:800; letter-spacing:-.3px; color:#fff; margin:0 0 14px; }
.fep-h3{ font-size:20px; line-height:1.3; font-weight:700; color:#fff; margin:0 0 8px; }
.fep-lede{ font-size:clamp(16px,1.8vw,19px); line-height:1.6; color:var(--fep-text-dim); max-width:640px; margin:0 0 28px; }
.fep-p{ font-size:15.5px; line-height:1.75; color:var(--fep-text-dim); }
.fep-section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:34px; }
.fep-section-head .fep-h2{ margin-bottom:0; }
.fep-see-all{ font-size:13.5px; font-weight:700; color:var(--fep-accent-bright); white-space:nowrap; }

/* buttons */
.fep-btn{ display:inline-flex; align-items:center; gap:8px; padding:13px 24px; border-radius:9px; font-size:14.5px; font-weight:700; cursor:pointer; border:1px solid var(--fep-border); background:var(--fep-bg-3); color:var(--fep-text); transition:transform .12s,border-color .15s,background .15s; }
.fep-btn:hover{ border-color:#3a4256; background:var(--fep-bg-4); text-decoration:none; }
.fep-btn:active{ transform:scale(.97); }
.fep-btn-primary{ background:linear-gradient(135deg,#8b5cf6,#6d28d9); border:none; color:#fff; box-shadow:0 10px 28px rgba(139,92,246,.35); }
.fep-btn-primary:hover{ background:linear-gradient(135deg,#9868ff,#7c3aed); color:#fff; }
.fep-btn-outline{ background:transparent; border:1px solid var(--fep-border); }
.fep-btn-sm{ padding:9px 16px; font-size:13px; }

/* badges */
.fep-badge{ display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; padding:4px 9px; border-radius:5px; background:var(--fep-accent-dim); color:var(--fep-accent-bright); }
.fep-dot{ display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--fep-accent-bright); margin-right:7px; animation:fep-pulse 1.6s infinite; }
@keyframes fep-pulse{ 0%,100%{opacity:1;} 50%{opacity:.3;} }

/* grid */
.fep-grid{ display:grid; gap:22px; }
.fep-grid-2{ grid-template-columns:repeat(2,1fr); }
.fep-grid-3{ grid-template-columns:repeat(3,1fr); }
.fep-grid-4{ grid-template-columns:repeat(4,1fr); }
.fep-grid-6{ grid-template-columns:repeat(6,1fr); }
@media(max-width:900px){ .fep-grid-3,.fep-grid-4{ grid-template-columns:repeat(2,1fr); } .fep-grid-6{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:560px){ .fep-grid-2,.fep-grid-3,.fep-grid-4{ grid-template-columns:1fr; } .fep-grid-6{ grid-template-columns:repeat(2,1fr); } }

/* cards */
.fep-card{ background:var(--fep-bg-3); border:1px solid var(--fep-border); border-radius:var(--fep-radius); overflow:hidden; transition:transform .18s,border-color .18s,box-shadow .18s; display:flex; flex-direction:column; }
.fep-card:hover{ transform:translateY(-4px); border-color:#3a4260; box-shadow:0 18px 40px rgba(0,0,0,.4); text-decoration:none; }
.fep-card-media{ position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--fep-bg-4); }
.fep-card-media .fep-card-icon{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:30px; opacity:.85; }
.fep-card-body{ padding:18px 20px 22px; flex:1; display:flex; flex-direction:column; }
.fep-card-cat{ font-size:11px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--fep-accent-bright); margin-bottom:8px; }
.fep-card-title{ font-size:17px; font-weight:700; color:#fff; line-height:1.35; margin:0 0 8px; }
.fep-card-excerpt{ font-size:13.5px; color:var(--fep-text-dim); line-height:1.55; flex:1; }
.fep-card-meta{ font-size:12px; color:var(--fep-text-faint); margin-top:14px; padding-top:14px; border-top:1px solid var(--fep-border-soft); }
.fep-card-large{ grid-column:span 2; }
.fep-card-large .fep-card-media{ aspect-ratio:16/8; }
@media(max-width:900px){ .fep-card-large{ grid-column:span 1; } }

/* category tiles */
.fep-cat-tile{ background:var(--fep-bg-3); border:1px solid var(--fep-border); border-radius:var(--fep-radius-sm); padding:22px 20px; transition:border-color .15s,transform .15s; }
.fep-cat-tile:hover{ border-color:var(--fep-accent-line); transform:translateY(-2px); text-decoration:none; }
.fep-cat-icon{ font-size:22px; margin-bottom:12px; display:block; }
.fep-cat-name{ font-size:14.5px; font-weight:700; color:#fff; margin-bottom:4px; }
.fep-cat-count{ font-size:12px; color:var(--fep-text-faint); }

/* textures (css-only, no images) */
.fep-tex-topo{ background:
  repeating-radial-gradient(circle at 30% 40%, transparent 0 22px, rgba(157,107,255,.10) 23px 24px, transparent 25px 46px),
  repeating-radial-gradient(circle at 80% 70%, transparent 0 30px, rgba(255,255,255,.05) 31px 32px, transparent 33px 60px),
  linear-gradient(160deg,#171b26,#0d0f16); }
.fep-tex-stars{ background-color:#0d0f18; background-image:
  radial-gradient(1.5px 1.5px at 20% 30%, #fff 100%, transparent),
  radial-gradient(1.5px 1.5px at 70% 20%, #fff 100%, transparent),
  radial-gradient(1px 1px at 40% 70%, #fff 100%, transparent),
  radial-gradient(1px 1px at 85% 60%, #fff 100%, transparent),
  radial-gradient(1.5px 1.5px at 55% 45%, #fff 100%, transparent),
  radial-gradient(1px 1px at 10% 80%, #fff 100%, transparent),
  radial-gradient(1.5px 1.5px at 90% 90%, #fff 100%, transparent),
  linear-gradient(160deg,#161a28,#0a0c12); background-size:auto; opacity:1; }
.fep-tex-horizon{ background:linear-gradient(180deg,#141726 0%,#1a1030 55%,#0a0c12 100%); position:relative; }
.fep-tex-horizon::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:linear-gradient(90deg,transparent,var(--fep-accent),transparent); }
.fep-tex-grid{ background-color:#12151f; background-image:linear-gradient(rgba(157,107,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(157,107,255,.09) 1px,transparent 1px); background-size:26px 26px; }

/* hero */
.fep-hero{ position:relative; border-radius:18px; overflow:hidden; padding:88px 40px; text-align:center; box-shadow:0 0 0 1px var(--fep-border),0 30px 80px rgba(0,0,0,.5); }
.fep-hero-inner{ position:relative; z-index:2; max-width:780px; margin:0 auto; }
.fep-hero .fep-h1{ margin-bottom:20px; }
.fep-hero-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:30px; }

/* callout / cta banner */
.fep-cta{ background:linear-gradient(135deg,var(--fep-bg-3),var(--fep-bg-4)); border:1px solid var(--fep-accent-line); border-radius:var(--fep-radius); padding:44px; text-align:center; }
.fep-cta .fep-h2{ margin-bottom:10px; }

/* footer */
.fep-footer{ background:#07080c; border-top:1px solid var(--fep-border-soft); padding:60px 0 28px; }
.fep-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:40px; }
@media(max-width:800px){ .fep-footer-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .fep-footer-grid{ grid-template-columns:1fr; } }
.fep-footer-brand{ font-size:18px; font-weight:800; color:#fff; margin-bottom:10px; }
.fep-footer-desc{ font-size:13px; color:var(--fep-text-faint); line-height:1.6; max-width:280px; }
.fep-footer-col h4{ font-size:12px; text-transform:uppercase; letter-spacing:1px; color:var(--fep-text-faint); margin:0 0 14px; }
.fep-footer-col ul{ list-style:none; margin:0; padding:0; }
.fep-footer-col li{ margin-bottom:10px; }
.fep-footer-col a{ font-size:13.5px; color:var(--fep-text-dim); }
.fep-footer-col a:hover{ color:var(--fep-accent-bright); }
.fep-footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-top:24px; border-top:1px solid var(--fep-border-soft); font-size:12px; color:var(--fep-text-faint); }
.fep-social{ display:flex; gap:14px; }
.fep-social a{ color:var(--fep-text-dim); font-size:15px; }

/* misc */
.fep-divider{ height:1px; background:var(--fep-border-soft); margin:0; border:none; }
.fep-center{ text-align:center; }
.fep-mt0{margin-top:0;} .fep-mb0{margin-bottom:0;}
.fep-quote{ font-size:20px; line-height:1.5; font-weight:600; color:#fff; border-left:3px solid var(--fep-accent); padding-left:22px; margin:0; }
.fep-avatar{ width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg,#3a2f5c,#1d2230); display:inline-flex; align-items:center; justify-content:center; font-weight:700; color:var(--fep-accent-bright); flex:none; }
.fep-list-check{ list-style:none; margin:0; padding:0; }
.fep-list-check li{ position:relative; padding-left:28px; margin-bottom:12px; font-size:14.5px; color:var(--fep-text-dim); line-height:1.5; }
.fep-list-check li::before{ content:"✓"; position:absolute; left:0; top:0; color:var(--fep-accent-bright); font-weight:800; }
.fep-table{ width:100%; border-collapse:collapse; }
.fep-table th,.fep-table td{ text-align:left; padding:14px 16px; border-bottom:1px solid var(--fep-border-soft); font-size:14px; color:var(--fep-text-dim); }
.fep-table th{ color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.5px; }
.fep-pill-row{ display:flex; gap:10px; flex-wrap:wrap; }
.fep-pill{ font-size:12.5px; padding:7px 14px; border-radius:999px; border:1px solid var(--fep-border); color:var(--fep-text-dim); }
.fep-plan{ background:var(--fep-bg-3); border:1px solid var(--fep-border); border-radius:var(--fep-radius); padding:32px; }
.fep-plan-featured{ border-color:var(--fep-accent-line); box-shadow:0 0 0 1px var(--fep-accent-line),0 20px 50px rgba(139,92,246,.15); }
.fep-plan-price{ font-size:38px; font-weight:800; color:#fff; margin:14px 0 4px; }
.fep-plan-price span{ font-size:14px; color:var(--fep-text-faint); font-weight:500; }
