/*!
 * FataSystem Premium v1.1 — Saeed Fattahi
 * Standalone theme tokens, header, larger scroll rail, mobile drawer and motion.
 * Scoped to body.fs-theme. No dependency on page 21.
 */

body.fs-theme {
  /* ---------- Design tokens ---------- */
  --fs-color-background: #141414;
  --fs-color-surface: #1c1c1c;
  --fs-color-surface-2: #222222;
  --fs-color-primary: #ff7926;
  --fs-color-accent: #ff9952;
  --fs-color-text: #f8f8f8;
  --fs-color-muted: #a8a8a8;
  --fs-color-border: rgba(255, 255, 255, 0.12);
  --fs-color-border-strong: rgba(255, 255, 255, 0.24);
  --fs-color-light: #f8f7f4;

  --fs-font: "Vazirmatn", "Estedad", system-ui, sans-serif;
  --fs-radius-card: 18px;
  --fs-radius-button: 999px;
  --fs-section-spacing: clamp(88px, 12vw, 168px);
  --fs-gutter: clamp(20px, 5vw, 64px);
  --fs-container: 1180px;
  --fs-header-height: 84px;
  --fs-header-height-condensed: 64px;
  --fs-motion-duration: 320ms;
  --fs-motion-easing: cubic-bezier(0.22, 1, 0.36, 1);

  margin: 0;
  background: var(--fs-color-background);
  color: var(--fs-color-text);
  font-family: var(--fs-font);
  font-size: clamp(16px, 0.25vw + 15px, 18px);
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;

  & *,
  & *::before,
  & *::after { box-sizing: border-box; }

  & img { max-width: 100%; height: auto; display: block; }

  & a { color: inherit; }

  & :focus-visible {
    outline: 2px solid var(--fs-color-primary);
    outline-offset: 3px;
    border-radius: 6px;
  }

  & ::selection { background: var(--fs-color-primary); color: #141414; }

  & :is(#fs-home, #fs-story, #fs-services, #fs-development, #fs-products, #fs-about, #fs-contact) {
    scroll-margin-top: calc(var(--fs-header-height-condensed) + 16px);
  }

  /* ---------- Typography ---------- */
  & .fs-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 20px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.18em;
    color: var(--fs-color-muted);
    direction: ltr;
    unicode-bidi: isolate;
  }
  & .fs-eyebrow::before {
    content: "";
    width: 28px;
    height: 1px;
    background: var(--fs-color-primary);
  }
  & .fs-index {
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    color: var(--fs-color-primary);
    letter-spacing: 0.08em;
  }
  & .fs-h1 {
    margin: 0;
    font-size: clamp(36px, 6.4vw, 96px);
    font-weight: 800;
    line-height: 1.22;
    letter-spacing: -0.01em;
    text-wrap: balance;
  }
  & .fs-h2 {
    margin: 0;
    font-size: clamp(30px, 4.2vw, 60px);
    font-weight: 700;
    line-height: 1.32;
    text-wrap: balance;
  }
  & .fs-h3 {
    margin: 0;
    font-size: clamp(19px, 1.2vw + 14px, 24px);
    font-weight: 600;
    line-height: 1.5;
  }
  & .fs-lead {
    margin: 0;
    max-width: 60ch;
    font-size: clamp(16px, 0.5vw + 14px, 20px);
    color: var(--fs-color-muted);
    text-wrap: pretty;
  }
  & .fs-text { margin: 0; color: var(--fs-color-muted); text-wrap: pretty; }
  & .fs-accent { color: var(--fs-color-primary); }
  & .fs-ltr { direction: ltr; unicode-bidi: isolate; display: inline-block; }

  /* ---------- Layout ---------- */
  & .fs-container {
    width: 100%;
    max-width: calc(var(--fs-container) + var(--fs-gutter) * 2);
    margin-inline: auto;
    padding-inline: var(--fs-gutter);
  }
  & .fs-section {
    position: relative;
    padding-block: var(--fs-section-spacing);
    border-top: 1px solid var(--fs-color-border);
  }
  & .fs-section-head {
    display: grid;
    gap: 20px;
    margin-bottom: clamp(48px, 6vw, 88px);
  }
  @media (min-width: 900px) {
    & .fs-section-head--split {
      grid-template-columns: 1.2fr 1fr;
      align-items: end;
      gap: 64px;
    }
  }

  /* ---------- Buttons ---------- */
  & .fs-btn {
    --_bg: transparent;
    --_fg: var(--fs-color-text);
    --_bd: var(--fs-color-border-strong);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 12px 26px;
    border: 1px solid var(--_bd);
    border-radius: var(--fs-radius-button);
    background: var(--_bg);
    color: var(--_fg);
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition:
      background-color var(--fs-motion-duration) var(--fs-motion-easing),
      border-color var(--fs-motion-duration) var(--fs-motion-easing),
      color var(--fs-motion-duration) var(--fs-motion-easing),
      transform var(--fs-motion-duration) var(--fs-motion-easing);
  }
  & .fs-btn svg {
    width: 16px;
    height: 16px;
    transition: transform var(--fs-motion-duration) var(--fs-motion-easing);
  }
  & .fs-btn:hover svg { transform: translateX(-4px); }
  & .fs-btn:active { transform: scale(0.98); }
  & .fs-btn--primary {
    --_bg: var(--fs-color-primary);
    --_fg: #141414;
    --_bd: var(--fs-color-primary);
  }
  & .fs-btn--primary:hover { --_bg: var(--fs-color-accent); --_bd: var(--fs-color-accent); }
  & .fs-btn--ghost:hover { --_bd: var(--fs-color-text); }
  & .fs-btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

  & .fs-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--fs-color-text);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid var(--fs-color-border-strong);
    padding-bottom: 4px;
    transition: border-color var(--fs-motion-duration) var(--fs-motion-easing), color var(--fs-motion-duration);
  }
  & .fs-link:hover { color: var(--fs-color-primary); border-color: var(--fs-color-primary); }
  & .fs-link svg { width: 14px; height: 14px; }

  /* ---------- Badges & tags ---------- */
  & .fs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border: 1px solid var(--fs-color-border);
    border-radius: 999px;
    font-size: 12px;
    color: var(--fs-color-muted);
    white-space: nowrap;
  }
  & .fs-badge::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fs-color-primary);
  }
  & .fs-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
  & .fs-tags li {
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.05);
    font-size: 13px;
    color: var(--fs-color-muted);
  }

  /* ---------- Cards ---------- */
  & .fs-grid { display: grid; gap: 16px; }
  @media (min-width: 768px) { & .fs-grid--3 { grid-template-columns: repeat(3, 1fr); } }

  & .fs-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid var(--fs-color-border);
    border-radius: var(--fs-radius-card);
    background: var(--fs-color-surface);
    transition:
      border-color var(--fs-motion-duration) var(--fs-motion-easing),
      transform var(--fs-motion-duration) var(--fs-motion-easing);
  }
  & .fs-card:hover { border-color: rgba(255, 121, 38, 0.45); transform: translateY(-4px); }
  & .fs-card__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: rgba(255, 121, 38, 0.1);
    color: var(--fs-color-primary);
  }
  & .fs-card__icon svg { width: 24px; height: 24px; }
  & .fs-card__meta {
    font-size: 11px;
    letter-spacing: 0.16em;
    color: var(--fs-color-muted);
    direction: ltr;
    text-align: end;
  }
  & .fs-card__list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 15px;
    color: var(--fs-color-muted);
  }
  & .fs-card__list li { display: flex; gap: 10px; align-items: baseline; }
  & .fs-card__list li::before {
    content: "";
    flex: none;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--fs-color-primary);
    transform: translateY(-3px);
  }
  & .fs-card__foot { margin-top: auto; padding-top: 8px; }

  /* ---------- Timeline ---------- */
  & .fs-timeline {
    position: relative;
    display: grid;
    gap: 40px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: none;
  }
  & .fs-timeline::before {
    content: "";
    position: absolute;
    inset-block: 8px;
    inset-inline-start: 7px;
    width: 1px;
    background: var(--fs-color-border);
  }
  & .fs-step { position: relative; padding-inline-start: 44px; display: grid; gap: 10px; }
  & .fs-step::before {
    content: "";
    position: absolute;
    top: 10px;
    inset-inline-start: 0;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 1px solid var(--fs-color-border-strong);
    background: var(--fs-color-background);
    transition: background-color 500ms var(--fs-motion-easing), border-color 500ms var(--fs-motion-easing);
  }
  & .fs-step.is-in::before { background: var(--fs-color-primary); border-color: var(--fs-color-primary); }
  & .fs-step__num {
    font-size: clamp(36px, 4vw, 56px);
    font-weight: 300;
    line-height: 1;
    color: var(--fs-color-border-strong);
    font-variant-numeric: tabular-nums;
    transition: color 500ms var(--fs-motion-easing);
  }
  & .fs-step.is-in .fs-step__num { color: var(--fs-color-text); }
  @media (min-width: 900px) {
    & .fs-timeline { grid-template-columns: repeat(4, 1fr); gap: 32px; }
    & .fs-timeline::before { inset-block: auto; top: 7px; inset-inline: 0; width: auto; height: 1px; }
    & .fs-step { padding-inline-start: 0; padding-top: 44px; }
    & .fs-step::before { top: 0; }
  }

  /* ---------- Product cards ---------- */
  & .fs-products { display: grid; gap: 20px; }
  & .fs-product {
    display: grid;
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--fs-color-border);
    border-radius: var(--fs-radius-card);
    background: var(--fs-color-surface);
    transition: border-color var(--fs-motion-duration) var(--fs-motion-easing);
  }
  & .fs-product:hover { border-color: rgba(255, 121, 38, 0.45); }
  & .fs-product__media {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--fs-color-surface-2);
    border-bottom: 1px solid var(--fs-color-border);
    overflow: hidden;
  }
  & .fs-product__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms var(--fs-motion-easing);
  }
  & .fs-product:hover .fs-product__media img { transform: scale(1.03); }
  & .fs-product__body { display: grid; gap: 16px; padding: clamp(24px, 3vw, 40px); align-content: start; }
  & .fs-product__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
  & .fs-product__name {
    font-size: clamp(28px, 3vw, 40px);
    font-weight: 700;
    line-height: 1.1;
    direction: ltr;
    text-align: end;
  }
  @media (min-width: 1024px) {
    & .fs-products { grid-template-columns: repeat(12, 1fr); }
    & .fs-product--feature { grid-column: span 12; grid-template-columns: 1.1fr 1fr; }
    & .fs-product--feature .fs-product__media { aspect-ratio: auto; min-height: 100%; border-bottom: 0; border-inline-end: 1px solid var(--fs-color-border); }
    & .fs-product:not(.fs-product--feature) { grid-column: span 6; }
  }

  /* ---------- Mockup placeholder (until real product screenshots are uploaded) ---------- */
  & .fs-mock {
    position: absolute;
    inset: 12% 10% -6% 10%;
    border: 1px solid var(--fs-color-border-strong);
    border-radius: 14px 14px 0 0;
    background: #181818;
    display: grid;
    grid-template-rows: 28px 1fr;
    overflow: hidden;
  }
  & .fs-mock__bar {
    display: flex;
    gap: 6px;
    align-items: center;
    padding-inline: 12px;
    border-bottom: 1px solid var(--fs-color-border);
    direction: ltr;
  }
  & .fs-mock__bar span { width: 8px; height: 8px; border-radius: 50%; background: var(--fs-color-border-strong); }
  & .fs-mock__screen { display: grid; place-items: center; gap: 8px; color: var(--fs-color-muted); text-align: center; padding: 16px; }
  & .fs-mock__title { font-size: clamp(22px, 3vw, 34px); font-weight: 700; color: var(--fs-color-text); direction: ltr; line-height: 1; }
  & .fs-mock__note { font-size: 12px; }

  /* ---------- Main content backdrop (personal photo slot) ---------- */
  & .fs-main { position: relative; isolation: isolate; }
  & .fs-main__backdrop {
    position: absolute;
    inset: 0 0 auto 0;
    height: min(100svh, 980px);
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
  }
  & .fs-main__backdrop img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--fs-portrait-position, 30% 25%);
    opacity: 0.55;
  }
  & .fs-main__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
      linear-gradient(to left, var(--fs-color-background) 15%, rgba(20, 20, 20, 0.55) 60%, rgba(20, 20, 20, 0.2)),
      linear-gradient(to top, var(--fs-color-background), transparent 45%);
  }
  & .fs-main__grid {
    position: absolute;
    inset: 0;
    background-image:
      linear-gradient(var(--fs-color-border) 1px, transparent 1px),
      linear-gradient(90deg, var(--fs-color-border) 1px, transparent 1px);
    background-size: 96px 96px;
    mask-image: radial-gradient(ellipse at 30% 40%, #000 0%, transparent 70%);
    opacity: 0.35;
  }

  /* ---------- Hero ---------- */
  & .fs-hero {
    min-height: 100svh;
    display: flex;
    align-items: center;
    padding-top: calc(var(--fs-header-height) + 40px);
    padding-bottom: 96px;
  }
  & .fs-hero__inner { display: grid; gap: 28px; max-width: 900px; }
  & .fs-hero__sign {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 24px;
    font-size: 14px;
    color: var(--fs-color-muted);
  }
  & .fs-hero__sign::before { content: ""; width: 40px; height: 1px; background: var(--fs-color-border-strong); }
  & .fs-scroll-cue {
    position: absolute;
    inset-inline-start: var(--fs-gutter);
    bottom: 32px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 12px;
    color: var(--fs-color-muted);
    text-decoration: none;
  }
  & .fs-scroll-cue__line {
    position: relative;
    width: 1px;
    height: 40px;
    background: var(--fs-color-border);
    overflow: hidden;
  }
  & .fs-scroll-cue__line::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--fs-color-primary);
    transform: translateY(-100%);
    animation: fs-cue 2.2s var(--fs-motion-easing) infinite;
  }

  /* ---------- About ---------- */
  & .fs-about { display: grid; gap: 48px; align-items: center; }
  @media (min-width: 900px) { & .fs-about { grid-template-columns: 0.9fr 1.1fr; gap: 80px; } }
  & .fs-portrait {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: var(--fs-radius-card);
    overflow: hidden;
    border: 1px solid var(--fs-color-border);
    background:
      radial-gradient(circle at 50% 35%, rgba(255, 121, 38, 0.14), transparent 60%),
      var(--fs-color-surface);
  }
  & .fs-portrait img { width: 100%; height: 100%; object-fit: cover; }
  & .fs-portrait__empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 16px;
    color: var(--fs-color-muted);
    font-size: 13px;
    text-align: center;
  }
  & .fs-signature {
    font-size: clamp(40px, 6vw, 84px);
    font-weight: 200;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1px var(--fs-color-border-strong);
    direction: ltr;
    text-align: end;
    user-select: none;
  }
  & .fs-facts { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--fs-color-border); }
  & .fs-facts > div {
    display: grid;
    grid-template-columns: minmax(120px, 0.4fr) 1fr;
    gap: 16px;
    padding-block: 16px;
    border-bottom: 1px solid var(--fs-color-border);
    font-size: 15px;
  }
  & .fs-facts dt { color: var(--fs-color-muted); }
  & .fs-facts dd { margin: 0; }

  /* ---------- Contact ---------- */
  & .fs-contact { display: grid; gap: 48px; }
  @media (min-width: 900px) { & .fs-contact { grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: end; } }
  & .fs-contact__list { display: grid; gap: 12px; }
  & .fs-contact__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border: 1px solid var(--fs-color-border);
    border-radius: var(--fs-radius-card);
    background: var(--fs-color-surface);
    text-decoration: none;
    transition: border-color var(--fs-motion-duration) var(--fs-motion-easing), background-color var(--fs-motion-duration);
  }
  & a.fs-contact__item:hover { border-color: var(--fs-color-primary); background: rgba(255, 121, 38, 0.06); }
  & .fs-contact__label { display: block; font-size: 13px; color: var(--fs-color-muted); }
  & .fs-contact__value { display: block; font-size: clamp(18px, 1.5vw + 12px, 24px); font-weight: 600; }
  & .fs-contact__item svg { flex: none; width: 22px; height: 22px; color: var(--fs-color-primary); }

  /* ---------- Footer ---------- */
  & .fs-footer {
    background: #0e0e0e;
    border-top: 1px solid var(--fs-color-border);
    padding-block: 48px calc(32px + env(safe-area-inset-bottom));
    font-size: 14px;
    color: var(--fs-color-muted);
  }
  & .fs-footer__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
  & .fs-footer__links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
  & .fs-footer__links a { text-decoration: none; transition: color var(--fs-motion-duration); }
  & .fs-footer__links a:hover { color: var(--fs-color-primary); }
  & .fs-footer__bottom { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--fs-color-border); font-size: 13px; }

  /* ---------- Brand lockup ---------- */
  & .fs-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--fs-color-text); }
  & .fs-brand__mark {
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    transition: transform var(--fs-motion-duration) var(--fs-motion-easing);
    transform-origin: right center;
  }
  /* Crops the SF badge from the official lockup PNG until a dedicated SVG mark is uploaded */
  & .fs-brand__mark img {
    position: absolute;
    max-width: none;
    width: 569%;
    top: -43%;
    left: -26%;
  }
  & .fs-brand__text { display: grid; line-height: 1.25; }
  & .fs-brand__name { font-size: 15px; font-weight: 700; }
  & .fs-brand__sub { font-size: 11px; color: var(--fs-color-muted); letter-spacing: 0.12em; direction: ltr; text-align: end; }

  /* ---------- Header ---------- */
  & .fs-site-header {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 50;
    height: var(--fs-header-height);
    padding-top: env(safe-area-inset-top);
    display: flex;
    align-items: center;
    border-bottom: 1px solid transparent;
    background: transparent;
    transition:
      height var(--fs-motion-duration) var(--fs-motion-easing),
      background-color var(--fs-motion-duration) var(--fs-motion-easing),
      border-color var(--fs-motion-duration) var(--fs-motion-easing);
  }
  & .fs-site-header.is-condensed {
    height: var(--fs-header-height-condensed);
    background: rgba(20, 20, 20, 0.82);
    border-bottom-color: var(--fs-color-border);
    backdrop-filter: saturate(140%) blur(10px);
    -webkit-backdrop-filter: saturate(140%) blur(10px);
  }
  & .fs-site-header.is-condensed .fs-brand__mark { transform: scale(0.86); }
  & .fs-site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; }
  & .fs-header-links { display: none; gap: 8px; margin: 0; padding: 0; list-style: none; }
  & .fs-header-links a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding-inline: 16px;
    border-radius: 999px;
    font-size: 14px;
    text-decoration: none;
    color: var(--fs-color-muted);
    transition: color var(--fs-motion-duration), background-color var(--fs-motion-duration);
  }
  & .fs-header-links a:hover,
  & .fs-header-links a[aria-current="page"] { color: var(--fs-color-text); background: rgba(255, 255, 255, 0.06); }
  @media (min-width: 768px) { & .fs-header-links { display: flex; } }

  /* ---------- Side rail (desktop) ---------- */
  & .fs-scroll-nav {
    position: fixed;
    inset-inline-start: clamp(16px, 2.2vw, 40px);
    top: 50%;
    z-index: 40;
    transform: translateY(-50%);
    display: none;
    flex-direction: column;
    gap: 4px;
  }
  @media (min-width: 1100px) {
    & .fs-scroll-nav { display: flex; }
    & .fs-main .fs-container { padding-inline-start: calc(clamp(16px, 2.2vw, 40px) + 72px); }
  }
  @media (min-width: 1440px) {
    & .fs-main .fs-container { padding-inline-start: calc(clamp(16px, 2.2vw, 40px) + 160px); }
  }
  & .fs-scroll-nav__title {
    margin: 0 0 12px;
    padding-inline-start: 28px;
    font-size: 11px;
    color: var(--fs-color-muted);
    letter-spacing: 0.04em;
  }
  & .fs-scroll-nav a {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    font-size: 13px;
    text-decoration: none;
    color: var(--fs-color-muted);
    transition: color var(--fs-motion-duration) var(--fs-motion-easing);
  }
  & .fs-scroll-nav a:hover,
  & .fs-scroll-nav a.fs-active { color: var(--fs-color-text); }
  & .fs-rail__dot {
    flex: none;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 1px solid var(--fs-color-border-strong);
    background: var(--fs-color-background);
    transition: border-color var(--fs-motion-duration);
  }
  & .fs-scroll-nav a:hover .fs-rail__dot { border-color: var(--fs-color-text); }
  & .fs-rail__icon {
    display: inline-flex;
    width: 16px;
    height: 16px;
    opacity: 0.7;
    transition: transform var(--fs-motion-duration) var(--fs-motion-easing), opacity var(--fs-motion-duration);
  }
  & .fs-rail__icon svg { width: 16px; height: 16px; }
  & .fs-scroll-nav a:hover .fs-rail__icon { transform: translateX(-2px); opacity: 1; }
  & .fs-scroll-nav a.fs-active .fs-rail__icon { color: var(--fs-color-primary); opacity: 1; }
  & .fs-rail__label { transition: opacity var(--fs-motion-duration), transform var(--fs-motion-duration) var(--fs-motion-easing); }
  & .fs-rail {
    position: absolute;
    inset-inline-start: 7px;
    width: 1px;
    z-index: 0;
    pointer-events: none;
    background: var(--fs-color-border-strong);
  }
  & .fs-rail__fill {
    position: absolute;
    inset: 0;
    background: var(--fs-color-primary);
    transform-origin: top center;
    transform: scaleY(var(--fs-progress, 0));
    transition: transform 520ms var(--fs-motion-easing);
  }
  & .fs-rail__marker {
    position: absolute;
    top: 0;
    left: 50%;
    width: 9px;
    height: 9px;
    margin: -4.5px 0 0 -4.5px;
    border-radius: 50%;
    background: var(--fs-color-primary);
    box-shadow: 0 0 0 4px var(--fs-color-background), 0 0 0 5px var(--fs-color-primary);
    transform: translate3d(0, var(--fs-marker-y, 0px), 0);
    transition: transform 520ms var(--fs-motion-easing);
    will-change: transform;
  }
  /* Compact rail on narrower desktops: dots + icons only, label on hover/focus */
  @media (min-width: 1100px) and (max-width: 1439px) {
    & .fs-scroll-nav__title { opacity: 0; }
    & .fs-rail__label { opacity: 0; transform: translateX(6px); pointer-events: none; }
    & .fs-scroll-nav a:is(:hover, :focus-visible, .fs-active) .fs-rail__label { opacity: 1; transform: none; }
    & .fs-scroll-nav:not(:hover, :focus-within) a.fs-active .fs-rail__label { opacity: 0; }
  }

  /* ---------- Mobile navigation ---------- */
  & .fs-original-mobile-nav { display: flex; }
  @media (min-width: 768px) { & .fs-original-mobile-nav { display: none; } }
  & .fs-original-mobile-nav > :not(.fs-burger) { display: none; }
  & .fs-burger {
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid var(--fs-color-border);
    border-radius: 50%;
    background: rgba(20, 20, 20, 0.6);
    color: var(--fs-color-text);
    cursor: pointer;
  }
  & .fs-burger__lines { position: relative; width: 18px; height: 12px; }
  & .fs-burger__lines span {
    position: absolute;
    inset-inline: 0;
    height: 1.5px;
    border-radius: 2px;
    background: currentColor;
    transition: transform var(--fs-motion-duration) var(--fs-motion-easing), opacity 200ms;
  }
  & .fs-burger__lines span:nth-child(1) { top: 0; }
  & .fs-burger__lines span:nth-child(2) { top: 5px; }
  & .fs-burger__lines span:nth-child(3) { top: 10px; }

  & .fs-drawer {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    transition: visibility 0s linear var(--fs-motion-duration);
  }
  & .fs-drawer.is-open { visibility: visible; transition-delay: 0s; }
  & .fs-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    opacity: 0;
    transition: opacity var(--fs-motion-duration) var(--fs-motion-easing);
  }
  & .fs-drawer.is-open .fs-drawer__backdrop { opacity: 1; }
  & .fs-drawer__panel {
    position: absolute;
    inset-block: 0;
    right: 0;
    width: min(88vw, 380px);
    display: flex;
    flex-direction: column;
    padding: calc(20px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));
    background: var(--fs-color-surface);
    border-inline-end: 1px solid var(--fs-color-border);
    opacity: 0;
    transform: translate3d(100%, 0, 0);
    transition: transform var(--fs-motion-duration) var(--fs-motion-easing), opacity var(--fs-motion-duration);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  & .fs-drawer.is-open .fs-drawer__panel { opacity: 1; transform: none; }
  & .fs-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; }
  & .fs-drawer__title { font-size: 12px; color: var(--fs-color-muted); }
  & .fs-drawer__close {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--fs-color-border);
    border-radius: 50%;
    background: transparent;
    color: var(--fs-color-text);
    cursor: pointer;
  }
  & .fs-drawer__close svg { width: 18px; height: 18px; }
  & .fs-drawer__list { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
  & .fs-drawer__list a {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 56px;
    padding-inline: 12px;
    border-radius: 14px;
    font-size: 18px;
    font-weight: 500;
    text-decoration: none;
    color: var(--fs-color-muted);
    transition: color 200ms, background-color 200ms;
  }
  & .fs-drawer__list a svg { width: 20px; height: 20px; flex: none; }
  & .fs-drawer__list a .fs-drawer__num { margin-inline-start: auto; font-size: 12px; opacity: 0.6; font-variant-numeric: tabular-nums; }
  & .fs-drawer__list a[aria-current="location"] { color: var(--fs-color-text); background: rgba(255, 121, 38, 0.1); }
  & .fs-drawer__list a[aria-current="location"] svg { color: var(--fs-color-primary); }
  & .fs-drawer__foot { margin-top: auto; padding-top: 32px; display: grid; gap: 12px; }
  & .fs-drawer.is-open .fs-drawer__list li { animation: fs-fade-up 420ms var(--fs-motion-easing) both; }
  & .fs-drawer.is-open .fs-drawer__list li:nth-child(2) { animation-delay: 30ms; }
  & .fs-drawer.is-open .fs-drawer__list li:nth-child(3) { animation-delay: 60ms; }
  & .fs-drawer.is-open .fs-drawer__list li:nth-child(4) { animation-delay: 90ms; }
  & .fs-drawer.is-open .fs-drawer__list li:nth-child(5) { animation-delay: 120ms; }
  & .fs-drawer.is-open .fs-drawer__list li:nth-child(6) { animation-delay: 150ms; }
  & .fs-drawer.is-open .fs-drawer__list li:nth-child(7) { animation-delay: 180ms; }

  &.fs-menu-open { overflow: hidden; }

  /* ---------- Motion: intro + reveal (only after JS is ready, fails open) ---------- */
  &.fs-kit-ready .fs-intro {
    animation: fs-fade-up 720ms var(--fs-motion-easing) both;
    animation-delay: calc(var(--fs-i, 0) * 110ms);
  }
  &.fs-kit-ready .fs-site-header .fs-brand { animation: fs-logo-in 640ms var(--fs-motion-easing) both; }
  &.fs-kit-ready .fs-reveal:not(.is-in) { opacity: 0; transform: translate3d(0, 24px, 0); }
  &.fs-kit-ready .fs-reveal {
    transition:
      opacity 700ms var(--fs-motion-easing),
      transform 700ms var(--fs-motion-easing);
    transition-delay: calc(var(--fs-i, 0) * 80ms);
  }

  @media (prefers-reduced-motion: reduce) {
    & *,
    & *::before,
    & *::after {
      animation-duration: 1ms !important;
      animation-delay: 0ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 1ms !important;
      transition-delay: 0ms !important;
    }
    &.fs-kit-ready .fs-reveal:not(.is-in) { opacity: 1; transform: none; }
    & .fs-scroll-cue__line::after { animation: none; transform: none; }
  }
}

@media (prefers-reduced-motion: no-preference) {
  html:has(body.fs-theme) { scroll-behavior: smooth; }
}

@keyframes fs-fade-up {
  from { opacity: 0; transform: translate3d(0, 18px, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes fs-logo-in {
  from { opacity: 0; transform: scale(0.96); }
  to { opacity: 1; transform: none; }
}
@keyframes fs-cue {
  0% { transform: translateY(-100%); }
  60%, 100% { transform: translateY(100%); }
}

/* --- FataSystem Premium standalone theme overrides --- */
/* Global refinements */
:root {color-scheme: dark;}
html { scroll-padding-top: 92px; }
body.fs-theme { --fs-container: 1210px; --fs-color-background:#141414; background:#141414; min-height:100vh; overflow-x:clip; }
body.fs-theme button, body.fs-theme input, body.fs-theme textarea { font:inherit; }
body.fs-theme .fs-skip {position:fixed;inset-block-start:-100px;inset-inline-start:20px;z-index:999;background:var(--fs-color-primary);color:#141414;padding:10px 18px;border-radius:8px;text-decoration:none;}
body.fs-theme .fs-skip:focus {inset-block-start:16px;}
body.fs-theme .fs-site-header {height:86px; z-index:90; background:linear-gradient(to bottom,rgba(14,14,14,.7),rgba(14,14,14,0));}
body.fs-theme .fs-site-header.is-condensed {height:66px;background:rgba(16,16,16,.92);}
body.fs-theme .fs-site-header__inner {min-height:100%;}
body.fs-theme .fs-brand {min-height:44px;}
body.fs-theme .fs-brand__logo {max-width:210px;max-height:52px;height:auto;width:auto;object-fit:contain;}
body.fs-theme .fs-brand__fallback {display:flex;align-items:center;direction:ltr;gap:12px;color:#f7f7f7;font:700 24px/1.1 Arial,sans-serif;letter-spacing:-.045em;}
body.fs-theme .fs-brand__fallback strong {display:grid;place-items:center;width:49px;height:49px;background:#101735;border-radius:12px;color:#f8f8f8;font-size:24px;letter-spacing:-.12em;}
body.fs-theme .fs-brand__fallback strong::first-letter {color:var(--fs-color-primary);}
body.fs-theme .fs-brand__fallback span span {color:var(--fs-color-primary);}
body.fs-theme .fs-header-links {align-items:center;}
body.fs-theme .fs-header-menu {display:flex;list-style:none;align-items:center;gap:6px;padding:0;margin:0;}
body.fs-theme .fs-header-menu a {color:var(--fs-color-muted);text-decoration:none;padding:10px 16px;font-size:14px;border-radius:999px;}
body.fs-theme .fs-header-menu a:hover {background:rgba(255,255,255,.06);color:white;}
body.fs-theme .fs-burger {display:none;position:relative;z-index:102;flex:none;width:46px;height:46px;padding:12px;place-items:stretch;align-content:center;gap:5px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(20,20,20,.75);}
body.fs-theme .fs-burger span {height:1.5px;width:100%;display:block;border-radius:3px;background:currentColor;transition:transform .25s ease,opacity .25s ease;}
body.fs-theme .fs-burger[aria-expanded="true"] span:nth-child(1) {transform:translateY(6.5px) rotate(45deg);}
body.fs-theme .fs-burger[aria-expanded="true"] span:nth-child(2) {opacity:0;}
body.fs-theme .fs-burger[aria-expanded="true"] span:nth-child(3) {transform:translateY(-6.5px) rotate(-45deg);}
body.fs-theme .fs-main {position:relative;isolation:isolate;background:#141414;}
body.fs-theme .fs-main__backdrop {position:absolute;inset:0;z-index:-1;height:auto;overflow:visible;pointer-events:none;}
body.fs-theme .fs-main__backdrop-inner {position:sticky;top:0;height:100svh;min-height:540px;overflow:hidden;background:radial-gradient(circle at 25% 45%,rgba(255,121,38,.085),transparent 38%),linear-gradient(125deg,#141414,#1a1716 55%,#141414);}
body.fs-theme .fs-main__backdrop-photo {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:35% 35%;opacity:.23;filter:saturate(.8);}
body.fs-theme .fs-main__backdrop-inner:after {content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(20,20,20,.68),rgba(20,20,20,.26) 65%,rgba(20,20,20,.65)),linear-gradient(0deg,rgba(20,20,20,.65),transparent 30%);}
body.fs-theme .fs-main__backdrop-grid {position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:88px 88px;mask-image:linear-gradient(180deg,#000,transparent 96%);}
body.fs-theme .fs-main .fs-section {background:transparent;}
body.fs-theme .fs-main .fs-container {max-width:calc(var(--fs-container) + var(--fs-gutter)*2);padding-inline:var(--fs-gutter);}
@media (min-width:1100px) {body.fs-theme .fs-main .fs-container {padding-inline-start:clamp(132px,13vw,210px);}}
body.fs-theme .fs-hero {min-height:100svh;display:flex;align-items:center;padding-block:calc(120px + env(safe-area-inset-top)) 90px;border:0;overflow:hidden;}
body.fs-theme .fs-hero__layout {display:grid;grid-template-columns:minmax(0,1.2fr) minmax(200px,.6fr);gap:30px;align-items:center;}
body.fs-theme .fs-hero__inner {display:grid;gap:28px;max-width:770px;z-index:2;}
body.fs-theme .fs-hero__lead {max-width:560px;}
body.fs-theme .fs-hero .fs-h1 {font-size:clamp(43px,5.4vw,92px);line-height:1.26;}
body.fs-theme .fs-hero__visual {width:100%;aspect-ratio:3/4;display:flex;flex-direction:column;position:relative;align-items:center;justify-content:center;isolation:isolate;opacity:.88;}
body.fs-theme .fs-hero__visual:before {content:"";position:absolute;width:140%;aspect-ratio:1;border:1px solid rgba(255,121,38,.16);border-radius:50%;transform:rotate(-28deg) scaleY(.7);}
body.fs-theme .fs-hero__visual:after {content:"";position:absolute;width:100%;aspect-ratio:1;border:1px solid rgba(255,255,255,.12);border-radius:50%;transform:rotate(22deg) scaleY(.85);}
body.fs-theme .fs-hero__visual-sf {font:800 clamp(100px,17vw,255px)/1 Arial,sans-serif;letter-spacing:-.17em;direction:ltr;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.21);padding-inline-end:.17em;}
body.fs-theme .fs-hero__visual-caption {position:absolute;bottom:15%;left:5%;font:500 11px/1.6 Arial,sans-serif;letter-spacing:.2em;direction:ltr;color:rgba(255,255,255,.5);}
body.fs-theme .fs-hero__visual-edge {position:absolute;top:17%;right:10%;width:7px;height:7px;background:var(--fs-color-primary);border-radius:50%;box-shadow:0 0 0 8px rgba(255,121,38,.07);}
body.fs-theme .fs-hero__sign {margin-top:22px;}
body.fs-theme .fs-intro-1 {animation:fs-fade-up .7s cubic-bezier(.2,.8,.2,1) .1s both;}
body.fs-theme .fs-intro-2 {animation:fs-fade-up .75s cubic-bezier(.2,.8,.2,1) .2s both;}
body.fs-theme .fs-intro-3 {animation:fs-fade-up .75s cubic-bezier(.2,.8,.2,1) .32s both;}
body.fs-theme .fs-intro-4 {animation:fs-fade-up .75s cubic-bezier(.2,.8,.2,1) .42s both;}
body.fs-theme .fs-section-num {display:block;margin-bottom:28px;font:500 12px/1.5 Arial,Tahoma,sans-serif;letter-spacing:.13em;direction:ltr;text-align:right;color:var(--fs-color-primary);}
body.fs-theme .fs-section-head {margin-bottom:clamp(34px,4vw,70px);}
body.fs-theme .fs-section-head--split {align-items:center;}
body.fs-theme .fs-statement {padding:clamp(35px,5vw,76px);border-radius:25px;border:1px solid var(--fs-color-border);min-height:300px;background:linear-gradient(110deg,rgba(255,121,38,.09),rgba(255,255,255,.013) 68%),#1b1b1b;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:30px;}
body.fs-theme .fs-statement span {font-size:12px;letter-spacing:.13em;color:var(--fs-color-muted);}
body.fs-theme .fs-statement strong {font:600 clamp(24px,3.6vw,54px)/1.25 Arial,sans-serif;direction:ltr;color:#f2eeeb;letter-spacing:-.04em;}
body.fs-theme .fs-mock__glyph {display:grid;place-items:center;width:68px;height:68px;background:#122044;border-radius:14px;color:white;font:800 31px Arial,sans-serif;letter-spacing:-.11em;}
body.fs-theme .fs-mock__glyph span {color:var(--fs-color-primary);}
body.fs-theme .fs-portrait__monogram {font:800 clamp(90px,16vw,195px)/1 Arial,sans-serif;letter-spacing:-.15em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.2);padding-right:.18em;}
body.fs-theme .fs-about__content {display:grid;align-content:start;gap:25px;}
body.fs-theme .fs-about__subtitle {margin:0;color:var(--fs-color-primary);font-size:clamp(18px,2vw,25px);}
body.fs-theme .fs-about__image {width:100%;height:100%;object-fit:cover;}
body.fs-theme .fs-contact__description {margin-top:26px;}
body.fs-theme .fs-contact__value.fs-digits {direction:ltr;display:inline-block;unicode-bidi:isolate;}
body.fs-theme .fs-footer {position:relative;z-index:1;background:#0d0d0e;}
body.fs-theme .fs-footer__brand {font:700 16px Arial,sans-serif;letter-spacing:.05em;direction:ltr;display:inline-block;color:#f6f6f6;}
body.fs-theme .fs-footer__brand span {color:var(--fs-color-primary);}
body.fs-theme .fs-footer p {max-width:440px;margin:.7em 0 0;}
body.fs-theme .fs-backtotop {text-decoration:none;border:1px solid var(--fs-color-border);display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:8px 18px;border-radius:999px;color:var(--fs-color-text);}
body.fs-theme .fs-backtotop:hover {border-color:var(--fs-color-primary);}
body.fs-theme .fs-backtotop svg {width:18px;height:18px;}
body.fs-theme .fs-footer__bottom {display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}
/* v1.1: larger desktop rail, open circles above the line, scroll-interpolated indicator. */
body.fs-theme .fs-scroll-nav {
  position:fixed; top:50%; right:clamp(18px,2.4vw,44px); left:auto;
  transform:translateY(-50%); z-index:55; display:none;
  min-width:188px; gap:3px; isolation:isolate;
}
body.fs-theme .fs-scroll-nav__title {
  padding:0 0 0 24px; text-align:right; margin:0 0 17px;
  font-size:12px;letter-spacing:0;color:#b3b3b3;
}
body.fs-theme .fs-scroll-nav a {
  position:relative; z-index:2; display:flex; flex-direction:row;
  gap:14px; align-items:center; justify-content:flex-start;
  direction:rtl; min-height:62px; white-space:nowrap;
  font-size:15px; font-weight:500; color:#a6a6a6;
  transition:color .32s cubic-bezier(.22,1,.36,1);
}
body.fs-theme .fs-scroll-nav a.fs-active,
body.fs-theme .fs-scroll-nav a:hover {color:#f8f8f8;}
body.fs-theme .fs-rail__dot {
  position:relative; display:inline-block; flex:none;
  width:20px; height:20px; border-radius:50%;
  border:1.5px solid rgba(255,255,255,.52);
  background:#141414; z-index:2;
  box-shadow:0 0 0 3px #141414; /* gap: line never passes through circles */
  transition:border-color .3s ease;
}
body.fs-theme .fs-scroll-nav a.fs-active .fs-rail__dot {border-color:var(--fs-color-primary);}
body.fs-theme .fs-scroll-nav a:hover .fs-rail__dot {border-color:#f9f9f9;}
body.fs-theme .fs-rail__icon {display:inline-flex;width:22px;height:22px;flex:none;color:#999;opacity:.88;transition:color .3s ease,transform .3s ease;}
body.fs-theme .fs-rail__icon svg {width:22px;height:22px;}
body.fs-theme .fs-scroll-nav a.fs-active .fs-rail__icon {color:var(--fs-color-primary);opacity:1;}
body.fs-theme .fs-scroll-nav a:hover .fs-rail__icon {transform:translateX(-2px);opacity:1;}
body.fs-theme .fs-rail__label {opacity:1;transform:none;transition:color .3s ease;}
/* Track and fill are BELOW the solid circles, instead of overlapping them. */
body.fs-theme .fs-rail-track {
  position:absolute;z-index:0;
  left:var(--fs-rail-x,10px);top:var(--fs-rail-top,0px);
  height:var(--fs-rail-length,0px);width:2px;
  transform:translateX(-50%);display:block;
  background:rgba(255,255,255,.28);pointer-events:none;
}
body.fs-theme .fs-rail-progress {
  position:absolute;inset:0;display:block;background:var(--fs-color-primary);
  transform-origin:top center;transform:scaleY(0);
  will-change:transform;
}
/* The marker is a separate sibling ABOVE the circles, positioned at their exact centre. */
body.fs-theme .fs-rail-marker {
  position:absolute;z-index:4;
  left:var(--fs-rail-x,10px);top:var(--fs-rail-top,0px);
  width:14px;height:14px;border-radius:50%;
  border:2px solid var(--fs-color-primary);background:var(--fs-color-primary);
  box-shadow:0 0 0 3px #141414,0 0 0 4px rgba(255,121,38,.85);
  pointer-events:none;
  transform:translate3d(-50%,-50%,0);
  will-change:transform;
}
/* All 7 labels remain visible on ordinary desktop widths. */
@media (min-width:1120px) {
  body.fs-theme .fs-scroll-nav {display:flex;}
  body.fs-theme .fs-main .fs-container {padding-inline-start:clamp(200px,17vw,265px);}
  body.fs-theme .fs-scroll-nav__title {opacity:1;}
  body.fs-theme .fs-rail__label {opacity:1;transform:none;pointer-events:auto;}
}
@media (min-width:1440px) {
  body.fs-theme .fs-main .fs-container {padding-inline-start:clamp(230px,20vw,310px);}
}
@media (min-width:1120px) and (max-height:690px) {
  body.fs-theme .fs-scroll-nav a {min-height:49px;font-size:14px;}
  body.fs-theme .fs-scroll-nav__title {margin-bottom:9px;}
}
/* Mobile drawer */
body.fs-theme .fs-drawer-overlay {position:fixed;inset:0;z-index:98;background:rgba(0,0,0,.65);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s,visibility .28s;}
body.fs-theme .fs-drawer {position:fixed;inset:0 0 0 auto;right:0;left:auto;width:min(88vw,410px);height:100dvh;z-index:99;display:flex;flex-direction:column;padding:calc(26px + env(safe-area-inset-top)) 26px calc(28px + env(safe-area-inset-bottom));background:#191919;border-left:1px solid var(--fs-color-border);transform:translate3d(102%,0,0);visibility:hidden;opacity:1;overflow-y:auto;overscroll-behavior:contain;transition:transform .34s cubic-bezier(.22,1,.36,1),visibility .34s;}
body.fs-theme .fs-drawer__top {display:flex;justify-content:space-between;align-items:center;gap:16px;}
body.fs-theme .fs-drawer__close {width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--fs-color-border);border-radius:50%;color:white;background:transparent;cursor:pointer;}
body.fs-theme .fs-drawer__close svg {width:19px;height:19px;}
body.fs-theme .fs-drawer__heading {font-size:clamp(32px,8vw,43px);font-weight:700;color:#f3f3f3;margin:38px 0 25px;}
body.fs-theme .fs-drawer__links {padding:0;margin:0;list-style:none;display:grid;gap:3px;}
body.fs-theme .fs-drawer__links a {display:flex;align-items:center;gap:15px;min-height:63px;padding:5px 10px;border-bottom:1px solid rgba(255,255,255,.075);text-decoration:none;color:#ddd;font-size:18px;}
body.fs-theme .fs-drawer__links a:hover,body.fs-theme .fs-drawer__links a[aria-current] {color:var(--fs-color-primary);}
body.fs-theme .fs-drawer__links a svg {width:20px;height:20px;}
body.fs-theme .fs-drawer__links a small {margin-inline-start:auto;font:11px Arial,sans-serif;opacity:.45;}
body.fs-theme .fs-drawer__foot {margin:auto 0 0;padding:35px 0 0;color:#999;font-size:13px;}
body.fs-theme.fs-menu-open .fs-drawer-overlay {opacity:1;visibility:visible;pointer-events:auto;}
body.fs-theme.fs-menu-open .fs-drawer {transform:translate3d(0,0,0);visibility:visible;}
body.fs-theme .fs-page-main {min-height:70vh;padding:170px 0 100px;}
body.fs-theme .fs-page-content {max-width:1100px;}
body.fs-theme .fs-page-content article {margin-bottom:50px;}
body.fs-theme .fs-page-content a {color:var(--fs-color-primary);}
body.fs-theme .fs-article-body {margin-top:35px;}
body.fs-theme .fs-article-body img {max-width:100%;height:auto;}
body.fs-theme .fs-reveal {opacity:1;transform:none;}
body.fs-theme.fs-js-ready .fs-reveal:not(.is-in) {opacity:0;transform:translateY(20px);}
body.fs-theme.fs-js-ready .fs-reveal {transition:opacity .62s cubic-bezier(.22,1,.36,1),transform .62s cubic-bezier(.22,1,.36,1);}
body.fs-theme.fs-js-ready .fs-reveal.is-in {opacity:1;transform:none;}
@media (min-width:1440px) {body.fs-theme .fs-scroll-nav {right:clamp(32px,4.5vw,75px);} }
@media (max-width:1119px) { body.fs-theme .fs-main .fs-container {padding-inline:var(--fs-gutter);} }
@media (max-width:900px) {body.fs-theme .fs-hero__layout {grid-template-columns:1fr;}body.fs-theme .fs-hero__visual {position:absolute;left:-8%;top:16%;width:45%;opacity:.23;pointer-events:none;}body.fs-theme .fs-hero__inner {max-width:750px;}body.fs-theme .fs-section {padding-block:90px;} }
@media (max-width:767px) {body.fs-theme .fs-burger {display:inline-grid;}body.fs-theme .fs-header-links {display:none;}body.fs-theme .fs-brand__fallback {font-size:20px;}body.fs-theme .fs-brand__fallback strong {width:40px;height:40px;font-size:19px;}body.fs-theme .fs-brand__logo {max-width:180px;max-height:40px;}body.fs-theme .fs-hero {min-height:100svh;padding:130px 0 95px;}body.fs-theme .fs-hero .fs-h1 {font-size:clamp(39px,9.3vw,62px);line-height:1.33;}body.fs-theme .fs-hero__visual {display:none;}body.fs-theme .fs-hero__inner {gap:24px;}body.fs-theme .fs-hero__sign {font-size:12px;}body.fs-theme .fs-main__backdrop-photo {opacity:.2;object-position:56% 40%;}body.fs-theme .fs-main__backdrop-inner:after {background:linear-gradient(90deg,rgba(20,20,20,.5),rgba(20,20,20,.7)),linear-gradient(0deg,#141414,transparent 65%);}body.fs-theme .fs-section {padding-block:82px;}body.fs-theme .fs-section-head {gap:25px;}body.fs-theme .fs-contact__item {padding:18px;}body.fs-theme .fs-footer {padding-top:40px;} }
@media (max-width:370px) {body.fs-theme .fs-hero .fs-h1 {font-size:34px;}body.fs-theme .fs-brand__fallback>span {font-size:17px;}body.fs-theme .fs-contact__value {font-size:17px;} }
@media (prefers-reduced-motion:reduce) {html:has(body.fs-theme-home) {scroll-behavior:auto!important;}body.fs-theme .fs-intro-1,body.fs-theme .fs-intro-2,body.fs-theme .fs-intro-3,body.fs-theme .fs-intro-4 {animation:none;}body.fs-theme.fs-js-ready .fs-reveal:not(.is-in) {opacity:1;transform:none;}}

@media (min-width:768px) and (max-width:1119px) {body.fs-theme .fs-burger{display:inline-grid;}body.fs-theme .fs-header-links{display:none;}}

/* v1.2 — reference-style navigation. Neutral fixed line, discrete target-to-target
   orange indicator; never interpolate cursor or progress line with scroll position. */
body.fs-theme .fs-rail-progress { display:none!important; }
body.fs-theme .fs-rail-track {
  background:rgba(255,255,255,.25);
  width:1px;
  z-index:0;
}
body.fs-theme .fs-rail-marker {
  width:12px;
  height:12px;
  background:var(--fs-color-primary);
  border:0;
  box-shadow:0 0 0 3px #141414, 0 0 0 4px rgba(255,121,38,.76);
  transition:transform 480ms cubic-bezier(.22,1,.36,1),
             box-shadow 260ms ease;
  will-change:transform;
}
body.fs-theme .fs-scroll-nav a.fs-active .fs-rail__dot {
  border-color:rgba(255,255,255,.8);
}
body.fs-theme .fs-scroll-nav a.fs-active .fs-rail__label {
  color:#fff;
}
body.fs-theme .fs-scroll-nav a.fs-active .fs-rail__icon {
  color:var(--fs-color-primary);
}
/* Subtle editorial interaction cues, not scroll hijacking. */
body.fs-theme .fs-scroll-nav a .fs-rail__icon,
body.fs-theme .fs-scroll-nav a .fs-rail__label {
  transition:color 280ms ease,opacity 280ms ease,transform 320ms cubic-bezier(.22,1,.36,1);
}
body.fs-theme .fs-scroll-nav a:hover .fs-rail__label {transform:translate3d(-3px,0,0);}
body.fs-theme .fs-drawer {
  transition:transform 440ms cubic-bezier(.22,1,.36,1),visibility 440ms;
}
body.fs-theme .fs-drawer__links li {
  opacity:0;
  transform:translate3d(0,10px,0);
  transition:opacity 380ms ease,transform 440ms cubic-bezier(.22,1,.36,1);
}
body.fs-theme.fs-menu-open .fs-drawer__links li {opacity:1;transform:none;}
body.fs-theme.fs-menu-open .fs-drawer__links li:nth-child(1){transition-delay:60ms;}
body.fs-theme.fs-menu-open .fs-drawer__links li:nth-child(2){transition-delay:85ms;}
body.fs-theme.fs-menu-open .fs-drawer__links li:nth-child(3){transition-delay:110ms;}
body.fs-theme.fs-menu-open .fs-drawer__links li:nth-child(4){transition-delay:135ms;}
body.fs-theme.fs-menu-open .fs-drawer__links li:nth-child(5){transition-delay:160ms;}
body.fs-theme.fs-menu-open .fs-drawer__links li:nth-child(6){transition-delay:185ms;}
body.fs-theme.fs-menu-open .fs-drawer__links li:nth-child(7){transition-delay:210ms;}
/* Intro is a short, decorative SF reveal, no loading gate or scroll lock. */
body.fs-theme .fs-entrance {
  position:fixed;inset:0;z-index:100;pointer-events:none;
  display:grid;place-items:center;background:#141414;
  animation:fs-entrance-dismiss 820ms cubic-bezier(.22,1,.36,1) both;
}
body.fs-theme .fs-entrance__symbol {
  display:grid;place-items:center;width:76px;height:76px;
  border:1px solid rgba(255,255,255,.2);border-radius:50%;
  font:800 30px/1 Arial,sans-serif;letter-spacing:-.1em;padding-inline-end:4px;
  color:#fff;background:radial-gradient(circle at 60% 30%,#262626,#141414);
  animation:fs-entrance-symbol 700ms cubic-bezier(.22,1,.36,1) both;
}
body.fs-theme .fs-entrance__symbol span {color:var(--fs-color-primary);}
@keyframes fs-entrance-dismiss { 0%,42% {opacity:1;visibility:visible;} 100% {opacity:0;visibility:hidden;} }
@keyframes fs-entrance-symbol {0%{opacity:0;transform:scale(.82);}40%{opacity:1;transform:scale(1);}100%{opacity:0;transform:scale(1.12);} }
@media(prefers-reduced-motion:reduce) {
  body.fs-theme .fs-entrance {display:none;animation:none;}
  body.fs-theme .fs-rail-marker {transition:none!important;}
  body.fs-theme .fs-drawer__links li {transition:none;opacity:1;transform:none;}
}
