/* =========================================================
   AstraShilp — the logo, one definition for all five pages
   ---------------------------------------------------------
   Artwork lives in assets/logo/, traced 1:1 from the supplied
   "final logo.png" (13 Sep 2026). Three cuts of one drawing:

     astrashilp-logo.svg      mark over wordmark  (footer, framework)
     astrashilp-mark.svg      mark alone          (menu bar)
     astrashilp-wordmark.svg  wordmark alone      (menu bar)

   Wordmark letter-spacing: .309em (13 Sep 2026, evening). As traced it
   was .883em; the letters were re-set from the same Montserrat outlines,
   so only the gaps changed, and ASTRASHILP is now as wide as the
   NEXT GENERATION INTELLIGENCE line under it in the menu bar. The word
   keeps its centre under the A. Generator: build-tracking.py (session
   scratchpad) — mark byte-identical, every letter the same shape.

   Each size below reproduces the box the previous logo occupied,
   so the menu bar, the footer and the framework row keep their
   exact heights and nothing around the logo moves.
   ========================================================= */

/* ---- menu bar: mark + wordmark side by side ----
   The stacked lock-up would put 5px capitals in a 95px bar, so the
   bar uses the same drawing split in two. The mark is sized against
   the name's font-size and stays shorter than the two text lines
   beside it, which are what set the bar's height. */
.brand-mark { width: auto; flex-shrink: 0; font-size: clamp(calc(16 * var(--u, 1px)), 1.5vw, calc(25 * var(--u, 1px))); }
.brand-mark img { display: block; width: auto; height: 1.84em; }

/* The wordmark stands in for the old ASTRASHILP text: same font-size,
   same line box, caps .7em tall (Montserrat's cap height), foot of the
   caps on the text baseline. The file has 1.5 units of padding above
   and below 40.35 units of cap height — hence .7 x 43.35/40.35 = .7520em,
   and the -.0260em drop that hangs the lower padding below the baseline. */
.brand-name { letter-spacing: 0; line-height: normal; white-space: nowrap; }
.brand-name img { display: inline-block; width: auto; height: .7520em; vertical-align: -.0260em; }

/* ---- footer + framework: the full lock-up ----
   Height = the old mark (100/226 of its width) + the 1.4vh gap + the old
   ASTRASHILP line, each with the clamp it used before, so everything below
   the logo stays where it was. The old line box was Montserrat's ascent and
   descent (.968em / .251em), each rounded to a whole pixel by the browser;
   round() reproduces that exactly, and browsers without round() get the
   unrounded 1.219em, which is within a pixel. */
.f-brand, .frame-logo { --logo-line: calc(clamp(calc(15 * var(--u, 1px)), 1.45vw, calc(24 * var(--u, 1px))) * 1.219); }
@supports (width: round(nearest, 1.5px, 1px)) {
  .f-brand, .frame-logo {
    --logo-line: calc(round(nearest, clamp(calc(15 * var(--u, 1px)), 1.45vw, calc(24 * var(--u, 1px))) * .968, calc(1 * var(--u, 1px)))
                    + round(nearest, clamp(calc(15 * var(--u, 1px)), 1.45vw, calc(24 * var(--u, 1px))) * .251, calc(1 * var(--u, 1px))));
  }
}
.f-brand    { --logo-h: calc(clamp(calc(150 * var(--u, 1px)), 13vw, calc(210 * var(--u, 1px))) * .44248 + 1.4vh + var(--logo-line)); }
.frame-logo { --logo-h: calc(clamp(calc(150 * var(--u, 1px)), 13.5vw, calc(220 * var(--u, 1px))) * .44248 + 1.4vh + var(--logo-line)); }

.f-brand .logo-lg,
.frame-logo .logo-lg { width: auto; }
.f-brand .logo-lg img,
.frame-logo .logo-lg img { display: block; width: auto; height: var(--logo-h); }

/* Footer underline, centred under ASTRASHILP on every page. Since the wordmark
   was tightened the lock-up file is the mark's width, 718.15 x 503.52 units, and
   the word is centred on the A, 349.22 units in from the left edge — so its
   centre is --logo-h x .69355. The rule is the house 120px: start 60px before. */
.f-brand .f-rule {
  width: calc(120 * var(--u, 1px));
  margin-left: calc(var(--logo-h) * .69355 - calc(60 * var(--u, 1px)));
  margin-right: 0;
}

/* Home framework row centres the lock-up as a box, but the word sits 9.86 units
   left of the box's middle (under the A, as drawn). Nudging the picture right by
   that keeps ASTRASHILP centred over "Build what comes next."; position:relative
   moves the paint only, so nothing around it shifts. */
.frame-logo .logo-lg img { position: relative; left: calc(var(--logo-h) * .01958); }
