/* ==========================================================================
   FrameTalks — Design Tokens
   Signature: film timeline / viewfinder motif (grounded in video editing UI)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  /* -- Dark theme (default) -- */
  --ink:#0a0b10;
  --surface:#14161f;
  --surface-2:#1b1e2a;
  --surface-3:#222634;
  --border:rgba(255,255,255,.09);
  --border-strong:rgba(255,255,255,.16);
  --text:#f4f3f7;
  --text-dim:#9a9bae;
  --text-faint:#63647a;

  --violet:#7b5cff;
  --violet-dim:#5a3fd9;
  --coral:#ff5470;
  --mint:#2fe6b4;

  --gradient-brand:linear-gradient(135deg,#7b5cff 0%,#ff5470 100%);
  --gradient-soft:linear-gradient(135deg,rgba(123,92,255,.15),rgba(255,84,112,.10));

  --shadow-lg:0 24px 60px -20px rgba(0,0,0,.55);
  --shadow-md:0 12px 32px -12px rgba(0,0,0,.45);
  --shadow-glow:0 0 0 1px rgba(123,92,255,.25), 0 20px 50px -18px rgba(123,92,255,.45);

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-full:999px;

  --font-display:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'JetBrains Mono', monospace;

  --container:1240px;
  --nav-h:76px;
  --ease:cubic-bezier(.16,.8,.24,1);
}

[data-theme="light"]{
  --ink:#f6f5f1;
  --surface:#ffffff;
  --surface-2:#f0efe9;
  --surface-3:#e8e6de;
  --border:rgba(20,20,26,.09);
  --border-strong:rgba(20,20,26,.16);
  --text:#14141a;
  --text-dim:#55566a;
  --text-faint:#8a8b9c;

  --violet:#6b46ff;
  --violet-dim:#5232d6;
  --coral:#e83f5c;
  --mint:#0fae86;

  --gradient-soft:linear-gradient(135deg,rgba(107,70,255,.10),rgba(232,63,92,.08));
  --shadow-lg:0 24px 60px -24px rgba(20,20,30,.20);
  --shadow-md:0 12px 32px -16px rgba(20,20,30,.16);
  --shadow-glow:0 0 0 1px rgba(107,70,255,.18), 0 20px 50px -22px rgba(107,70,255,.28);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

body{
  background:var(--ink);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .4s var(--ease), color .4s var(--ease);
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,textarea{font:inherit;color:inherit;}

::selection{background:var(--violet);color:#fff;}

:focus-visible{
  outline:2px solid var(--coral);
  outline-offset:3px;
  border-radius:4px;
}

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:24px;
}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.1;}

.mono{font-family:var(--font-mono);letter-spacing:.02em;}

/* -- Eyebrow / timecode-style label (grounded in editing-software timecodes) -- */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-size:.75rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--violet);
  margin-bottom:16px;
}
.eyebrow::before{
  content:'';
  width:18px;height:1px;
  background:currentColor;
}

.section{padding:120px 0;position:relative;}
@media (max-width:768px){.section{padding:80px 0;}}

.section-head{
  max-width:640px;
  margin-bottom:64px;
}
.section-head h2{font-size:clamp(2rem,4vw,2.75rem);margin-bottom:16px;}
.section-head p{color:var(--text-dim);font-size:1.05rem;}

/* -- Buttons -- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 30px;
  border-radius:var(--radius-full);
  font-weight:600;
  font-size:.95rem;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
  white-space:nowrap;
}
.btn-primary{
  background:var(--gradient-brand);
  color:#fff;
  box-shadow:var(--shadow-glow);
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 0 0 1px rgba(123,92,255,.35),0 26px 60px -18px rgba(123,92,255,.55);}
.btn-ghost{
  background:transparent;
  color:var(--text);
  border:1px solid var(--border-strong);
}
.btn-ghost:hover{border-color:var(--violet);color:var(--violet);transform:translateY(-3px);}
.btn-sm{padding:10px 20px;font-size:.85rem;}

/* -- Scroll progress scrubber (signature element) -- */
.scrubber{
  position:fixed;
  top:0;left:0;
  height:3px;
  width:100%;
  z-index:1001;
  background:transparent;
}
.scrubber-fill{
  height:100%;
  width:0%;
  background:var(--gradient-brand);
  transition:width .1s linear;
}

/* -- Navbar -- */
.navbar{
  position:fixed;
  top:0;left:0;right:0;
  height:var(--nav-h);
  z-index:1000;
  display:flex;
  align-items:center;
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease), border-color .4s var(--ease), backdrop-filter .4s var(--ease);
}
.navbar.scrolled{
  background:color-mix(in srgb, var(--ink) 78%, transparent);
  backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--border);
}
.nav-inner{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.25rem;
}
.logo .frame-mark{
  width:30px;height:30px;
  border-radius:8px;
  background:var(--gradient-brand);
  position:relative;
  flex-shrink:0;
}
.logo .frame-mark::before{
  content:'';
  position:absolute;inset:6px;
  border:1.5px solid rgba(255,255,255,.85);
  border-radius:3px;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:36px;
}
.nav-links a{
  font-size:.92rem;
  font-weight:500;
  color:var(--text-dim);
  position:relative;
  padding:6px 0;
  transition:color .3s var(--ease);
}
.nav-links a::after{
  content:'';
  position:absolute;
  left:0;bottom:0;
  width:0%;height:2px;
  background:var(--gradient-brand);
  transition:width .35s var(--ease);
}
.nav-links a:hover,.nav-links a.active{color:var(--text);}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;}

.nav-actions{display:flex;align-items:center;gap:14px;}

.theme-toggle{
  width:44px;height:44px;
  border-radius:var(--radius-full);
  border:1px solid var(--border-strong);
  display:flex;align-items:center;justify-content:center;
  position:relative;
  transition:border-color .3s var(--ease), transform .3s var(--ease);
}
.theme-toggle:hover{border-color:var(--violet);transform:rotate(-8deg);}
.theme-toggle svg{width:19px;height:19px;}
.icon-sun{display:none;}
[data-theme="light"] .icon-sun{display:block;}
[data-theme="light"] .icon-moon{display:none;}

.hamburger{
  display:none;
  width:44px;height:44px;
  border-radius:var(--radius-full);
  border:1px solid var(--border-strong);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.hamburger span{
  width:18px;height:2px;
  background:var(--text);
  border-radius:2px;
  transition:transform .35s var(--ease), opacity .35s var(--ease);
}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-menu{
  position:fixed;
  top:var(--nav-h);left:0;right:0;
  background:var(--surface);
  border-bottom:1px solid var(--border);
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:6px;
  transform:translateY(-12px);
  opacity:0;
  visibility:hidden;
  transition:transform .35s var(--ease), opacity .35s var(--ease), visibility .35s;
  z-index:999;
}
.mobile-menu.open{transform:translateY(0);opacity:1;visibility:visible;}
.mobile-menu a{padding:14px 6px;font-weight:500;border-bottom:1px solid var(--border);}
.mobile-menu a:last-child{border-bottom:none;}

@media (max-width:900px){
  .nav-links{display:none;}
  .hamburger{display:flex;}
}

/* Reveal-on-scroll utility */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-stagger > *{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal-stagger.in > *{opacity:1;transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.12s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.19s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.26s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.33s;}
.reveal-stagger.in > *:nth-child(6){transition-delay:.40s;}
.reveal-stagger.in > *:nth-child(7){transition-delay:.47s;}
.reveal-stagger.in > *:nth-child(8){transition-delay:.54s;}

/* -- Viewfinder frame (signature: camera-viewfinder corner brackets) -- */
.viewfinder{position:relative;}
.viewfinder::before,.viewfinder::after,
.viewfinder .vf-tl,.viewfinder .vf-tr,.viewfinder .vf-bl,.viewfinder .vf-br{
  content:'';
  position:absolute;
  width:26px;height:26px;
  border-color:var(--violet);
  opacity:.85;
  transition:border-color .3s var(--ease);
}
.viewfinder .vf-tl{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid;border-radius:8px 0 0 0;}
.viewfinder .vf-tr{top:-1px;right:-1px;border-top:2px solid;border-right:2px solid;border-radius:0 8px 0 0;}
.viewfinder .vf-bl{bottom:-1px;left:-1px;border-bottom:2px solid;border-left:2px solid;border-radius:0 0 0 8px;}
.viewfinder .vf-br{bottom:-1px;right:-1px;border-bottom:2px solid;border-right:2px solid;border-radius:0 0 8px 0;}

/* -- Card base -- */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  transition:transform .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
}

.back-to-top{
  position:fixed;
  right:24px;bottom:24px;
  width:50px;height:50px;
  border-radius:var(--radius-full);
  background:var(--surface);
  border:1px solid var(--border-strong);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-md);
  opacity:0;visibility:hidden;
  transform:translateY(12px);
  transition:all .4s var(--ease);
  z-index:500;
}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top:hover{border-color:var(--violet);transform:translateY(-4px);}
.back-to-top svg{width:18px;height:18px;}

.skip-link{
  position:absolute;left:-999px;top:0;
  background:var(--violet);color:#fff;
  padding:12px 20px;border-radius:0 0 10px 0;
  z-index:2000;
}
.skip-link:focus{left:0;}
