/* ============================================================
   OT.AI — Global Stylesheet
   Shared across every page. Page-specific styles stay inline.
   ============================================================ */

/* ---------- RESET ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
a{text-decoration:none;color:inherit}
button{font-family:inherit;border:none;background:none;cursor:pointer}
img{max-width:100%;display:block}

/* ---------- DESIGN TOKENS (LIGHT — default) ---------- */
:root{
  /* Surfaces */
  --bg:#fff;
  --bg2:#fafafa;
  --surface:#f5f5f5;
  --surface2:#eee;
  --border:rgba(0,0,0,0.07);
  --border2:rgba(0,0,0,0.12);

  /* Text */
  --text-primary:#171717;
  --text-secondary:#555;
  --text-muted:#999;
  --accent:#171717;

  /* Semantic / agent colors */
  --green:#22c55e;
  --blue:#3b82f6;
  --red:#ef4444;
  --orange:#f59e0b;
  --purple:#8b5cf6;
  --gold:#d97706;

  /* Motion */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-spring:cubic-bezier(.16,1,.3,1);

  /* Nav */
  --nav-h:56px;
  --nav-blur:rgba(255,255,255,0.92);

  /* Radii / shadow */
  --r-sm:3px;
  --r-md:6px;
  --r-lg:12px;
  --shadow-sm:0 2px 10px rgba(0,0,0,0.04);
  --shadow-md:0 6px 24px rgba(0,0,0,0.06);
  --shadow-lg:0 12px 40px rgba(0,0,0,0.08);
}

/* ---------- DARK THEME ---------- */
[data-theme="dark"]{
  --bg:#000;
  --bg2:#0a0a0a;
  --surface:#111;
  --surface2:#161616;
  --border:rgba(255,255,255,0.06);
  --border2:rgba(255,255,255,0.12);
  --text-primary:#f5f5f5;
  --text-secondary:#999;
  --text-muted:#555;
  --accent:#fff;
  --nav-blur:rgba(0,0,0,0.85);
  --shadow-sm:0 2px 10px rgba(0,0,0,0.4);
  --shadow-md:0 6px 24px rgba(0,0,0,0.5);
  --shadow-lg:0 12px 40px rgba(0,0,0,0.6);
}

body{
  background:var(--bg);
  color:var(--text-secondary);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  overflow-x:hidden;
  transition:background .3s ease,color .3s ease;
}

::selection{background:rgba(0,0,0,0.1);color:inherit}
[data-theme="dark"] ::selection{background:rgba(255,255,255,0.15);color:#fff}

/* ---------- SCROLLBAR ---------- */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:10px}
[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#222}

/* ---------- PAGE FADE IN ---------- */
body{opacity:0;animation:pageFade .35s var(--ease-out) forwards}
@keyframes pageFade{to{opacity:1}}

/* ============================================================
   NAVIGATION (shared, glassmorphism on all pages)
   ============================================================ */
nav.site-nav{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  display:flex;justify-content:space-between;align-items:center;
  padding:0 40px;height:var(--nav-h);
  background:var(--nav-blur);
  backdrop-filter:blur(30px);
  -webkit-backdrop-filter:blur(30px);
  border-bottom:1px solid var(--border);
  transition:background .4s ease,border-color .4s ease,backdrop-filter .4s ease;
}
nav.site-nav.hero-mode{
  background:transparent;
  border-bottom-color:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
nav.site-nav .logo{display:flex;align-items:center}
nav.site-nav .logo img{height:32px;transition:filter .3s}
nav.site-nav.hero-mode .logo img{filter:brightness(0) invert(1)}
[data-theme="dark"] nav.site-nav .logo img{filter:brightness(0) invert(1)}

.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{
  font-size:.7rem;font-weight:500;letter-spacing:.3px;
  color:var(--text-muted);transition:color .2s;
  position:relative;padding:4px 0;
}
.nav-links a:hover{color:var(--text-primary)}
.nav-links a.active{color:var(--text-primary)}
nav a.active:not(.logo):not(.nav-cta):not(.nav-btn){position:relative}
nav a.active:not(.logo):not(.nav-cta):not(.nav-btn)::after{
  content:'';position:absolute;left:0;right:0;bottom:-4px;
  height:2px;background:currentColor;border-radius:2px;opacity:.8;
}
nav.site-nav.hero-mode .nav-links a{color:rgba(255,255,255,0.6)}
nav.site-nav.hero-mode .nav-links a:hover,
nav.site-nav.hero-mode .nav-links a.active{color:#fff}
nav.site-nav.hero-mode .nav-links a.active::after{background:#fff}

.nav-cta{
  padding:9px 22px;font-family:'Sora',sans-serif;font-weight:700;
  font-size:.65rem;letter-spacing:.3px;cursor:pointer;
  transition:opacity .2s,transform .15s;
  background:var(--text-primary);color:var(--bg);
  border:none;border-radius:var(--r-sm);
}
nav.site-nav.hero-mode .nav-cta{background:#fff;color:#000}
.nav-cta:hover{opacity:.85}
.nav-cta:active{transform:scale(.97)}

.nav-avatar{
  width:32px;height:32px;border-radius:50%;
  background:var(--surface);border:1px solid var(--border2);
  display:none;align-items:center;justify-content:center;
  color:var(--text-primary);font-size:.7rem;font-weight:700;font-family:'Sora';
  cursor:pointer;transition:transform .15s;
}
.nav-avatar.show{display:flex}
.nav-avatar:hover{transform:scale(1.05)}

/* ---------- HAMBURGER + MOBILE OVERLAY ---------- */
.nav-hamburger{
  display:none;width:28px;height:22px;flex-direction:column;justify-content:space-between;
  cursor:pointer;padding:0;background:transparent;border:none;
}
.nav-hamburger span{
  display:block;height:2px;width:100%;background:var(--text-primary);border-radius:2px;
  transition:transform .3s var(--ease-out),opacity .2s;
}
nav.site-nav.hero-mode .nav-hamburger span{background:#fff}
.nav-hamburger.open span:nth-child(1){transform:translateY(10px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}

.mobile-overlay{
  position:fixed;inset:0;z-index:999;
  background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;
  opacity:0;pointer-events:none;
  transform:translateY(-10px);
  transition:opacity .3s var(--ease-out),transform .3s var(--ease-out);
}
.mobile-overlay.open{opacity:1;pointer-events:auto;transform:translateY(0)}
.mobile-overlay a{
  font-family:'Sora',sans-serif;font-weight:700;font-size:1.4rem;
  color:var(--text-primary);letter-spacing:-.5px;
  opacity:0;transform:translateY(12px);
  transition:opacity .4s var(--ease-out),transform .4s var(--ease-out);
}
.mobile-overlay.open a{opacity:1;transform:translateY(0)}
.mobile-overlay.open a:nth-child(1){transition-delay:.05s}
.mobile-overlay.open a:nth-child(2){transition-delay:.1s}
.mobile-overlay.open a:nth-child(3){transition-delay:.15s}
.mobile-overlay.open a:nth-child(4){transition-delay:.2s}
.mobile-overlay.open a:nth-child(5){transition-delay:.25s}
.mobile-overlay.open a:nth-child(6){transition-delay:.3s}
.mobile-overlay.open a:nth-child(7){transition-delay:.35s}
.mobile-overlay.open a:nth-child(8){transition-delay:.4s}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 26px;font-family:'Sora',sans-serif;font-weight:700;
  font-size:.72rem;letter-spacing:.3px;
  border:1px solid transparent;border-radius:var(--r-sm);
  cursor:pointer;transition:opacity .2s,transform .12s,background .2s,border-color .2s,color .2s;
  text-align:center;line-height:1;white-space:nowrap;
}
.btn:hover{opacity:.88}
.btn:active{transform:scale(.97)}
.btn-sm{padding:8px 16px;font-size:.62rem}
.btn-lg{padding:15px 34px;font-size:.8rem}

.btn-primary{background:var(--text-primary);color:var(--bg)}
.btn-secondary{background:var(--surface);color:var(--text-primary);border-color:var(--border2)}
.btn-secondary:hover{background:var(--surface2);opacity:1}
.btn-ghost{background:transparent;color:var(--text-primary);border-color:var(--border2)}
.btn-ghost:hover{background:var(--surface);opacity:1}
.btn-danger{background:var(--red);color:#fff}

/* ============================================================
   BADGES
   ============================================================ */
.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;font-size:.55rem;font-weight:600;letter-spacing:1px;
  text-transform:uppercase;border-radius:999px;
  background:var(--surface);color:var(--text-secondary);
  border:1px solid var(--border);
}
.badge-green{background:rgba(34,197,94,.1);color:#16a34a;border-color:rgba(34,197,94,.2)}
.badge-red{background:rgba(239,68,68,.1);color:#dc2626;border-color:rgba(239,68,68,.2)}
.badge-blue{background:rgba(59,130,246,.1);color:#2563eb;border-color:rgba(59,130,246,.2)}
.badge-purple{background:rgba(139,92,246,.1);color:#7c3aed;border-color:rgba(139,92,246,.2)}
.badge-orange{background:rgba(245,158,11,.1);color:#d97706;border-color:rgba(245,158,11,.2)}
.badge-beta{background:rgba(217,119,6,.1);color:#d97706;border-color:rgba(217,119,6,.2)}

.badge-dot{
  display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--green);box-shadow:0 0 0 0 rgba(34,197,94,.5);
  animation:pulseDot 1.8s var(--ease-out) infinite;
}
@keyframes pulseDot{
  0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}
  70%{box-shadow:0 0 0 10px rgba(34,197,94,0)}
  100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}
}

/* ============================================================
   CARDS
   ============================================================ */
.card{
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--r-md);padding:24px;
  transition:border-color .2s,box-shadow .3s var(--ease-out),transform .3s var(--ease-out);
}
.card:hover{border-color:var(--border2);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card-title{font-family:'Sora';font-weight:700;font-size:.9rem;color:var(--text-primary);margin-bottom:6px}
.card-desc{font-size:.75rem;color:var(--text-muted);line-height:1.7}

/* ============================================================
   FORMS / INPUTS
   ============================================================ */
.input,input.input,textarea.input,select.input{
  width:100%;padding:12px 14px;
  background:var(--bg);color:var(--text-primary);
  border:1px solid var(--border2);border-radius:var(--r-sm);
  font-family:'Inter',sans-serif;font-size:.8rem;
  transition:border-color .2s,box-shadow .2s;
  outline:none;
}
.input:focus{border-color:var(--text-primary);box-shadow:0 0 0 3px rgba(0,0,0,0.05)}
[data-theme="dark"] .input:focus{box-shadow:0 0 0 3px rgba(255,255,255,0.08)}
.input::placeholder{color:var(--text-muted)}
.form-label{
  display:block;font-size:.6rem;font-weight:600;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;
}
.form-row{margin-bottom:16px}

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.rv.show{opacity:1;transform:translateY(0)}

/* ============================================================
   TOAST
   ============================================================ */
.toast-container{
  position:fixed;top:76px;right:20px;z-index:10000;
  display:flex;flex-direction:column;gap:8px;pointer-events:none;
}
.toast{
  background:var(--text-primary);color:var(--bg);
  padding:12px 18px;border-radius:var(--r-sm);
  font-size:.75rem;font-weight:500;
  box-shadow:var(--shadow-lg);
  opacity:0;transform:translateX(20px);
  transition:opacity .3s var(--ease-out),transform .3s var(--ease-out);
  pointer-events:auto;min-width:200px;max-width:360px;
}
.toast.show{opacity:1;transform:translateX(0)}
.toast-success{background:var(--green);color:#fff}
.toast-error{background:var(--red);color:#fff}
.toast-info{background:var(--blue);color:#fff}

/* ============================================================
   BACK TO TOP
   ============================================================ */
.back-to-top{
  position:fixed;bottom:24px;right:24px;z-index:900;
  width:44px;height:44px;border-radius:50%;
  background:var(--text-primary);color:var(--bg);
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;cursor:pointer;
  box-shadow:var(--shadow-lg);
  opacity:0;pointer-events:none;transform:translateY(12px);
  transition:opacity .3s var(--ease-out),transform .3s var(--ease-out),background .2s;
}
.back-to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.back-to-top:hover{opacity:.85}
.back-to-top:active{transform:scale(.94)}

/* ============================================================
   FOOTER (shared 4-column)
   ============================================================ */
footer.site-footer{
  background:var(--bg2);border-top:1px solid var(--border);
  padding:56px 40px 24px;
}
.footer-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;
  gap:40px;max-width:1200px;margin:0 auto 40px;
}
.footer-col h4{
  font-family:'Sora';font-weight:700;font-size:.7rem;
  letter-spacing:1.5px;text-transform:uppercase;
  color:var(--text-primary);margin-bottom:16px;
}
.footer-col a{
  display:block;padding:5px 0;font-size:.75rem;
  color:var(--text-muted);transition:color .2s;
}
.footer-col a:hover{color:var(--text-primary)}
.footer-brand{max-width:280px}
.footer-brand img{height:28px;margin-bottom:14px}
[data-theme="dark"] .footer-brand img{filter:brightness(0) invert(1)}
.footer-brand p{font-size:.75rem;line-height:1.8;color:var(--text-muted);margin-bottom:16px}
.footer-newsletter{display:flex;gap:8px;margin-top:10px}
.footer-newsletter input{
  flex:1;padding:10px 12px;font-size:.72rem;
  background:var(--bg);border:1px solid var(--border2);border-radius:var(--r-sm);
  color:var(--text-primary);outline:none;
}
.footer-newsletter button{
  padding:10px 16px;background:var(--text-primary);color:var(--bg);
  font-family:'Sora';font-weight:700;font-size:.65rem;
  border-radius:var(--r-sm);cursor:pointer;transition:opacity .2s;
}
.footer-newsletter button:hover{opacity:.85}
.footer-socials{display:flex;gap:10px;margin-top:12px}
.footer-socials a{
  width:34px;height:34px;border-radius:50%;
  background:var(--surface);display:flex;align-items:center;justify-content:center;
  color:var(--text-muted);transition:background .2s,color .2s,transform .15s;
}
.footer-socials a:hover{background:var(--text-primary);color:var(--bg);transform:translateY(-2px)}
.footer-bottom{
  max-width:1200px;margin:0 auto;padding-top:20px;
  border-top:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
}
.footer-bottom span{font-size:.6rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}
.footer-made{font-size:.6rem;color:var(--text-muted);letter-spacing:.5px}
.footer-made::before{content:'✶ ';color:var(--text-primary);margin-right:2px}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1200px){
  .footer-grid{grid-template-columns:1.5fr 1fr 1fr 1fr}
}
@media(max-width:960px){
  nav.site-nav{padding:0 20px}
  .nav-links{display:none}
  .nav-hamburger{display:flex}
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px}
  footer.site-footer{padding:40px 20px 20px}
}
@media(max-width:600px){
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .footer-bottom{flex-direction:column;text-align:center}
  .toast-container{left:12px;right:12px;top:70px}
  .toast{min-width:0;width:100%}
}

/* ============================================================
   UTILITY
   ============================================================ */
.skeleton{
  background:linear-gradient(90deg,var(--surface) 0%,var(--surface2) 50%,var(--surface) 100%);
  background-size:200% 100%;animation:skeletonShimmer 1.4s ease-in-out infinite;
  border-radius:var(--r-sm);
}
@keyframes skeletonShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .rv{opacity:1;transform:none}
}
