*, *::before, *::after { box-sizing: border-box; }
  html, body { margin: 0; padding: 0; background: #0E1A2E; }
  body { font-family: 'Manrope', system-ui, sans-serif; color: #F5F0E8; -webkit-font-smoothing: antialiased; }
  ::selection { background: #C9A84C; color: #1B2E4B; }

  @keyframes sng-rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
  @keyframes sng-glow {
    0%, 100% { filter: drop-shadow(0 0 8px rgba(201,168,76,0.35)) drop-shadow(0 0 22px rgba(201,168,76,0.18)); }
    50%      { filter: drop-shadow(0 0 16px rgba(201,168,76,0.65)) drop-shadow(0 0 42px rgba(201,168,76,0.35)); }
  }
  @keyframes sng-word-in {
    from { opacity: 0; transform: translateY(28px); filter: blur(6px); }
    to   { opacity: 1; transform: translateY(0); filter: blur(0); }
  }
  @keyframes sng-fade-in {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  @keyframes sng-grain {
    0% { transform: translate(0,0); }
    10% { transform: translate(-3%, -2%); }
    20% { transform: translate(2%, 3%); }
    30% { transform: translate(-1%, 2%); }
    40% { transform: translate(3%, -3%); }
    50% { transform: translate(-2%, 1%); }
    60% { transform: translate(2%, 2%); }
    70% { transform: translate(-3%, -1%); }
    80% { transform: translate(1%, 3%); }
    90% { transform: translate(-2%, -2%); }
    100% { transform: translate(0,0); }
  }
  @keyframes sng-trace {
    0%   { stroke-dashoffset: 800; opacity: 0; }
    100% { stroke-dashoffset: 0;   opacity: 1; }
  }

  .sng-word { display: inline-block; opacity: 0; will-change: transform, opacity, filter; }
  .sng-hero-in .sng-word { animation: sng-word-in 1.1s cubic-bezier(.2,.7,.2,1) forwards; }

  /* scroll reveal */
  .sng-reveal { opacity: 0; transform: translateY(40px); transition: opacity 1.2s cubic-bezier(.2,.7,.2,1), transform 1.2s cubic-bezier(.2,.7,.2,1); will-change: transform, opacity; }
  .sng-reveal.is-in { opacity: 1; transform: translateY(0); }

  .sng-rule { position: relative; height: 1px; width: 100%; background: linear-gradient(90deg, transparent 0%, rgba(201,168,76,0.55) 50%, transparent 100%); transform-origin: left center; transform: scaleX(0); transition: transform 1.6s cubic-bezier(.7,0,.2,1); }
  .sng-rule.is-in { transform: scaleX(1); }

  .sng-cta { position: relative; display: inline-flex; align-items: center; gap: 14px; padding: 22px 46px; color: #F5F0E8; background: transparent; border: 1px solid rgba(245,240,232,0.22); font-family: 'Manrope', sans-serif; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; cursor: pointer; transition: color .6s ease, border-color .6s ease, background .6s ease; }
  .sng-cta:hover { color: #C9A84C; border-color: transparent; background: rgba(201,168,76,0.04); }
  .sng-cta svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
  .sng-cta svg rect { fill: none; stroke: #C9A84C; stroke-width: 1; stroke-dasharray: 1000; stroke-dashoffset: 1000; transition: stroke-dashoffset 1.4s cubic-bezier(.7,0,.2,1); }
  .sng-cta:hover svg rect { stroke-dashoffset: 0; }

  .sng-nav-link { color: rgba(245,240,232,0.62); text-decoration: none; font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; transition: color .3s ease; }
  .sng-nav-link:hover { color: #C9A84C; }

  /* ---- Contact form ---- */
  .sng-form-wrap { padding: 56px 56px 52px; text-align: left; }
  .sng-form-corner { position: absolute; width: 22px; height: 22px; pointer-events: none; }
  .sng-form-corner-tl { top: 0; left: 0; border-top: 1px solid rgba(201,168,76,0.5); border-left: 1px solid rgba(201,168,76,0.5); }
  .sng-form-corner-tr { top: 0; right: 0; border-top: 1px solid rgba(201,168,76,0.5); border-right: 1px solid rgba(201,168,76,0.5); }
  .sng-form-corner-bl { bottom: 0; left: 0; border-bottom: 1px solid rgba(201,168,76,0.5); border-left: 1px solid rgba(201,168,76,0.5); }
  .sng-form-corner-br { bottom: 0; right: 0; border-bottom: 1px solid rgba(201,168,76,0.5); border-right: 1px solid rgba(201,168,76,0.5); }
  .sng-form-eyebrow { font-family: 'Manrope', sans-serif; font-size: 10px; letter-spacing: 0.42em; color: #C9A84C; text-transform: uppercase; text-align: center; margin-bottom: 40px; }
  .sng-form { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 36px; }
  .sng-field { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
  .sng-field-full { grid-column: 1 / -1; }
  .sng-label { font-family: 'Manrope', sans-serif; font-size: 10px; letter-spacing: 0.36em; color: rgba(245,240,232,0.58); text-transform: uppercase; display: flex; align-items: baseline; gap: 10px; }
  .sng-label-opt { font-size: 9px; letter-spacing: 0.24em; color: rgba(245,240,232,0.32); }
  .sng-input { font-family: 'Manrope', sans-serif; font-size: 14px; font-weight: 300; letter-spacing: 0.02em; color: #F5F0E8; background: transparent; border: none; border-bottom: 1px solid rgba(245,240,232,0.20); padding: 6px 2px 12px; outline: none; transition: border-color .5s ease; width: 100%; }
  .sng-input::placeholder { color: rgba(245,240,232,0.24); }
  .sng-input:focus { border-bottom-color: #C9A84C; }
  .sng-input:focus + .sng-input-rule, .sng-input:focus ~ .sng-input-rule { transform: scaleX(1); }
  .sng-textarea { resize: vertical; min-height: 120px; line-height: 1.65; }
  .sng-form-action { margin-top: 16px; display: flex; justify-content: center; }
  .sng-form-status { grid-column: 1 / -1; text-align: center; font-family: 'Manrope', sans-serif; font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(245,240,232,0.55); min-height: 14px; transition: color .4s ease; }
  .sng-form-status.is-error { color: #d97a6b; }
  .sng-form-status.is-success { color: #C9A84C; }
  .sng-input:user-invalid, .sng-input.is-invalid { border-bottom-color: rgba(217,122,107,0.7); }

  /* ---- Mobile (≤780px) ---- */
  @media (max-width: 780px) {
    .sng-nav { padding: 18px 20px !important; }
    .sng-nav-links { display: none !important; }
    .sng-nav-est { display: none !important; }
    .sng-nav-brand { font-size: 11px !important; letter-spacing: 0.32em !important; }

    .sng-hero { padding: 120px 22px 100px !important; min-height: 100svh !important; }
    .sng-hero-corner { width: 18px !important; height: 18px !important; }
    .sng-hero-corner-tl, .sng-hero-corner-tr { top: 76px !important; }
    .sng-hero-corner-tl, .sng-hero-corner-bl { left: 20px !important; }
    .sng-hero-corner-tr, .sng-hero-corner-br { right: 20px !important; }
    .sng-hero-corner-bl, .sng-hero-corner-br { bottom: 28px !important; }
    .sng-hero-label { margin-bottom: 36px !important; font-size: 9.5px !important; letter-spacing: 0.36em !important; text-align: center; padding: 0 12px; }
    .sng-hero-compass { width: 124px !important; height: 124px !important; margin-bottom: 44px !important; }
    .sng-hero-sub { margin-top: 40px !important; padding: 0 8px; }
    .sng-hero-sub-line { height: 40px !important; }
    .sng-hero-sub-text { font-size: 15px !important; }

    .sng-manifesto { padding: 120px 22px !important; }
    .sng-manifesto-label-wrap { margin-bottom: 48px !important; }
    .sng-manifesto-stats { gap: 20px !important; margin-top: 40px !important; }

    .sng-pillars { padding: 100px 22px 120px !important; }
    .sng-pillars-header { margin-bottom: 56px !important; }
    .sng-pillars-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
    .sng-pillar-card { min-height: 0 !important; padding: 32px 24px 30px !important; }

    .sng-arch { padding: 130px 22px !important; }
    .sng-arch-stats { grid-template-columns: repeat(2, 1fr) !important; gap: 32px 24px !important; margin-top: 60px !important; }
    .sng-arch-body { font-size: 17px !important; margin-top: 36px !important; }

    .sng-cta-section { padding: 90px 22px !important; min-height: 80vh !important; }
    .sng-cta-rule { margin: 56px auto !important; }

    .sng-footer { padding: 36px 22px 32px !important; flex-direction: column !important; align-items: flex-start !important; gap: 14px !important; }
    .sng-footer-meta { font-size: 9px !important; letter-spacing: 0.28em !important; }

    .sng-cta { padding: 18px 32px !important; font-size: 11px !important; letter-spacing: 0.28em !important; }

    .sng-form-wrap { padding: 36px 26px 36px !important; }
    .sng-form { grid-template-columns: 1fr !important; gap: 24px !important; }
    .sng-form-eyebrow { font-size: 9.5px !important; letter-spacing: 0.36em !important; margin-bottom: 28px !important; }
    .sng-form-corner { width: 18px !important; height: 18px !important; }
  }

  @media (max-width: 420px) {
    .sng-manifesto-stats { gap: 16px !important; }
    .sng-manifesto-stat-num { font-size: 26px !important; }
    .sng-manifesto-stat-label { font-size: 8.5px !important; letter-spacing: 0.32em !important; }
  }
