:root{
  --ink:#14171c; --paper:#f6f5f1; --surface:#eae8e1;
  --teal:#0aa8ae; --teal-deep:#076268; --violet:#42276e; --magenta:#a83e7c; --olive:#7fae35;
  --taupe:#5d6167; --line:rgba(20,23,28,0.13);

  --m-instant:150ms; --m-base:280ms; --m-reveal:420ms; --m-entrance:700ms;
  --ease-out-snap: cubic-bezier(.2,.7,.2,1);
  --ease-out-back: cubic-bezier(.2,.9,.25,1.2);
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#eef0f2; --paper:#14161a; --surface:#1c1f24;
    --teal:#3fc9d1; --teal-deep:#2ba8b0; --violet:#a68fe0; --magenta:#d874ac; --olive:#a3d162;
    --taupe:#9aa0a6; --line:rgba(238,240,242,0.14);
  }
}
:root[data-theme="dark"]{
  --ink:#eef0f2; --paper:#14161a; --surface:#1c1f24;
  --teal:#3fc9d1; --teal-deep:#2ba8b0; --violet:#a68fe0; --magenta:#d874ac; --olive:#a3d162;
  --taupe:#9aa0a6; --line:rgba(238,240,242,0.14);
}

*, *::before, *::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Instrument Sans", ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ font-family:"Fraunces", Georgia, serif; text-wrap:balance; margin:0; font-weight:500; }
p{ line-height:1.65; margin:0; }
a{ color:inherit; }
img{ max-width:100%; display:block; }

.wrap{ max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,64px); }
.eyebrow{
  font-family:"IBM Plex Mono", ui-monospace, monospace;
  font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--teal-deep);
}

/* reveal-on-scroll target state (see motion.js) */
[data-reveal]{
  opacity:0; transform:translateY(14px);
  transition:opacity var(--m-reveal) var(--ease-out-snap), transform var(--m-reveal) var(--ease-out-snap);
}
[data-reveal].is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1; transform:none; transition:none; }
}

/* skip-link: ascuns vizual până primește focus cu tastatura */
.skip-link{
  position:absolute; left:12px; top:-60px; z-index:100;
  background:var(--ink); color:var(--paper); padding:10px 18px; border-radius:4px;
  text-decoration:none; font-family:"IBM Plex Mono", monospace; font-size:0.82rem;
  transition:top var(--m-instant) ease;
}
.skip-link:focus{ top:12px; }

/* pagini de conținut simplu (despre, legal, contact) */
.prose{ padding-top:20px; padding-bottom:80px; max-width:72ch; }
.prose h1{ font-size:clamp(1.8rem,3.6vw,2.6rem); }
.prose h2{ font-size:1.3rem; margin-top:40px; }
.prose p, .prose li{ color:var(--ink); margin-top:14px; }
.prose p.lead{ color:var(--taupe); }
.prose ul{ padding-left:20px; }
.prose .placeholder{ background:color-mix(in oklab, var(--magenta) 12%, transparent); padding:0 4px; border-radius:2px; }
.prose a{ color:var(--teal-deep); }

/* cursor contextual, injectat de motion.js în containere marcate [data-context-cursor] */
[data-context-cursor]{ cursor:none; }
.ctx-cursor{
  position:fixed; top:0; left:0; width:34px; height:34px; border-radius:50%;
  border:1px solid var(--teal); color:var(--teal-deep);
  display:flex; align-items:center; justify-content:center;
  font-family:"IBM Plex Mono", monospace; font-size:0.82rem;
  pointer-events:none; z-index:50; opacity:0;
  transition:opacity 0.2s ease;
  background:color-mix(in oklab, var(--paper) 70%, transparent);
}
