:root {
  color-scheme: light;
  --page: #fbfdff;
  --page-white: #ffffff;
  --navy: #071b4a;
  --navy-deep: #020c24;
  --blue: #3f8fd8;
  --teal: #08aeb7;
  --muted: #5a697c;
  --white: #ffffff;
  --footer-text: rgba(255, 255, 255, .84);
  --footer-muted: rgba(255, 255, 255, .66);
  --focus: #82f4f7;
  --content-width: 1180px;
}

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

html {
  width: 100%;
  min-height: 100%;
  margin: 0;
  background: var(--page-white);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  display: flex;
  flex-direction: column;
  overflow-x: clip;
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 7% 12%, rgba(63, 143, 216, .070), transparent 28rem),
    radial-gradient(circle at 93% 21%, rgba(8, 174, 183, .060), transparent 26rem),
    linear-gradient(180deg, #ffffff 0%, var(--page) 100%);
  color: var(--navy);
  font-family:
    Inter, Geist, Aptos, ui-sans-serif, -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-synthesis: none;
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

@supports not (overflow: clip) {
  body {
    overflow-x: hidden;
  }
}

@supports (min-height: 100dvh) {
  body {
    min-height: 100dvh;
  }
}

img,
svg,
picture {
  max-width: 100%;
}

img {
  height: auto;
}

a {
  -webkit-tap-highlight-color: rgba(8, 174, 183, .16);
}

body::before {
  content: "";
  position: fixed;
  z-index: -2;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(255,255,255,.96), rgba(255,255,255,.42) 42%, transparent 72%);
}

body::after {
  content: "";
  position: fixed;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background-image: url("../images/grain-20260910.png");
  background-repeat: repeat;
  opacity: .016;
  mix-blend-mode: multiply;
}

main {
  flex: 1 0 auto;
  width: min(100%, var(--content-width));
  min-width: 0;
  min-height: 0;
  margin-inline: auto;
  padding:
    max(clamp(18px, 3.4vw, 48px), env(safe-area-inset-top))
    max(clamp(14px, 4vw, 40px), env(safe-area-inset-right))
    clamp(22px, 3.2vw, 36px)
    max(clamp(14px, 4vw, 40px), env(safe-area-inset-left));
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: clamp(20px, 4vh, 44px);
}

.brand-stage {
  min-width: 0;
  min-height: 0;
  display: grid;
  place-items: center;
  position: relative;
  padding-block: clamp(2px, 1.4vh, 16px);
}

.brand-stage::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: min(74vw, 770px);
  max-width: 100%;
  height: min(22vw, 220px);
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(63,143,216,.038), transparent 70%);
  pointer-events: none;
}

.brand-stage picture {
  display: block;
  width: min(68vw, 650px);
  max-width: 100%;
}

.logo {
  display: block;
  width: 100%;
  max-width: 100%;
  max-height: 530px;
  max-height: min(54svh, 530px);
  height: auto;
  margin-inline: auto;
  object-fit: contain;
  filter: none;
  transform-origin: 50% 50%;
  animation: logo-enter 900ms cubic-bezier(.2,.72,.2,1) both;
}

.status {
  width: min(100%, 720px);
  min-width: 0;
  margin-inline: auto;
  padding-inline: clamp(0px, 1.2vw, 8px);
  text-align: center;
  animation: status-enter 760ms 160ms cubic-bezier(.2,.72,.2,1) both;
}

.status::before {
  content: "";
  display: block;
  width: clamp(54px, 9vw, 70px);
  height: 3px;
  margin: 0 auto clamp(13px, 2vw, 18px);
  border-radius: 999px;
  background: linear-gradient(90deg, var(--blue), var(--teal));
  box-shadow: 0 5px 18px rgba(8,174,183,.11);
  transform-origin: center;
  animation: accent-enter 820ms 300ms cubic-bezier(.2,.72,.2,1) both;
}

h1 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(1.24rem, 2.25vw, 1.92rem);
  line-height: 1.14;
  font-weight: 700;
  letter-spacing: -.032em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.submessage {
  max-width: 620px;
  margin: 11px auto 0;
  color: var(--muted);
  font-size: clamp(.96rem, 1.2vw, 1.065rem);
  line-height: 1.62;
  letter-spacing: -.004em;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

footer {
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(8,174,183,.88);
  padding:
    12px
    max(14px, env(safe-area-inset-right))
    calc(13px + env(safe-area-inset-bottom))
    max(14px, env(safe-area-inset-left));
  background:
    radial-gradient(circle at 50% -190%, rgba(63,143,216,.24), transparent 48%),
    linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  color: var(--footer-text);
  text-align: center;
  animation: footer-enter 700ms 260ms ease-out both;
}

footer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.022), transparent);
}

.footer-inner {
  width: min(100%, 1080px);
  min-width: 0;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}

.footer-line,
.copyright {
  margin: 0;
}

.footer-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  min-width: 0;
  color: var(--footer-muted);
  font-size: clamp(.78rem, 1.55vw, .84rem);
  line-height: 1.42;
}

.footer-line > * {
  min-width: 0;
}

.footer-line > * + *::before {
  content: "·";
  display: inline-block;
  margin-inline: .52rem;
  color: rgba(255,255,255,.40);
  font-weight: 400;
  text-decoration: none;
}

.footer-line-primary {
  color: rgba(255,255,255,.84);
}

.footer-line-primary strong {
  color: var(--white);
  font-weight: 720;
}

.footer-line-meta {
  margin-top: 2px;
}

.footer-line-contact {
  margin-top: 1px;
}

.footer-line-contact strong {
  color: rgba(255,255,255,.90);
  font-weight: 700;
}

.footer-abn {
  white-space: nowrap;
}

.footer-line a {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  color: #82edf0;
  font-weight: 650;
  line-height: 1.3;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
  transition:
    color 160ms ease,
    text-decoration-color 160ms ease,
    text-decoration-thickness 160ms ease;
}

.footer-line a:hover {
  color: #ffffff;
  text-decoration-thickness: 2px;
}

.footer-line a:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
  border-radius: 4px;
}

.copyright {
  margin-top: 2px;
  color: rgba(255,255,255,.49);
  font-size: clamp(.74rem, 1.45vw, .79rem);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

@keyframes logo-enter {
  from {
    opacity: 0;
    transform: translateY(8px) scale(.987);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes status-enter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes accent-enter {
  from {
    opacity: 0;
    transform: scaleX(.12);
  }
  to {
    opacity: 1;
    transform: scaleX(1);
  }
}

@keyframes footer-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Narrow phones, compact embedded browsers and split-screen windows */
@media (max-width: 560px) {
  body::after {
    opacity: .010;
  }

  main {
    gap: 20px;
    padding-top: max(16px, env(safe-area-inset-top));
    padding-right: max(12px, env(safe-area-inset-right));
    padding-bottom: 16px;
    padding-left: max(12px, env(safe-area-inset-left));
  }

  .brand-stage {
    padding-block: 0 4px;
  }

  .brand-stage picture {
    width: min(72vw, 350px);
  }

  .logo {
    max-height: 43vh;
    max-height: 43svh;
  }

  footer {
    padding-top: 16px;
  }

}

/* Very narrow devices and aggressive split-screen modes */
@media (max-width: 359px) {
  main {
    gap: 16px;
    padding-right: max(10px, env(safe-area-inset-right));
    padding-left: max(10px, env(safe-area-inset-left));
  }

  .brand-stage picture {
    width: 75%;
  }

  h1 {
    font-size: clamp(1.24rem, 7.2vw, 1.48rem);
  }

  .submessage {
    font-size: clamp(.91rem, 4.6vw, .98rem);
    line-height: 1.52;
  }

}

/* Extreme narrow fallback: no horizontal overflow even below common phone widths */
@media (max-width: 279px) {
  body::after,
  .brand-stage::after {
    display: none;
  }

  main {
    padding-left: max(8px, env(safe-area-inset-left));
    padding-right: max(8px, env(safe-area-inset-right));
  }

  .footer-line {
    font-size: .76rem;
  }

  .footer-line > * + *::before {
    margin-inline: .32rem;
  }
}

/* Phones and small tablets in landscape / short browser windows */
@media (max-height: 560px) {
  main {
    grid-template-rows: auto auto;
    gap: 14px;
    padding-top: max(10px, env(safe-area-inset-top));
    padding-bottom: 12px;
  }

  .brand-stage {
    padding: 0;
  }

  .brand-stage picture {
    width: min(48vw, 420px);
  }

  .logo {
    max-height: 34vh;
    max-height: 34svh;
  }

  .status::before {
    height: 2px;
    margin-bottom: 9px;
  }

  .submessage {
    margin-top: 7px;
    line-height: 1.45;
  }

  footer {
    padding-top: 11px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }

  .footer-line-meta,
  .footer-line-contact {
    margin-top: 1px;
  }
}

/* Very short landscape windows */
@media (max-height: 420px) {
  body::before,
  body::after,
  .brand-stage::after {
    display: none;
  }

  main {
    gap: 10px;
    padding-top: max(8px, env(safe-area-inset-top));
    padding-bottom: 9px;
  }

  .brand-stage picture {
    width: min(39vw, 325px);
  }

  .logo {
    max-height: 29vh;
    max-height: 29svh;
  }

  h1 {
    font-size: clamp(1.08rem, 4.2vh, 1.38rem);
  }

  .submessage {
    font-size: .9rem;
  }

  footer {
    padding-top: 9px;
    padding-bottom: calc(9px + env(safe-area-inset-bottom));
  }

  .footer-line,
  .copyright {
    font-size: .72rem;
  }

  .footer-line a {
    min-height: 30px;
  }
}

/* Small tablets */
@media (min-width: 561px) and (max-width: 900px) {
  .brand-stage picture {
    width: min(62vw, 540px);
  }

  .logo {
    max-height: 49vh;
    max-height: 49svh;
  }

}

/* Large desktop and 4K displays */
@media (min-width: 1600px) and (min-height: 900px) {
  .brand-stage picture {
    width: min(35vw, 675px);
  }

  main {
    gap: 46px;
  }
}

@media (min-width: 2400px) {
  :root {
    --content-width: 1320px;
  }

  .brand-stage picture {
    width: min(27vw, 705px);
  }
}

/* Accessibility preferences */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

@media (prefers-contrast: more) {
  :root {
    --muted: #34455d;
    --footer-text: rgba(255,255,255,.98);
    --footer-muted: rgba(255,255,255,.86);
  }

  footer a {
    color: #b2fcff;
  }

  body::after {
    display: none;
  }
}

@media (forced-colors: active) {
  body::before,
  body::after,
  .brand-stage::after {
    display: none;
  }

  .status::before {
    background: CanvasText;
    box-shadow: none;
  }

  footer {
    border-top: 1px solid CanvasText;
    background: Canvas;
    color: CanvasText;
  }

  .footer-title,
  .copyright,
  footer a {
    color: CanvasText;
  }
}

@media print {
  body {
    background: #fff;
  }

  body::before,
  body::after,
  .brand-stage::after {
    display: none;
  }

  footer {
    background: #fff;
    color: var(--navy);
    border-top-color: var(--navy);
  }

  .footer-title,
  footer a,
  .copyright {
    color: var(--navy);
  }
}

/* Long-form privacy page */
.legal-body {
  background:
    radial-gradient(circle at 8% 8%, rgba(63, 143, 216, .055), transparent 26rem),
    radial-gradient(circle at 92% 14%, rgba(8, 174, 183, .050), transparent 24rem),
    linear-gradient(180deg, #ffffff 0%, var(--page) 100%);
}

.legal-main {
  flex: 1 0 auto;
  display: block;
  width: min(100%, 940px);
  min-width: 0;
  margin-inline: auto;
  padding:
    max(clamp(24px, 5vw, 58px), env(safe-area-inset-top))
    max(clamp(14px, 4vw, 34px), env(safe-area-inset-right))
    clamp(38px, 6vw, 72px)
    max(clamp(14px, 4vw, 34px), env(safe-area-inset-left));
}

.legal-header {
  min-width: 0;
  margin-bottom: clamp(26px, 5vw, 48px);
  text-align: center;
}

.legal-logo {
  display: block;
  width: min(72vw, 430px);
  max-width: 100%;
  height: auto;
  margin: 0 auto 24px;
}

.legal-eyebrow {
  margin: 0 0 10px;
  color: var(--teal);
  font-size: .82rem;
  line-height: 1.4;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.legal-header h1 {
  font-size: clamp(1.8rem, 5vw, 3.25rem);
}

.legal-updated {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: .94rem;
}

.legal-card {
  min-width: 0;
  padding: clamp(20px, 4vw, 42px);
  border: 1px solid rgba(7, 27, 74, .075);
  border-radius: clamp(16px, 3vw, 24px);
  background: rgba(255,255,255,.90);
  box-shadow: 0 18px 55px rgba(7, 27, 74, .055);
  overflow-wrap: anywhere;
}

.legal-card h2 {
  margin: 30px 0 9px;
  color: var(--navy);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  line-height: 1.3;
  letter-spacing: -.015em;
  scroll-margin-top: 24px;
}

.legal-card h2:first-child {
  margin-top: 0;
}

.legal-card p,
.legal-card li {
  color: #48586d;
  font-size: clamp(.95rem, 1.5vw, 1rem);
  line-height: 1.72;
  overflow-wrap: anywhere;
}

.legal-card p {
  margin: 0 0 14px;
}

.legal-card ul {
  margin: 8px 0 16px;
  padding-left: clamp(1.05rem, 4vw, 1.25rem);
}

.legal-card li + li {
  margin-top: 7px;
}

.legal-card a {
  color: #087f8c;
  font-weight: 650;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.legal-card strong {
  color: var(--navy);
}

.privacy-summary {
  margin: 0 0 34px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(8, 174, 183, .16);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(63,143,216,.055), rgba(8,174,183,.045));
}

.privacy-summary h2 {
  margin-top: 0;
}

.privacy-summary ul {
  margin-bottom: 0;
}

.privacy-summary li {
  color: #3f536a;
}

.legal-actions {
  margin-top: 28px;
  text-align: center;
}

.legal-back {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  border: 1px solid rgba(7,27,74,.12);
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.legal-back:hover {
  background: #0a2a61;
}

.legal-back:focus-visible {
  outline: 3px solid rgba(8,174,183,.42);
  outline-offset: 4px;
}

@media (max-width: 560px) {
  .legal-logo {
    width: min(88vw, 430px);
    margin-bottom: 20px;
  }

  .legal-card {
    padding: 20px 17px;
    box-shadow: 0 12px 34px rgba(7,27,74,.045);
  }

  .privacy-summary {
    margin-bottom: 28px;
    padding: 17px;
    border-radius: 14px;
  }
}

@media (max-width: 320px) {
  .legal-main {
    padding-right: max(10px, env(safe-area-inset-right));
    padding-left: max(10px, env(safe-area-inset-left));
  }

  .legal-card {
    padding: 18px 13px;
  }
}

/* 404 page */
.error-main {
  flex: 1 0 auto;
  display: grid;
  place-items: center;
  width: min(100%, 940px);
  min-width: 0;
  margin-inline: auto;
  padding:
    max(24px, env(safe-area-inset-top))
    max(14px, env(safe-area-inset-right))
    36px
    max(14px, env(safe-area-inset-left));
}

.error-card {
  width: min(100%, 720px);
  min-width: 0;
  text-align: center;
  padding: clamp(28px, 6vw, 48px) clamp(12px, 4vw, 24px);
}

.error-code {
  margin: 0;
  color: var(--teal);
  font-size: clamp(3rem, 12vw, 5.5rem);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -.06em;
}

.error-card h1 {
  margin-top: 18px;
}

.home-link {
  display: inline-flex;
  min-height: 46px;
  margin-top: 24px;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  border-radius: 999px;
  background: var(--navy);
  color: white;
  font-weight: 700;
  text-decoration: none;
}

.home-link:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 4px;
}

/* ============================================================
   LSEA premium splash refinements
   Scoped to .home-page so legal/error pages remain unchanged.
   ============================================================ */

.home-page {
  background:
    radial-gradient(circle at 10% 10%, rgba(63,143,216,.070), transparent 29rem),
    radial-gradient(circle at 91% 18%, rgba(8,174,183,.065), transparent 27rem),
    linear-gradient(180deg, #ffffff 0%, #fbfdff 66%, #f9fcff 100%);
}

.home-page main {
  position: relative;
  isolation: isolate;
}

/* Large atmospheric backdrop — complete and even behind the full logo area. */
.home-page main::before {
  content: "";
  position: absolute;
  z-index: -2;
  left: 50%;
  top: 42%;
  width: min(92vw, 980px);
  height: min(64vw, 620px);
  pointer-events: none;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 48%, rgba(168, 225, 255, .125), transparent 28%),
    radial-gradient(circle at 70% 48%, rgba(168, 225, 255, .115), transparent 30%),
    radial-gradient(ellipse at center, rgba(196, 238, 255, .11) 0%, rgba(196, 238, 255, .058) 42%, transparent 74%);
  filter: blur(26px);
  opacity: .94;
  transform: translate(-50%, -50%) scale(.98);
  animation: atmosphere-resolve 1200ms 60ms cubic-bezier(.2,.72,.2,1) both;
}

/* Atmospheric blue/teal light, deliberately subtle. */
.home-page main::after {
  content: "";
  position: absolute;
  z-index: -3;
  left: 50%;
  top: 39%;
  width: min(92vw, 980px);
  height: min(52vw, 500px);
  pointer-events: none;
  border-radius: 50%;
  background:
    radial-gradient(circle at 34% 48%, rgba(63,143,216,.090), transparent 35%),
    radial-gradient(circle at 66% 48%, rgba(8,174,183,.078), transparent 34%);
  filter: blur(24px);
  opacity: 0;
  transform: translate(-50%, -50%) scale(.94);
  animation:
    atmosphere-resolve 1450ms 40ms cubic-bezier(.2,.72,.2,1) both,
    atmosphere-drift 14s 1600ms ease-in-out infinite alternate;
}

/* Logo remains flat and shadow-free; entrance becomes smoother. */
.home-page .logo {
  animation: premium-logo-enter 980ms 90ms cubic-bezier(.18,.76,.22,1) both;
}

/* Keep the status editorial and secondary to the brand. */
.home-page .status {
  animation: none;
}

.home-page .status::before {
  height: 2px;
  width: clamp(52px, 8vw, 66px);
  margin-bottom: clamp(12px, 1.8vw, 16px);
  box-shadow: none;
  animation: premium-accent-enter 720ms 390ms cubic-bezier(.2,.72,.2,1) both;
}

.home-page #development-heading {
  color: #0a2456;
  font-weight: 650;
  letter-spacing: -.024em;
  animation: premium-heading-enter 680ms 430ms cubic-bezier(.2,.72,.2,1) both;
}

.home-page .submessage {
  max-width: 590px;
  margin-top: 9px;
  color: #5b6a7d;
  letter-spacing: 0;
  animation: premium-copy-enter 650ms 520ms cubic-bezier(.2,.72,.2,1) both;
}

/* Compact premium footer refinement. */
.home-page footer {
  background:
    radial-gradient(circle at 50% -190%, rgba(63,143,216,.24), transparent 49%),
    linear-gradient(180deg, #071b4a 0%, #020c24 100%);
  animation: premium-footer-enter 620ms 690ms ease-out both;
}

.home-page footer::before {
  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(255,255,255,.015) 24%,
      rgba(8,174,183,.032) 50%,
      rgba(255,255,255,.015) 76%,
      transparent 100%);
}

.home-page .footer-line a {
  text-decoration-color: rgba(130,237,240,.58);
}

.home-page .footer-line a:hover {
  text-decoration-color: #ffffff;
}

/* First interaction ends any remaining intro motion immediately. */
.home-page.motion-skip *,
.home-page.motion-skip *::before,
.home-page.motion-skip *::after {
  animation: none !important;
  transition-duration: .001ms !important;
}

/* Premium entrance sequence. */
@keyframes premium-logo-enter {
  from {
    opacity: 0;
    transform: translateY(10px) scale(.978);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes premium-accent-enter {
  from {
    opacity: 0;
    transform: scaleX(.08);
  }
  to {
    opacity: 1;
    transform: scaleX(1);
  }
}

@keyframes premium-heading-enter {
  from {
    opacity: 0;
    transform: translateY(7px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes premium-copy-enter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes premium-footer-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes mark-resolve {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(-4deg) scale(.93);
  }
  to {
    opacity: .021;
    transform: translate(-50%, -50%) rotate(-4deg) scale(.965);
  }
}

@keyframes atmosphere-resolve {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.91);
  }
  to {
    opacity: .72;
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes atmosphere-drift {
  0% {
    transform: translate(-51%, -50%) scale(1);
  }
  100% {
    transform: translate(-49%, -49%) scale(1.035);
  }
}

/* Mobile: keep atmosphere subtle and avoid crowding. */
@media (max-width: 560px) {
  .home-page main::before {
    top: 38%;
    width: min(94vw, 520px);
    opacity: .016;
  }

  .home-page main::after {
    top: 36%;
    width: 110vw;
    height: 66vw;
    filter: blur(20px);
  }

  .home-page footer {
    padding-top: 17px;
  }

}

/* Short landscape: prioritise clarity and vertical space. */
@media (max-height: 560px) {
  .home-page main::before {
    top: 32%;
    width: min(44vw, 350px);
    opacity: .013;
  }

  .home-page main::after {
    top: 30%;
    width: min(62vw, 560px);
    height: min(34vw, 250px);
    filter: blur(18px);
  }

  .home-page footer {
    padding-top: 11px;
  }

}

@media (max-height: 420px) {
  .home-page main::before,
  .home-page main::after {
    display: none;
  }

  .home-page .footer-line a {
    transform: none !important;
  }
}

/* Large displays: atmosphere scales without making content oversized. */
@media (min-width: 1600px) and (min-height: 900px) {
  .home-page main::before {
    width: min(43vw, 820px);
  }

  .home-page main::after {
    width: min(58vw, 1080px);
    height: min(30vw, 540px);
  }
}

/* Motion/contrast preferences take precedence. */
@media (prefers-reduced-motion: reduce) {
  .home-page main::before,
  .home-page main::after,
  .home-page .logo,
  .home-page .status::before,
  .home-page #development-heading,
  .home-page .submessage,
  .home-page footer {
    animation: none !important;
  }
}

@media (prefers-contrast: more), (forced-colors: active) {
  .home-page main::before,
  .home-page main::after {
    display: none;
  }
}



/* Final compact-footer responsive cleanup */
@media (max-width: 560px) {
  footer {
    padding-top: 10px;
    padding-bottom: calc(11px + env(safe-area-inset-bottom));
  }

  .footer-line {
    font-size: .77rem;
    line-height: 1.38;
  }

  .footer-line > * + *::before {
    margin-inline: .38rem;
  }

  .footer-line a {
    min-height: 30px;
  }

  .copyright {
    margin-top: 1px;
    font-size: .72rem;
  }
}

@media (max-width: 359px) {
  .footer-line {
    row-gap: 1px;
  }

  .footer-line-primary {
    display: block;
  }

  .footer-line-primary > * {
    display: block;
  }

  .footer-line-primary > * + *::before {
    content: none;
  }
}

@media (max-height: 560px) {
  footer {
    padding-top: 8px;
    padding-bottom: calc(8px + env(safe-area-inset-bottom));
  }

  .footer-line {
    font-size: .72rem;
  }

  .footer-line a {
    min-height: 28px;
  }

  .copyright {
    font-size: .69rem;
  }
}

/* Final footer hyperlink colour lock */
footer a:link,
footer a:visited,
.footer-line a:link,
.footer-line a:visited,
.home-page .footer-line a:link,
.home-page .footer-line a:visited {
  color: #82edf0 !important;
  -webkit-text-fill-color: #82edf0;
  text-decoration-color: rgba(130,237,240,.62) !important;
}

footer a:hover,
footer a:focus-visible,
.footer-line a:hover,
.footer-line a:focus-visible,
.home-page .footer-line a:hover,
.home-page .footer-line a:focus-visible {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  text-decoration-color: #ffffff !important;
}

footer a:active,
.footer-line a:active,
.home-page .footer-line a:active {
  color: #baf8fa !important;
  -webkit-text-fill-color: #baf8fa;
}

/* ============================================================
   FINAL INTERACTIVE LOGO PASS — v3
   Keeps layout/content unchanged. Adds visible pale-blue depth
   and hidden direct-manipulation interaction to the logo only.
   ============================================================ */

.home-page .brand-stage picture {
  position: relative;
  isolation: isolate;
  transform-origin: 50% 50%;
  transform-style: preserve-3d;
  will-change: transform;
}


.home-page .brand-stage picture .logo {
  position: relative;
  z-index: 1;
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  touch-action: none;
  backface-visibility: visible;
}

/* During direct manipulation the wrapper, not the image, is transformed.
   This avoids conflict with the existing logo entrance animation. */
.home-page .brand-stage picture.is-interacting {
  will-change: transform;
}

@media (max-width: 560px) {
  .home-page .brand-stage picture::before {
    width: 112%;
    height: 72%;
    top: 58%;
    filter: blur(16px);
  }

  .home-page .brand-stage picture::after {
    width: 84%;
    height: 24%;
    bottom: 4%;
  }
}

@media (max-height: 560px) {
  .home-page .brand-stage picture::before {
    height: 62%;
    filter: blur(14px);
  }

  .home-page .brand-stage picture::after {
    height: 18%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .brand-stage picture {
    transform: none !important;
  }
}

/* ============================================================
   FINAL FOOTER — approved wording/order
   Equal text size; only organisation name + Get in Touch are bold.
   ACNC + Privacy links remain white; email is the sole accent colour.
   ============================================================ */

.footer-final {
  width: min(100%, 900px);
  --footer-final-size: clamp(.78rem, 1.35vw, .84rem);
}

.footer-final p {
  margin: 0;
  color: #ffffff;
  font-size: var(--footer-final-size);
  font-weight: 400;
  line-height: 1.35;
  text-align: center;
  overflow-wrap: anywhere;
}

.footer-org {
  white-space: nowrap;
}

.footer-org strong,
.footer-get-in-touch strong {
  font-weight: 700;
}

.footer-charity {
  margin-top: 6px !important;
}

.footer-registration {
  margin-top: 3px !important;
}

.footer-get-in-touch {
  margin-top: 7px !important;
}

.footer-contact-email {
  margin-top: 0 !important;
}

.footer-privacy {
  margin-top: 5px !important;
}

.footer-final .copyright {
  margin-top: 3px;
  color: #ffffff;
  font-size: var(--footer-final-size);
  font-weight: 400;
  line-height: 1.35;
}

/* Email is the only footer accent colour. */
.footer-final .footer-contact-email a:link,
.footer-final .footer-contact-email a:visited {
  color: #82edf0 !important;
  -webkit-text-fill-color: #82edf0;
  font-weight: 400;
  text-decoration-color: rgba(130,237,240,.58) !important;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* ACNC and Privacy links stay white in all normal/visited states. */
.footer-final .footer-registration a:link,
.footer-final .footer-registration a:visited,
.footer-final .footer-privacy a:link,
.footer-final .footer-privacy a:visited {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  font-weight: 400;
  text-decoration-color: rgba(255,255,255,.72) !important;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.footer-final a:hover,
.footer-final a:focus-visible {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  text-decoration-color: #ffffff !important;
  text-decoration-thickness: 2px;
}

.footer-final a:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  border-radius: 4px;
}

.footer-contact-email a {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  justify-content: center;
}

@media (max-width: 560px) {
  .footer-final {
    --footer-final-size: .75rem;
  }
}

@media (max-width: 420px) {
  .footer-org {
    white-space: normal;
  }
}

@media (max-height: 560px) {
  .footer-charity {
    margin-top: 3px !important;
  }

  .footer-registration {
    margin-top: 2px !important;
  }

  .footer-get-in-touch {
    margin-top: 4px !important;
  }

  .footer-contact-email a {
    min-height: 28px;
  }

  .footer-privacy {
    margin-top: 2px !important;
  }

  .footer-final .copyright {
    margin-top: 2px;
  }
}

/* ============================================================
   FINAL AUSTRALIA MAP SHADOW — approved
   ============================================================ */

/* Recognisable Australia mark behind the full logo.
   Slightly larger than the logo and a touch darker for better visibility. */
.home-page .brand-stage picture::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 50%;
  width: 112%;
  height: 112%;
  pointer-events: none;
  background:
    url("../images/lsea-australia-shadow-v3-20260910.webp")
    center / contain no-repeat;
  opacity: .16;
  filter: blur(.1px);
  transform: translate(-50%, -50%) scale(1.18) rotate(-2deg);
  transform-origin: 50% 50%;
}

/* Very soft blue bloom beneath the map, supporting only. */
.home-page .brand-stage picture::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  bottom: 2%;
  width: 80%;
  height: 20%;
  pointer-events: none;
  border-radius: 50%;
  background:
    radial-gradient(
      ellipse at center,
      rgba(137, 199, 233, .19) 0%,
      rgba(137, 199, 233, .10) 42%,
      transparent 78%
    );
  filter: blur(24px);
  transform: translateX(-50%);
}

@media (max-width: 560px) {
  .home-page .brand-stage picture::before {
    width: 120%;
    height: 120%;
    top: 51%;
    opacity: .145;
    transform: translate(-50%, -50%) scale(1.15) rotate(-2deg);
  }

  .home-page .brand-stage picture::after {
    width: 88%;
    height: 22%;
  }
}

@media (max-height: 560px) {
  .home-page .brand-stage picture::before {
    width: 102%;
    height: 102%;
    top: 50%;
    opacity: .135;
    transform: translate(-50%, -50%) scale(1.12) rotate(-2deg);
  }

  .home-page .brand-stage picture::after {
    width: 72%;
    height: 16%;
  }
}

@media (prefers-contrast: more), (forced-colors: active) {
  .home-page .brand-stage picture::before,
  .home-page .brand-stage picture::after {
    display: none;
  }
}

/* ========================================================================
   LSEA SIGNATURE SPLASH — FINAL PREMIUM PASS
   ======================================================================== */

.home-page {
  background:
    radial-gradient(circle at 7% 12%, rgba(74,155,219,.074), transparent 29rem),
    radial-gradient(circle at 93% 18%, rgba(20,177,188,.064), transparent 27rem),
    linear-gradient(180deg, #ffffff 0%, #fbfdff 68%, #f8fcff 100%);
}

.home-page::before {
  background:
    radial-gradient(ellipse at 46% 35%, rgba(255,255,255,.97), rgba(255,255,255,.44) 43%, transparent 73%),
    radial-gradient(circle at 28% 42%, rgba(105,188,236,.075), transparent 30%),
    radial-gradient(circle at 72% 44%, rgba(66,194,199,.060), transparent 31%);
  transform: translate3d(0,0,0) scale(1.02);
  animation: lsea-ambient-canvas 18s ease-in-out 1.5s infinite alternate;
  will-change: transform, opacity;
}

.home-page::after {
  opacity: .013;
}

.home-page main {
  padding-top: max(clamp(24px, 4vw, 54px), env(safe-area-inset-top));
  padding-bottom: clamp(21px, 3vw, 34px);
  gap: clamp(24px, 4.2vh, 42px);
}

.home-page .brand-stage {
  padding-block: clamp(4px, 1.5vh, 18px);
}

.home-page .brand-stage picture {
  width: min(69vw, 660px);
  transform-origin: 50% 50%;
  transform-style: preserve-3d;
  transition:
    transform 360ms cubic-bezier(.18,.72,.2,1),
    filter 360ms cubic-bezier(.18,.72,.2,1);
}

/* Australia map: clearly visible, slightly larger than the logo, still secondary. */
.home-page .brand-stage picture::before {
  left: 50%;
  top: 50%;
  width: 116%;
  height: 116%;
  opacity: .185;
  filter: blur(.08px);
  transform: translate(-50%, -50%) scale(1.17) rotate(-1.6deg);
}

/* Optical float beneath logo. */
.home-page .brand-stage picture::after {
  left: 50%;
  bottom: 0;
  width: 76%;
  height: 19%;
  opacity: .92;
  background:
    radial-gradient(
      ellipse at center,
      rgba(135,204,240,.18) 0%,
      rgba(143,211,245,.09) 43%,
      transparent 77%
    );
  filter: blur(25px);
  transform: translateX(-50%);
}

.home-page .brand-stage picture .logo {
  filter: none;
  transform-origin: 50% 50%;
  animation: lsea-logo-resolve 920ms 110ms cubic-bezier(.16,.78,.18,1) both;
}

@media (hover: hover) and (pointer: fine) {
  .home-page .brand-stage picture:hover:not(.is-interacting) {
    filter: saturate(1.015);
  }
}

.home-page .status {
  width: min(100%, 680px);
  padding-inline: clamp(0px, 1vw, 8px);
}

.home-page .status::before {
  width: clamp(66px, 8vw, 84px);
  height: 1.5px;
  margin-bottom: clamp(12px, 1.6vw, 15px);
  background:
    linear-gradient(
      90deg,
      rgba(63,143,216,.72) 0%,
      rgba(74,170,213,.96) 48%,
      rgba(8,174,183,.84) 100%
    );
  box-shadow: 0 4px 18px rgba(54,165,203,.09);
  animation: lsea-accent-draw 660ms 405ms cubic-bezier(.16,.76,.2,1) both;
}

.home-page #development-heading {
  color: #0a2456;
  font-size: clamp(1.17rem, 2.02vw, 1.76rem);
  line-height: 1.16;
  font-weight: 620;
  letter-spacing: -.024em;
  animation: lsea-heading-resolve 610ms 500ms cubic-bezier(.18,.72,.2,1) both;
}

.home-page .submessage {
  max-width: 575px;
  margin-top: 9px;
  color: #607084;
  font-size: clamp(.94rem, 1.13vw, 1.02rem);
  line-height: 1.58;
  animation: lsea-copy-resolve 610ms 605ms cubic-bezier(.18,.72,.2,1) both;
}

.home-page footer {
  border-top-color: rgba(8,174,183,.76);
  padding-top: 10px;
  padding-bottom: calc(11px + env(safe-area-inset-bottom));
  background:
    radial-gradient(circle at 50% -210%, rgba(63,143,216,.23), transparent 48%),
    linear-gradient(180deg, #071a47 0%, #020b22 100%);
  animation: lsea-footer-resolve 520ms 775ms ease-out both;
}

.home-page footer::before {
  opacity: .72;
}

.home-page .footer-org {
  font-size: clamp(.82rem, 1.35vw, .90rem);
  letter-spacing: -.005em;
}

.home-page .footer-charity {
  margin-top: 3px !important;
  color: rgba(255,255,255,.79);
}

.home-page .footer-registration {
  margin-top: 1px !important;
  color: rgba(255,255,255,.66);
}

.home-page .footer-get-in-touch {
  margin-top: 4px !important;
}

.home-page .footer-contact-email {
  margin-top: -1px !important;
}

.home-page .footer-contact-email a {
  min-height: 29px;
}

.home-page .footer-final .copyright {
  margin-top: 2px;
  color: rgba(255,255,255,.47);
}

.home-page .footer-final a:link,
.home-page .footer-final a:visited {
  color: #83e9ed !important;
  -webkit-text-fill-color: #83e9ed;
  text-decoration-color: rgba(131,233,237,.48) !important;
  transition:
    color 170ms ease,
    -webkit-text-fill-color 170ms ease,
    text-decoration-color 170ms ease,
    text-decoration-thickness 170ms ease;
}

.home-page .footer-final a:hover,
.home-page .footer-final a:focus-visible {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  text-decoration-color: rgba(255,255,255,.92) !important;
}

@keyframes lsea-logo-resolve {
  0% { opacity: 0; transform: translateY(11px) scale(.975); }
  68% { opacity: 1; transform: translateY(-1px) scale(1.002); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes lsea-accent-draw {
  0% { opacity: 0; transform: scaleX(.03); }
  100% { opacity: 1; transform: scaleX(1); }
}

@keyframes lsea-heading-resolve {
  0% { opacity: 0; transform: translateY(6px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes lsea-copy-resolve {
  0% { opacity: 0; transform: translateY(5px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes lsea-footer-resolve {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes lsea-ambient-canvas {
  0% {
    opacity: .95;
    transform: translate3d(-.35%, -.2%, 0) scale(1.015);
  }
  50% { opacity: 1; }
  100% {
    opacity: .96;
    transform: translate3d(.4%, .25%, 0) scale(1.035);
  }
}

@media (max-width: 560px) {
  .home-page main {
    gap: 19px;
    padding-top: max(18px, env(safe-area-inset-top));
    padding-bottom: 15px;
  }

  .home-page .brand-stage {
    padding-block: 0 3px;
  }

  .home-page .brand-stage picture {
    width: min(74vw, 360px);
  }

  .home-page .brand-stage picture::before {
    width: 121%;
    height: 121%;
    top: 51%;
    opacity: .165;
    transform: translate(-50%, -50%) scale(1.14) rotate(-1.6deg);
  }

  .home-page .brand-stage picture::after {
    width: 84%;
    height: 20%;
    filter: blur(21px);
  }

  .home-page #development-heading {
    font-size: clamp(1.13rem, 5.25vw, 1.39rem);
  }

  .home-page .submessage {
    max-width: 410px;
    font-size: clamp(.90rem, 4vw, .97rem);
    line-height: 1.52;
  }

  .home-page footer {
    padding-top: 9px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 359px) {
  .home-page .brand-stage picture {
    width: 76%;
  }

  .home-page .status::before {
    width: 62px;
  }

  .home-page .footer-org {
    white-space: normal;
  }
}

@media (max-height: 560px) {
  .home-page main {
    gap: 12px;
    padding-top: max(9px, env(safe-area-inset-top));
    padding-bottom: 9px;
  }

  .home-page .brand-stage picture {
    width: min(45vw, 395px);
  }

  .home-page .brand-stage picture::before {
    width: 108%;
    height: 108%;
    opacity: .145;
    transform: translate(-50%, -50%) scale(1.10) rotate(-1.4deg);
  }

  .home-page .status::before {
    margin-bottom: 8px;
  }

  .home-page #development-heading {
    font-size: clamp(1.02rem, 4.1vh, 1.30rem);
  }

  .home-page .submessage {
    margin-top: 5px;
    font-size: .88rem;
    line-height: 1.42;
  }

  .home-page footer {
    padding-top: 7px;
    padding-bottom: calc(7px + env(safe-area-inset-bottom));
  }
}

@media (max-height: 420px) {
  .home-page::before {
    animation: none;
  }

  .home-page .brand-stage picture::after {
    opacity: .55;
  }

  .home-page .brand-stage picture::before {
    opacity: .12;
  }
}

@media (min-width: 1600px) and (min-height: 900px) {
  .home-page .brand-stage picture {
    width: min(35vw, 680px);
  }

  .home-page main {
    gap: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page::before,
  .home-page .brand-stage picture,
  .home-page .brand-stage picture .logo,
  .home-page .status::before,
  .home-page #development-heading,
  .home-page .submessage,
  .home-page footer {
    animation: none !important;
    transition: none !important;
  }
}

@media (prefers-contrast: more), (forced-colors: active) {
  .home-page .brand-stage picture::before,
  .home-page .brand-stage picture::after {
    display: none;
  }
}

/* ============================================================
   FINAL FOOTER TYPOGRAPHY / LINK COLOUR OVERRIDE — 2026-09-11
   Requested final treatment:
   - every footer line uses the same text size
   - only organisation name + Get in Touch are bold
   - ACNC + Privacy links remain white
   - email remains the sole teal accent
   ============================================================ */
.footer-final {
  --footer-final-size: clamp(.78rem, 1.35vw, .84rem);
}

.footer-final p,
.home-page .footer-final p,
.footer-final .footer-org,
.home-page .footer-final .footer-org,
.footer-final .footer-charity,
.home-page .footer-final .footer-charity,
.footer-final .footer-registration,
.home-page .footer-final .footer-registration,
.footer-final .footer-get-in-touch,
.home-page .footer-final .footer-get-in-touch,
.footer-final .footer-contact-email,
.home-page .footer-final .footer-contact-email,
.footer-final .footer-privacy,
.home-page .footer-final .footer-privacy,
.footer-final .copyright,
.home-page .footer-final .copyright {
  color: #ffffff !important;
  font-size: var(--footer-final-size) !important;
  font-weight: 400;
  line-height: 1.35;
}

.footer-final .footer-org strong,
.footer-final .footer-get-in-touch strong {
  font-weight: 700;
}

.footer-final .footer-registration a:link,
.footer-final .footer-registration a:visited,
.footer-final .footer-registration a:hover,
.footer-final .footer-registration a:focus-visible,
.footer-final .footer-privacy a:link,
.footer-final .footer-privacy a:visited,
.footer-final .footer-privacy a:hover,
.footer-final .footer-privacy a:focus-visible,
.home-page .footer-final .footer-registration a:link,
.home-page .footer-final .footer-registration a:visited,
.home-page .footer-final .footer-registration a:hover,
.home-page .footer-final .footer-registration a:focus-visible,
.home-page .footer-final .footer-privacy a:link,
.home-page .footer-final .footer-privacy a:visited,
.home-page .footer-final .footer-privacy a:hover,
.home-page .footer-final .footer-privacy a:focus-visible {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  font-weight: 400;
  text-decoration-color: rgba(255,255,255,.72) !important;
}

.footer-final .footer-contact-email a:link,
.footer-final .footer-contact-email a:visited,
.footer-final .footer-contact-email a:hover,
.footer-final .footer-contact-email a:focus-visible,
.home-page .footer-final .footer-contact-email a:link,
.home-page .footer-final .footer-contact-email a:visited,
.home-page .footer-final .footer-contact-email a:hover,
.home-page .footer-final .footer-contact-email a:focus-visible {
  color: #82edf0 !important;
  -webkit-text-fill-color: #82edf0;
  font-weight: 400;
  text-decoration-color: rgba(130,237,240,.68) !important;
}

@media (max-width: 560px) {
  .footer-final {
    --footer-final-size: .75rem;
  }
}
/* ========================================================================
   LSEA FOOTER TYPOGRAPHY + LINK COLOUR — FINAL V9
   Requested final treatment:
   - every visible footer line uses exactly the same font size
   - only Life Skills Education Australia Inc. and Get in Touch are bold
   - ACNC Registered and Privacy Policy remain white in every link state
   - email remains the only teal/accent-coloured footer link
   - copyright is normal-weight white
   ======================================================================== */

.footer-final {
  --footer-final-size: clamp(.78rem, 1.35vw, .84rem);
  font-size: var(--footer-final-size);
}

.footer-final p,
.footer-final a,
.footer-final strong,
.home-page .footer-final p,
.home-page .footer-final a,
.home-page .footer-final strong {
  font-size: inherit !important;
  line-height: 1.35;
}

.footer-final p,
.home-page .footer-final p {
  color: #ffffff !important;
  font-weight: 400 !important;
}

.footer-final strong,
.home-page .footer-final strong {
  font-weight: 400 !important;
}

.footer-final .footer-org strong,
.footer-final .footer-get-in-touch strong,
.home-page .footer-final .footer-org strong,
.home-page .footer-final .footer-get-in-touch strong {
  color: #ffffff !important;
  font-weight: 700 !important;
}

.footer-final .footer-registration a,
.footer-final .footer-registration a:link,
.footer-final .footer-registration a:visited,
.footer-final .footer-registration a:hover,
.footer-final .footer-registration a:active,
.footer-final .footer-registration a:focus-visible,
.footer-final .footer-privacy a,
.footer-final .footer-privacy a:link,
.footer-final .footer-privacy a:visited,
.footer-final .footer-privacy a:hover,
.footer-final .footer-privacy a:active,
.footer-final .footer-privacy a:focus-visible,
.home-page .footer-final .footer-registration a,
.home-page .footer-final .footer-registration a:link,
.home-page .footer-final .footer-registration a:visited,
.home-page .footer-final .footer-registration a:hover,
.home-page .footer-final .footer-registration a:active,
.home-page .footer-final .footer-registration a:focus-visible,
.home-page .footer-final .footer-privacy a,
.home-page .footer-final .footer-privacy a:link,
.home-page .footer-final .footer-privacy a:visited,
.home-page .footer-final .footer-privacy a:hover,
.home-page .footer-final .footer-privacy a:active,
.home-page .footer-final .footer-privacy a:focus-visible {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-weight: 400 !important;
  text-decoration-color: rgba(255,255,255,.72) !important;
}

.footer-final .footer-contact-email a,
.footer-final .footer-contact-email a:link,
.footer-final .footer-contact-email a:visited,
.footer-final .footer-contact-email a:hover,
.footer-final .footer-contact-email a:active,
.footer-final .footer-contact-email a:focus-visible,
.home-page .footer-final .footer-contact-email a,
.home-page .footer-final .footer-contact-email a:link,
.home-page .footer-final .footer-contact-email a:visited,
.home-page .footer-final .footer-contact-email a:hover,
.home-page .footer-final .footer-contact-email a:active,
.home-page .footer-final .footer-contact-email a:focus-visible {
  color: #82edf0 !important;
  -webkit-text-fill-color: #82edf0 !important;
  font-weight: 400 !important;
  text-decoration-color: rgba(130,237,240,.68) !important;
}

.footer-final .copyright,
.home-page .footer-final .copyright {
  color: #ffffff !important;
  font-size: inherit !important;
  font-weight: 400 !important;
}

@media (max-width: 560px) {
  .footer-final {
    --footer-final-size: .75rem;
  }
}

/* ========================================================================
   LSEA SPLASH BLURB + FOOTER TEXT-SIZE FINALISATION — V10
   Narrow update only: new brand blurb below logo, and Privacy Policy locked
   to the same font size as every other footer line.
   ======================================================================== */

.home-page .brand-stage {
  grid-template-rows: auto auto;
  align-content: center;
  row-gap: clamp(11px, 1.8vh, 17px);
}

.home-page .brand-blurb {
  width: min(100%, 760px);
  margin: 0 auto;
  padding-inline: clamp(4px, 1.4vw, 12px);
  color: #53657a;
  font-size: clamp(.88rem, 1.08vw, .98rem);
  line-height: 1.58;
  font-weight: 400;
  letter-spacing: -.003em;
  text-align: center;
  text-wrap: pretty;
  overflow-wrap: anywhere;
  animation: lsea-copy-resolve 610ms 430ms cubic-bezier(.18,.72,.2,1) both;
}

/* Exact footer size lock: every visible line, including Privacy Policy. */
.footer-final,
.home-page .footer-final {
  font-size: var(--footer-final-size) !important;
}

.footer-final p,
.footer-final p > *,
.footer-final a,
.footer-final strong,
.home-page .footer-final p,
.home-page .footer-final p > *,
.home-page .footer-final a,
.home-page .footer-final strong,
.footer-final .footer-privacy,
.footer-final .footer-privacy a,
.home-page .footer-final .footer-privacy,
.home-page .footer-final .footer-privacy a {
  font-size: var(--footer-final-size) !important;
}

@media (max-width: 560px) {
  .home-page .brand-stage {
    row-gap: 9px;
  }

  .home-page .brand-blurb {
    max-width: 430px;
    padding-inline: 3px;
    font-size: clamp(.82rem, 3.6vw, .90rem);
    line-height: 1.48;
  }
}

@media (max-height: 560px) {
  .home-page main {
    gap: 9px;
  }

  .home-page .brand-stage {
    row-gap: 5px;
    padding-block: 0;
  }

  .home-page .brand-stage picture {
    width: min(32vw, 285px);
  }

  .home-page .brand-blurb {
    width: min(100%, 720px);
    max-width: 720px;
    font-size: .78rem;
    line-height: 1.34;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .brand-blurb {
    animation: none !important;
    transition: none !important;
  }
}

/* ========================================================================
   LSEA LOGO STATIC + BLURB SPACING — FINAL V11
   Narrow update only:
   - remove all user-driven interaction from the logo
   - keep the existing automatic logo entrance animation
   - move the descriptive blurb below the Australia-map visual footprint
   - retain every other approved treatment
   ======================================================================== */

/* The logo and its picture wrapper are purely visual: no hover, drag,
   spin, parallax or direct pointer interaction. */
.home-page .brand-stage picture,
.home-page .brand-stage picture .logo {
  pointer-events: none !important;
  cursor: default !important;
}

.home-page .brand-stage picture {
  transform-style: flat !important;
  will-change: auto !important;
  transition: none !important;
}

.home-page .brand-stage picture:hover,
.home-page .brand-stage picture:hover:not(.is-interacting),
.home-page .brand-stage picture.is-interacting {
  filter: none !important;
  transform: none !important;
}

/* Keep the descriptive copy clearly below the oversized Australia map.
   The map deliberately extends beyond the logo box, so the visual gap is
   larger on desktop and proportionately reduced on mobile. */
.home-page .brand-stage {
  row-gap: clamp(58px, 5.8vw, 82px) !important;
}

.home-page .brand-blurb {
  position: relative;
  z-index: 2;
  width: min(100%, 735px);
  margin: 0 auto;
  padding-inline: clamp(8px, 1.6vw, 16px);
  color: #52677d;
  font-size: clamp(.91rem, 1.02vw, .99rem);
  line-height: 1.62;
  font-weight: 400;
  letter-spacing: 0;
  text-align: center;
  text-wrap: pretty;
  overflow-wrap: normal;
  max-width: 735px;
}

/* Mobile: retain a clear visual separation without making the hero too tall. */
@media (max-width: 560px) {
  .home-page .brand-stage {
    row-gap: clamp(34px, 10vw, 43px) !important;
  }

  .home-page .brand-blurb {
    max-width: 420px;
    padding-inline: 8px;
    font-size: clamp(.84rem, 3.65vw, .91rem);
    line-height: 1.52;
  }
}

/* Short landscape screens use the smaller map treatment already defined
   elsewhere, so a smaller gap preserves usability. */
@media (max-height: 560px) {
  .home-page .brand-stage {
    row-gap: 22px !important;
  }

  .home-page .brand-blurb {
    max-width: 700px;
    font-size: .78rem;
    line-height: 1.38;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .brand-stage picture,
  .home-page .brand-stage picture .logo,
  .home-page .brand-blurb {
    transition: none !important;
  }
}

/* ========================================================================
   LSEA MOBILE TOP CLEARANCE + PREMIUM LOGO SHIMMER — FINAL V12
   Final narrow refinement:
   - preserves the approved static/non-interactive logo
   - prevents the Australia shadow being clipped at the top on mobile load
   - drops the mobile composition down slightly for reliable visual clearance
   - adds a logo-only premium light sweep on load and every 5 seconds
   ======================================================================== */

/* Wrapper matches the approved logo footprint while leaving the existing
   Australia shadow and bloom attached to <picture>. */
.home-page .logo-shell {
  position: relative;
  z-index: 1;
  width: min(69vw, 660px);
  max-width: 100%;
  margin-inline: auto;
  overflow: visible;
  isolation: isolate;
  pointer-events: none;
}

.home-page .logo-shell picture {
  width: 100% !important;
  max-width: 100%;
  overflow: visible !important;
}

/* Explicit overflow safety for the decorative Australia silhouette. */
.home-page .brand-stage,
.home-page .brand-stage picture {
  overflow: visible !important;
}

/* Premium shimmer is enabled only where alpha masking is supported.
   This prevents a rectangular fallback from ever appearing. */
.home-page .logo-shell::after {
  content: none;
}

@supports ((-webkit-mask-image: linear-gradient(#000, #000)) or (mask-image: linear-gradient(#000, #000))) {
  .home-page .logo-shell::after {
    content: "";
    position: absolute;
    z-index: 4;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background:
      linear-gradient(
        112deg,
        transparent 0%,
        transparent 38%,
        rgba(255,255,255,.08) 43%,
        rgba(255,255,255,.58) 49%,
        rgba(214,247,255,.82) 51%,
        rgba(255,255,255,.50) 54%,
        rgba(255,255,255,.07) 60%,
        transparent 65%,
        transparent 100%
      );
    -webkit-mask-image: url("../images/lsea-logo-final-v2-20260910.png");
    mask-image: url("../images/lsea-logo-final-v2-20260910.png");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    mix-blend-mode: screen;
    transform: translate3d(-155%, 0, 0);
    will-change: transform, opacity;
    animation: lsea-logo-shimmer 5s 620ms cubic-bezier(.22,.72,.24,1) infinite;
  }
}

@keyframes lsea-logo-shimmer {
  0% {
    opacity: 0;
    transform: translate3d(-155%, 0, 0);
  }
  3% {
    opacity: 0;
    transform: translate3d(-155%, 0, 0);
  }
  6% {
    opacity: .28;
  }
  12% {
    opacity: .76;
  }
  18% {
    opacity: .18;
    transform: translate3d(155%, 0, 0);
  }
  21% {
    opacity: 0;
    transform: translate3d(155%, 0, 0);
  }
  100% {
    opacity: 0;
    transform: translate3d(155%, 0, 0);
  }
}

/* First-interaction entrance skipping must not permanently disable the
   recurring logo shimmer. */
@supports ((-webkit-mask-image: linear-gradient(#000, #000)) or (mask-image: linear-gradient(#000, #000))) {
  .home-page.motion-skip .logo-shell::after {
    animation: lsea-logo-shimmer 5s 0ms cubic-bezier(.22,.72,.24,1) infinite !important;
  }
}

/* Mobile portrait: provide enough physical top clearance for the oversized
   Australia silhouette, including during the entrance animation. */
@media (max-width: 560px) {
  .home-page main {
    padding-top: max(46px, env(safe-area-inset-top)) !important;
  }

  .home-page .brand-stage {
    overflow: visible !important;
  }

  .home-page .logo-shell {
    width: min(74vw, 360px);
  }

  .home-page .brand-stage picture {
    width: 100% !important;
  }

  /* Nudge the Australia mark very slightly downward inside its logo field
     to increase top clearance without changing its approved scale. */
  .home-page .brand-stage picture::before {
    top: 53% !important;
  }
}

@media (max-width: 359px) {
  .home-page main {
    padding-top: max(48px, env(safe-area-inset-top)) !important;
  }

  .home-page .logo-shell {
    width: 76%;
  }
}

/* Short mobile landscape requires a smaller top offset to preserve usable
   vertical space while still preventing clipping. */
@media (max-width: 900px) and (max-height: 560px) {
  .home-page main {
    padding-top: max(24px, env(safe-area-inset-top)) !important;
  }

  .home-page .logo-shell {
    width: min(45vw, 395px);
  }

  .home-page .brand-stage picture::before {
    top: 52% !important;
  }
}

/* Keep approved large-display sizing. */
@media (min-width: 1600px) and (min-height: 900px) {
  .home-page .logo-shell {
    width: min(35vw, 680px);
  }
}

/* Accessibility takes precedence over decorative shimmer. */
@media (prefers-reduced-motion: reduce) {
  .home-page .logo-shell::after,
  .home-page.motion-skip .logo-shell::after {
    content: none !important;
    animation: none !important;
  }
}

@media (prefers-contrast: more), (forced-colors: active) {
  .home-page .logo-shell::after {
    content: none !important;
    display: none !important;
  }
}
