/* ==========================================================================
   hyper.luckymr.me — shared design system  (General Hypersonics v1 scaffold)
   Rules honored: light-on-dark only, min .80 text opacity, no dark-grey text,
   colorblind-safe (no red/green-only signaling), no mono fonts, fluid responsive.
   ========================================================================== */

:root {
  /* palette */
  --bg:        #080C14;   /* near-black aerospace blue-tint */
  --bg2:       #0C121E;
  --bg3:       #111A2B;
  --panel:     rgba(255,255,255,0.04);
  --panel-brd: rgba(255,255,255,0.10);
  --line:      rgba(255,255,255,0.08);

  --text:      #FFFFFF;
  --text-2:    rgba(255,255,255,0.82);   /* never below .80 */
  --text-3:    rgba(255,255,255,0.80);

  --accent:    #c9cdd5;   /* hypersonic cyan (colorblind-safe vs dark) */
  --accent-2:  #6FE3FF;
  --accent-dim: rgba(201,205,213,0.14);

  /* type */
  --font-head: 'Space Grotesk', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;

  /* layout */
  --nav-h: 68px;
  --pad-x: clamp(20px, 5vw, 96px);
  --maxw: 1320px;
  --radius: 16px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

/* ---------- typography ---------- */
h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 600; line-height: 1.04; letter-spacing: -0.02em; }
/* Type scale — Tibs V2: ~15% smaller/lighter, "confident not loud" (desktop: H1 50 · H2 34 · H3 21 · body 15 · lede 18) */
h1 { font-size: clamp(1.9rem, 4.2vw, 3.125rem); }  /* 50px desktop */
h2 { font-size: clamp(1.5rem, 2.9vw, 2.125rem); }  /* 34px desktop */
h3 { font-size: clamp(1.05rem, 1.8vw, 1.3125rem); } /* 21px desktop */
p  { color: var(--text-2); font-size: 0.9375rem; } /* 15px */
.lede { font-size: clamp(1rem, 1.3vw, 1.125rem); color: var(--text-2); max-width: 60ch; } /* 18px */
.eyebrow {
  font-family: var(--font-head); font-weight: 600;
  font-size: 0.78rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--accent); display: inline-flex; align-items: center; gap: 8px;
}
.accent { color: var(--accent); }

/* ---------- layout helpers ---------- */
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding-left: var(--pad-x); padding-right: var(--pad-x); }
section { padding: clamp(64px, 9vw, 140px) 0; position: relative; }
.section-head { max-width: 66ch; margin-bottom: clamp(32px, 4vw, 56px); }
.section-head h2 { margin: 14px 0 18px; }
.divider { height: 1px; background: var(--line); border: 0; }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-head); font-weight: 600; font-size: 0.98rem;
  padding: 14px 26px; border-radius: 100px; cursor: pointer;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
  border: 1px solid transparent;
}
.btn-primary { background: var(--accent); color: #04121A; }
.btn-primary:hover { transform: translateY(-2px); background: var(--accent-2); }
.btn-ghost { background: transparent; color: var(--text); border-color: var(--panel-brd); }
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }
.btn i { font-size: 1.1em; }

/* ---------- nav ---------- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; height: var(--nav-h); z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--pad-x);
  background: transparent; backdrop-filter: none;
  border-bottom: none;
}
.nav-logo { display: flex; align-items: center; gap: 10px; font-family: var(--font-head); font-weight: 700; letter-spacing: -0.01em; }
.nav-logo img { height: 30px; width: auto; }
.nav-links { display: flex; align-items: center; gap: clamp(14px, 2vw, 30px); overflow-x: auto; scrollbar-width: none; }
.nav-links::-webkit-scrollbar { display: none; }
.nav-links a { font-size: 0.95rem; color: var(--text-2); white-space: nowrap; transition: color .18s; }
.nav-links a:hover, .nav-links a.active { color: var(--text); }
.nav-links a.active { position: relative; }
.nav-links a.active::after { content:''; position:absolute; left:0; right:0; bottom:-22px; height:2px; background:var(--accent); }
.nav-cta { display: flex; align-items: center; gap: 14px; }
.nav-ir { font-family: var(--font-head); font-weight: 600; font-size: 0.82rem; letter-spacing: 0.01em;
  text-decoration: none; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
  color: #04121A; background: var(--accent); border: 1px solid var(--accent); border-radius: 100px; padding: 8px 16px;
  transition: background .2s, transform .2s; }
.nav-ir:hover { background: var(--accent-2); transform: translateY(-1px); }
.nav-ir.active { background: var(--accent-2); }
.nav-ir i { font-size: 1.05em; }

@media (max-width: 900px) {
  .nav-links {
    position: fixed; inset: var(--nav-h) 0 auto 0; flex-direction: column; align-items: flex-start;
    gap: 4px; padding: 18px var(--pad-x); background: var(--bg2); border-bottom: 1px solid var(--line);
    transform: translateY(calc(-100% - var(--nav-h) - 8px)); transition: transform .28s ease; overflow: visible;
  }
  .nav-links.open { transform: translateY(0); }
  .nav-links:empty { display: none; } /* logo-only landing: no links -> no drawer, no phantom band (fix 2026-08-12) */
    .nav-links a { min-height:44px; display:flex; align-items:center; }
  .nav-links a.active::after { display: none; }
  /* logo-only landing: center the lone wordmark on mobile (nav-links drawer dormant until pages un-gate) */
  .nav { justify-content: space-between; background: transparent; }
  .nav-logo { min-height: 44px; }
  .nav-ir { min-height: 44px; }
  .nav-cta .btn-ghost { display: none; }
}

/* ---------- hero (shared page-header treatment) ---------- */
.page-hero { min-height: 62vh; display: flex; align-items: flex-start; padding-top: var(--nav-h);
  position: relative; overflow: hidden; } /* TOP-anchor (was flex-end): h1 lands on one consistent line across every page, independent of copy length (Carmine 2026-08-08: normalize all heroes) */
.page-hero .wrap { padding-top: clamp(36px,5vw,64px); padding-bottom: clamp(44px,6vw,72px); position: relative; z-index: 2; }
.page-hero video, .page-hero .hero-bg-img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; opacity: 0.5;
}
.page-hero::after { content:''; position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(8,12,20,0.55) 0%, rgba(8,12,20,0.35) 40%, var(--bg) 100%); }
.page-hero .lede { margin-top: 18px; }
/* Tibs V2 — unified hero text block: ¼–⅓ of page width, bottom-left, identical on every hero (home + subpages) */
.home-hero .wrap > *, .page-hero .wrap > * { max-width: 460px; }

/* ---------- cards / grids ---------- */
.grid { display: grid; gap: clamp(16px, 2vw, 28px); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }

.card {
  background: var(--panel); border: 1px solid var(--panel-brd); border-radius: var(--radius);
  padding: clamp(22px, 2.4vw, 34px); transition: transform .25s ease, border-color .25s ease;
}
.card:hover { transform: translateY(-4px); border-color: var(--accent); }
.card i { font-size: 1.8rem; color: var(--accent); }
.card h3 { margin: 16px 0 10px; }
.card p { color: var(--text-3); font-size: 1rem; }

/* image-topped card variant */
.card.has-media { padding: 0; overflow: hidden; }
.card.has-media .card-media { aspect-ratio: 16/10; overflow: hidden; background: var(--bg2); }
.card.has-media .card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.card.has-media:hover .card-media img { transform: scale(1.05); }
.card.has-media .card-body { padding: clamp(20px, 2.2vw, 30px); }
.card.has-media .card-body i { font-size: 1.6rem; }
.card.has-media .card-body h3 { margin: 12px 0 10px; }

/* cinematic full-bleed band (SpaceX-style stacked panel) */
.cine-band { position: relative; min-height: 68vh; display: flex; align-items: center; overflow: hidden; }
.cine-band .cb-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.cine-band::after { content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(8,12,20,0.88) 0%, rgba(8,12,20,0.55) 45%, rgba(8,12,20,0.15) 100%); }
.cine-band .wrap { position: relative; z-index: 2; }
.cine-band h2 { max-width: 16ch; }
.cine-band .lede { max-width: 46ch; margin-top: 18px; }

/* finale — cinematic launch-sequence band; big-to-small type, image stays the star */
.finale { position: relative; min-height: 94vh; display: flex; align-items: center; overflow: hidden; background: #000; }
.finale.reveal { opacity: 1 !important; transform: none !important; }   /* section doesn't move; children do */
.finale .fin-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: 0; }
.finale::after { content: ''; position: absolute; inset: 0; z-index: 1;   /* darken left only; center-right projectile stays crisp */
  background: linear-gradient(90deg, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.82) 24%, rgba(0,0,0,0.4) 46%, rgba(0,0,0,0) 62%); }
.finale .wrap { position: relative; z-index: 2; }
.finale .f-1 { font-family: var(--font-head); font-weight: 700; color: var(--text);
  font-size: clamp(2.3rem, 4.6vw, 3.375rem); line-height: 1.0; letter-spacing: -0.03em; } /* V2: 54px, was 89 */
.finale .f-spec { font-family: var(--font-head); font-size: clamp(0.74rem, 1.3vw, 0.92rem); letter-spacing: 0.24em;
  text-transform: uppercase; color: var(--accent); margin-top: 18px; }
.finale .f-2 { font-family: var(--font-head); font-weight: 600; color: var(--text);
  font-size: clamp(1.35rem, 2.6vw, 2.125rem); line-height: 1.2; letter-spacing: -0.015em; margin-top: clamp(30px,4.2vw,54px); max-width: 22ch; } /* V2: 34px */
.finale .f-3 { font-family: var(--font-head); font-weight: 500; color: var(--text-2);
  font-size: clamp(1rem, 1.7vw, 1.4rem); line-height: 1.35; margin-top: clamp(16px,2vw,26px); max-width: 30ch; } /* V2: 22px */
.finale .f-4 { font-family: var(--font-head); font-weight: 600; color: var(--text);
  font-size: clamp(0.95rem, 1.4vw, 1.15rem); line-height: 1.4; margin-top: clamp(18px,2.4vw,30px); }
.finale .f-4.f-accent { color: var(--accent); margin-top: 2px; }
.finale .f-5 { font-family: var(--font-head); font-size: clamp(0.82rem, 1.2vw, 0.95rem); letter-spacing: 0.08em;
  color: var(--text-3); margin-top: clamp(22px,3vw,40px); }
/* staggered countdown reveal (top-down, matches big-to-small read) */
.finale .f-1, .finale .f-spec, .finale .f-2, .finale .f-3, .finale .f-4, .finale .f-5 {
  opacity: 0; transform: translateY(16px); transition: opacity 0.6s ease, transform 0.6s ease; }
.finale.in .f-1, .finale.in .f-spec, .finale.in .f-2, .finale.in .f-3, .finale.in .f-4, .finale.in .f-5 {
  opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){ .finale .f-1,.finale .f-spec,.finale .f-2,.finale .f-3,.finale .f-4,.finale .f-5 { opacity:1; transform:none; } }

/* credential pill (contract / program callout) */
.cred { display: inline-flex; align-items: center; gap: 9px; margin-top: 24px;
  font-family: var(--font-head); font-size: 0.82rem; letter-spacing: 0.03em; color: var(--text-2);
  border: 1px solid var(--panel-brd); background: rgba(201,205,213,0.07); padding: 9px 16px; border-radius: 100px; }
.cred i { color: var(--accent); font-size: 1.05rem; }

/* media frame (video/image placeholder) */
.frame {
  position: relative; border-radius: var(--radius); overflow: hidden;
  border: 1px solid var(--panel-brd); background: var(--bg2); aspect-ratio: 16/9;
}
.frame video, .frame img { width: 100%; height: 100%; object-fit: cover; }
.frame .frame-tag {
  position: absolute; left: 14px; bottom: 14px; z-index: 3;
  font-family: var(--font-head); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--text); background: rgba(8,12,20,0.7); border: 1px solid var(--panel-brd);
  padding: 6px 12px; border-radius: 100px;
}

/* placeholder ribbon for sample/awaiting-content blocks */
.placeholder {
  outline: 1px dashed rgba(201,205,213,0.4); outline-offset: -6px; position: relative;
}
.placeholder::before {
  content: 'SAMPLE · awaiting General Hypersonics asset'; position: absolute; top: 10px; right: 10px; z-index: 5;
  font-family: var(--font-head); font-size: 0.62rem; letter-spacing: 0.1em;
  color: var(--accent); background: rgba(201,205,213,0.10); border: 1px solid rgba(201,205,213,0.3);
  padding: 4px 9px; border-radius: 100px;
}

/* quote panel treatment (team favorite) */
.quote-panel {
  background: linear-gradient(135deg, var(--bg3), var(--bg2));
  border: 1px solid var(--panel-brd); border-radius: 20px;
  padding: clamp(30px, 4vw, 56px); position: relative;
}
.quote-panel .qmark { font-size: 3.2rem; line-height: 0.6; color: var(--accent); font-family: var(--font-head); }
.quote-panel blockquote { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.2rem, 2.2vw, 1.75rem);
  line-height: 1.25; letter-spacing: -0.02em; margin: 14px 0 22px; color: var(--text); } /* V2: 28px, was 35 */
.quote-panel cite { font-style: normal; color: var(--text-2); font-size: 0.98rem; }
.quote-panel cite b { color: var(--text); font-weight: 600; }

/* stat row */
.stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
@media (max-width: 720px){ .stats { grid-template-columns: repeat(2,1fr);} }
.stat .num { font-family: var(--font-head); font-weight: 700; font-size: clamp(1.5rem,2.5vw,2.25rem); color: var(--text); letter-spacing: -0.02em; } /* V2: 36px, was 45 */
.stat .lbl { color: var(--text-3); font-size: 0.9rem; margin-top: 4px; }

/* ---------- footer (mirrors current General Hypersonics footer — perfect for v1) ---------- */
.footer { border-top: 1px solid var(--line); padding: clamp(48px,6vw,80px) 0 40px; background: var(--bg2); position: relative; overflow: hidden; }
.footer-wm { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: clamp(1000px, 135vw, 2600px); height: auto; opacity: 0.05; z-index: 0;
  pointer-events: none; user-select: none; filter: grayscale(1) brightness(2.4); }
.footer .wrap { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; position: relative; z-index: 1; }
.footer .footer-bottom { position: relative; z-index: 1; }
@media (max-width: 720px){ .footer .wrap { grid-template-columns: 1fr; } }
.footer-logo img { height: 40px; filter: grayscale(1) brightness(1.6); opacity: 0.9; }
.footer-desc { color: var(--text-3); font-size: 0.95rem; margin-top: 16px; max-width: 42ch; }
.footer h5 { font-family: var(--font-head); font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-2); margin-bottom: 14px; }
.footer a { display: block; color: var(--text-3); font-size: 0.95rem; padding: 11px 0; transition: color .16s; }
.footer a:hover { color: var(--accent); }
.footer-bottom { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line);
  color: var(--text-3); font-size: 0.82rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; }

/* ---------- scroll reveal ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){ .reveal { opacity:1; transform:none; transition:none; } html{scroll-behavior:auto;} }

/* ---------- pinned scroll-scrub scene (3D model comes alive on scroll) ---------- */
.scroll-scene { position: relative; }              /* height set inline = scroll length */
.scroll-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; background: #080C14; }
.scroll-sticky iframe { width: 100%; height: 100%; border: 0; display: block; }
.scene-intro { padding: clamp(48px,7vw,110px) 0 0; }

/* compliance legend slot (IR page) */
.legend { border: 1px solid var(--panel-brd); border-radius: 12px; background: rgba(255,255,255,0.03);
  padding: 20px 24px; color: var(--text-3); font-size: 0.85rem; line-height: 1.6; }
.legend b { color: var(--text-2); }

/* footer solid + no watermark (Carmine 2026-07-20) */
.footer{ background:var(--bg) !important; }
.footer-wm{ display:none !important; }

/* ============================================================
   MOBILE PASS (2026-08-05) — right-size the desktop structure for phones
   Desktop uses vh-based section min-heights (cine-band 68vh, finale 94vh,
   page-hero 62vh) + 64px section padding. On tall narrow phones that reads
   oversized/sparse. Tighten spacing, shrink the vh bands, cap media height.
   ============================================================ */
@media (max-width: 640px){
  section { padding: clamp(34px, 9vw, 52px) 0; }
  .section-head { margin-bottom: clamp(22px, 6vw, 34px); }
  .section-head h2 { margin: 10px 0 12px; }

  /* cinematic image bands: shorter, content-hugging on phones */
  .cine-band { min-height: 0; padding: clamp(48px,16vw,88px) 0; }
  .cine-band .lede { margin-top: 14px; }

  /* page heroes + finale: stop reserving a whole desktop viewport */
  .page-hero { min-height: 52vh; }
  .finale { min-height: 66vh; }

  /* tighten the type a touch so it doesn't dominate the small screen */
  h1 { font-size: clamp(1.72rem, 8vw, 2.15rem); line-height: 1.06; }
  h2 { font-size: clamp(1.4rem, 6.4vw, 1.85rem); }
  .lede { font-size: 1rem; line-height: 1.55; }

  /* media never distorts + never overflows */
  img, video { max-width: 100%; }
  .stat .num { font-size: clamp(1.6rem, 8vw, 2rem); }
}
/* very small phones */
@media (max-width: 380px){
  :root { --pad-x: 18px; }
  h1 { font-size: clamp(1.55rem, 8.2vw, 1.95rem); }
}

/* ---- LEADERSHIP tiles: tinted portrait on top, name + bio underneath ---- */
.card.leader { padding:0; background:none; border:0; overflow:visible; }
.card.leader:hover { transform:none; border-color:transparent; }
.card.leader .lead-photo {
  position:relative; aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden;
  background-color:#0b1220;
  background-size:cover; background-position:center 12%;
  filter:grayscale(1) contrast(1.05) brightness(.95);
  transform:translateZ(0);           /* own layer: kills the light edge-fringe from filter + radius + overflow */
  transition:filter .3s ease;
}
.card.leader .lead-photo::after {          /* aerospace-blue duotone tint so shots read on-brand */
  content:''; position:absolute; inset:0;
  background: linear-gradient(160deg, rgba(46,86,140,.42), rgba(12,20,34,.24) 68%),
              linear-gradient(180deg, transparent 66%, rgba(8,12,20,.5) 100%);
}
.card.leader:hover .lead-photo { filter:grayscale(.82) contrast(1.05) brightness(1.02); }
.card.leader .lead-photo.is-empty {        /* dark placeholder until the headshot lands */
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg,#13233f,#0b1220); filter:none;
}
.card.leader .lead-photo.is-empty::after{ display:none; }
.card.leader .lead-photo.is-empty i{ font-size:2.4rem; color:rgba(201,205,213,.36); }
.card.leader .lead-info { padding:14px 2px 0; }
.card.leader .lead-info h3 { margin:0 0 6px; font-size:1.15rem; }
.card.leader .lead-info p { color:var(--text-3); font-size:.92rem; line-height:1.5; }

/* ============================================================
   MOBILE HERO REFRAME (2026-08-08) — interior page-heroes
   Center the copy + cut height so heroes frame properly on phones.
   flex-end + tall vh left the content pinned low under a big media void.
   (home-hero handled in home.html's own block.) Placed at EOF to win the cascade.
   ============================================================ */
/* UNIFORM mobile hero (every page, GH 2026-08-08): the visual — video OR image — sits on top at
   full brightness at its natural aspect, and the eyebrow / title / text drop below it. Same layout
   on every page, and it promotes the animated heroes (fully visible, no dim, no copy over the footage). */
@media (max-width:820px){
  .page-hero{ display:block; min-height:0; padding:0; }
  .page-hero::after{ display:none; }
  .page-hero video, .page-hero .hero-bg-img{ position:relative!important; inset:auto; width:100%; height:auto;
    object-fit:contain; opacity:1!important; margin-top:var(--nav-h); }
  .page-hero video{ aspect-ratio:16/9; height:auto; }
  .page-hero.hero-media .hero-bg-img{ aspect-ratio:16/9; height:auto; object-fit:cover; }
  .page-hero .wrap{ padding-top:20px; padding-bottom:4px; }
  /* HOMEPAGE hero = desktop treatment on mobile (Carmine 2026-08-12): dimmed cover footage + scrim + logo/copy over it */
  .page-hero.hero-cover{ display:flex; align-items:flex-end; min-height:70vh; padding-top:var(--nav-h); }
  .page-hero.hero-cover::after{ display:block; }
  .page-hero.hero-cover video{ position:absolute!important; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.5; margin-top:0; aspect-ratio:auto; }
  .page-hero.hero-cover .wrap{ padding-top:clamp(36px,5vw,64px); padding-bottom:clamp(44px,6vw,72px); }
}

/* strategic alignment - elevated partner constellation (shared: home + company) */
.align-stage { display:block; position:relative; border:1px solid var(--panel-brd); border-radius:24px; padding:clamp(30px,5vw,70px);
  background:radial-gradient(120% 120% at 50% 0%, var(--bg3), var(--bg2)); overflow:hidden; }
.seals { display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(20px,3vw,50px); align-items:flex-start; }
@media(max-width:720px){ .seals > .seal{ flex:0 0 calc((100% - clamp(20px,3vw,50px)) / 2); } }
.seal { display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; flex:0 0 calc((100% - 3*clamp(20px,3vw,50px)) / 4); }
.seal img { width:clamp(72px,9vw,120px); height:auto; filter:drop-shadow(0 0 18px rgba(201,205,213,0.25)); transition:transform .3s; }
.seal:hover img { transform:translateY(-6px) scale(1.05); }
.seal span { color:var(--text-2); font-family:var(--font-head); font-size:0.82rem; letter-spacing:0.05em; }
