    .georgia-ambient {
      --ambient-back-x: 0px;
      --ambient-back-y: 0px;
      position: fixed;
      inset: 0;
      z-index: 0;
      overflow: hidden;
      color: rgba(4,6,10,.72);
      background:
        radial-gradient(circle at 76% 15%, rgba(255,105,166,.12), transparent 25rem),
        linear-gradient(180deg, rgba(20,24,39,.86), rgba(8,11,20,.74) 48%, rgba(5,9,14,.88));
      pointer-events: none;
      transition: background 1.4s ease, color 1.4s ease;
    }

    .georgia-ambient[data-period="day"][data-weather="clear"] {
      background:
        radial-gradient(circle at var(--ambient-sun-x, 74%) var(--ambient-sun-y, 18%), rgba(255,218,148,.27), transparent 18rem),
        radial-gradient(circle at 76% 18%, rgba(255,105,166,.13), transparent 30rem),
        linear-gradient(180deg, rgba(62,100,134,.82), rgba(33,64,84,.72) 48%, rgba(7,18,26,.9));
    }

    .georgia-ambient[data-period="day"][data-weather="partly"] {
      background:
        radial-gradient(circle at 76% 15%, rgba(255,118,172,.12), transparent 28rem),
        linear-gradient(180deg, rgba(64,82,107,.86), rgba(28,47,63,.8) 50%, rgba(7,16,24,.92));
    }

    .georgia-ambient[data-period="day"]:is([data-weather="rain"],[data-weather="drizzle"],[data-weather="storm"],[data-weather="fog"],[data-weather="snow"]) {
      background: linear-gradient(180deg, rgba(37,49,66,.94), rgba(19,30,43,.9) 48%, rgba(5,12,20,.97));
    }

    .georgia-ambient[data-period="night"] {
      background:
        radial-gradient(circle at var(--ambient-sun-x, 74%) var(--ambient-sun-y, 18%), rgba(164,182,255,.13), transparent 15rem),
        radial-gradient(circle at 76% 15%, rgba(255,105,166,.08), transparent 28rem),
        linear-gradient(180deg, rgba(10,15,36,.97), rgba(5,10,25,.96) 50%, rgba(3,8,15,.99));
    }

    .georgia-landmark { display: none; }
    .georgia-ambient[data-location="tallinn"] .georgia-landmark {
      display: block;
      position: absolute;
      left: -1%;
      bottom: 8vh;
      width: 102%;
      height: 43vh;
      transform: translate3d(var(--ambient-back-x), var(--ambient-back-y), 0);
      transition: transform .35s cubic-bezier(.2,.8,.2,1);
    }
    .georgia-ambient[data-location="tallinn"] .georgia-ridge { display: none; }
    .georgia-ambient[data-period="day"] .georgia-landmark image { filter: brightness(1.22); }
    .tallinn-window-glow { opacity: 0; transition: opacity 1.2s ease; }
    .georgia-ambient[data-period="night"] .tallinn-window-glow { opacity: 1; }
    .tallinn-chimney-steam {
      fill: none;
      stroke: url(#tallinn-steam-shade);
      stroke-width: 25;
      stroke-linecap: round;
      filter: blur(5px);
      opacity: .52;
    }
    #georgia-ambient[data-location="tallinn"] .georgia-birds {
      display: flex;
      top: 12%;
      left: 8%;
      opacity: .72;
      color: #121c2e;
    }
    #georgia-ambient[data-location="tallinn"][data-period="night"] .georgia-birds { color: #8a9bb5; }
    @media (prefers-reduced-motion: no-preference) {
      #georgia-ambient[data-location="tallinn"] .georgia-birds { animation: tallinn-birds 32s ease-in-out infinite alternate; }
      .tallinn-chimney-steam { animation: tallinn-steam 7s ease-in-out infinite; }
      .tallinn-chimney-steam:nth-child(2) { animation-delay: -2s; }
      .tallinn-chimney-steam:nth-child(3) { animation-delay: -4s; }
      @keyframes tallinn-birds {
        0% { transform: translate3d(0, 0, 0); }
        50% { transform: translate3d(calc(42vw - 41px), -3vh, 0); }
        100% { transform: translate3d(calc(84vw - 82px), 3vh, 0); }
      }
      @keyframes tallinn-steam {
        0%, 100% { opacity: .44; transform: translateY(4px); }
        50% { opacity: .79; transform: translateY(-5px); }
      }
    }
    @media (max-width: 720px) {
      .georgia-ambient[data-location="tallinn"] { opacity: .68; }
      .georgia-ambient[data-location="tallinn"] .georgia-landmark {
        left: 50%;
        bottom: 0;
        width: max(100%, 108vh);
        transform: translateX(-50%);
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .georgia-landmark, .tallinn-window-glow { transition: none; }
    }

    .georgia-ambient-stars,
    .georgia-ambient-horizon,
    .georgia-ambient-cloud,
    .georgia-ridge,
    .georgia-sea,
    .georgia-birds,
    .georgia-animal-track {
      position: absolute;
      pointer-events: none;
    }

    .georgia-ambient-stars {
      inset: -4%;
      opacity: 0;
      background-image:
        radial-gradient(circle at 8% 15%, rgba(255,255,255,.92) 0 1px, transparent 1.8px),
        radial-gradient(circle at 19% 34%, rgba(211,222,255,.82) 0 1.2px, transparent 2px),
        radial-gradient(circle at 31% 10%, rgba(255,255,255,.75) 0 1px, transparent 1.7px),
        radial-gradient(circle at 46% 29%, rgba(225,231,255,.88) 0 1.2px, transparent 2px),
        radial-gradient(circle at 58% 9%, rgba(255,255,255,.8) 0 1px, transparent 1.8px),
        radial-gradient(circle at 72% 31%, rgba(207,220,255,.86) 0 1.2px, transparent 2px),
        radial-gradient(circle at 87% 13%, rgba(255,255,255,.88) 0 1px, transparent 1.8px),
        radial-gradient(circle at 94% 38%, rgba(233,236,255,.72) 0 1px, transparent 1.7px);
      background-size: 340px 280px, 420px 360px, 520px 390px, 610px 450px, 470px 340px, 560px 420px, 390px 310px, 650px 480px;
      filter: brightness(1.22) drop-shadow(0 0 6px rgba(180,204,255,.72));
      transform: translate3d(var(--ambient-back-x), var(--ambient-back-y), 0);
      transition: opacity 1.4s ease, transform .35s cubic-bezier(.2,.8,.2,1);
      animation:
        ambient-stars-twinkle 6s ease-in-out infinite alternate,
        ambient-stars-drift 86164s linear infinite;
    }

    .georgia-ambient[data-period="night"][data-weather="clear"] .georgia-ambient-stars { opacity: .94; }
    .georgia-ambient[data-period="night"][data-weather="partly"] .georgia-ambient-stars { opacity: .48; }

    .georgia-ambient-cloud {
      width: clamp(360px, 35vw, 700px);
      height: clamp(105px, 10vw, 190px);
      border-radius: 999px;
      opacity: 0;
      background: linear-gradient(180deg, rgba(220,229,241,.17), rgba(128,145,171,.09));
      filter: blur(22px);
      transition: opacity 1.2s ease;
      animation: ambient-cloud-drift 58s linear infinite;
    }

    .georgia-ambient-cloud::before,
    .georgia-ambient-cloud::after {
      content: "";
      position: absolute;
      bottom: 10%;
      border-radius: 50%;
      background: inherit;
    }

    .georgia-ambient-cloud::before { left: 14%; width: 46%; height: 140%; }
    .georgia-ambient-cloud::after { right: 11%; width: 55%; height: 165%; }
    .georgia-ambient-cloud--one { top: 8%; left: -42%; }
    .georgia-ambient-cloud--two { top: 32%; left: -58%; scale: .72; animation-delay: -31s; animation-duration: 72s; }

    .georgia-ambient[data-weather="partly"] .georgia-ambient-cloud { opacity: .58; }
    .georgia-ambient[data-weather="fog"] .georgia-ambient-cloud { opacity: .74; }
    .georgia-ambient[data-weather="drizzle"] .georgia-ambient-cloud,
    .georgia-ambient[data-weather="rain"] .georgia-ambient-cloud,
    .georgia-ambient[data-weather="storm"] .georgia-ambient-cloud,
    .georgia-ambient[data-weather="snow"] .georgia-ambient-cloud { opacity: .82; }

    .georgia-ambient-horizon {
      inset: 0;
      opacity: 0;
      transition: opacity 1.5s ease, background 1.5s ease;
    }

    .georgia-ambient[data-sun-phase="sunrise"] .georgia-ambient-horizon {
      opacity: 1;
      background: radial-gradient(ellipse at 18% 68%, rgba(255,218,140,.42), rgba(255,100,150,.14) 34%, transparent 65%);
    }

    .georgia-ambient[data-sun-phase="sunset"] .georgia-ambient-horizon {
      opacity: 1;
      background: radial-gradient(ellipse at 82% 66%, rgba(255,174,90,.46), rgba(255,65,145,.16) 35%, transparent 66%);
    }

    .georgia-ridge {
      right: -3%;
      bottom: 11vh;
      left: -3%;
      width: 106%;
      transform: translate3d(var(--ambient-back-x), var(--ambient-back-y), 0);
      transform-origin: bottom;
      transition: fill 1.3s ease, opacity 1.3s ease, transform .35s cubic-bezier(.2,.8,.2,1);
    }

    .georgia-ridge--far { height: 37vh; fill: rgba(48,55,72,.55); opacity: .72; }
    .georgia-ridge--near { bottom: 7vh; height: 29vh; fill: rgba(11,18,27,.8); opacity: .92; }
    .georgia-ambient[data-period="day"] .georgia-ridge--far { fill: rgba(77,92,105,.52); }
    .georgia-ambient[data-period="day"] .georgia-ridge--near { fill: rgba(22,36,39,.72); }

    .georgia-sea {
      right: 0;
      bottom: 0;
      left: 0;
      height: 14vh;
      opacity: .72;
      background:
        repeating-linear-gradient(175deg, transparent 0 11px, rgba(185,214,226,.08) 12px, transparent 14px 29px),
        linear-gradient(180deg, rgba(31,69,83,.34), rgba(3,11,19,.86));
      animation: ambient-sea 12s ease-in-out infinite alternate;
    }

    .georgia-birds {
      top: 18%;
      left: -12%;
      display: flex;
      gap: 18px;
      opacity: 0;
      color: rgba(9,12,18,.66);
      animation: ambient-birds 54s linear infinite;
    }

    .georgia-birds i {
      position: relative;
      width: 18px;
      height: 8px;
      border-top: 2px solid currentColor;
      border-radius: 50%;
      transform: rotate(8deg);
    }

    .georgia-birds i:nth-child(2) { translate: 0 13px; scale: .72; }
    .georgia-birds i:nth-child(3) { translate: 0 -8px; scale: .52; }
    .georgia-ambient[data-period="day"]:is([data-weather="clear"],[data-weather="partly"]) .georgia-birds { opacity: .56; }

    .georgia-animal-track {
      right: 0;
      bottom: 17vh;
      left: 0;
      height: 44px;
      opacity: 0;
      animation: ambient-animal-crossing 46s linear infinite;
    }

    .georgia-animal {
      width: 84px;
      height: 38px;
      overflow: visible;
      color: rgba(3,6,8,.78);
      fill: currentColor;
      stroke: currentColor;
      stroke-width: 3;
      stroke-linecap: round;
      animation: ambient-animal-step .62s ease-in-out infinite alternate;
    }

    .georgia-ambient[data-period="night"]:is([data-weather="clear"],[data-weather="partly"]) .georgia-animal-track,
    .georgia-ambient[data-sun-phase="sunrise"]:is([data-weather="clear"],[data-weather="partly"]) .georgia-animal-track,
    .georgia-ambient[data-sun-phase="sunset"]:is([data-weather="clear"],[data-weather="partly"]) .georgia-animal-track { opacity: .35; }

    @keyframes ambient-cloud-drift {
      from { translate: -12% 0; }
      to { translate: 270% 16px; }
    }
    @keyframes ambient-sea {
      from { background-position: 0 0, 0 0; }
      to { background-position: 55px 10px, 0 0; }
    }
    @keyframes ambient-birds {
      0%, 6% { transform: translate3d(0, 0, 0); }
      94%, 100% { transform: translate3d(124vw, 9vh, 0); }
    }
    @keyframes ambient-animal-crossing {
      0%, 38% { transform: translate3d(-110px, 0, 0); }
      96%, 100% { transform: translate3d(calc(100vw + 110px), 0, 0); }
    }
    @keyframes ambient-animal-step {
      from { translate: 0 0; rotate: -1deg; }
      to { translate: 0 -2px; rotate: 1deg; }
    }
    @keyframes hero-rain {
      to { background-position: -42px 82px; }
    }

/* Keep the same weather scene behind the age screen. */
body.age-gate-open #georgia-ambient { z-index: 990; }
body.blog-page.age-gate-open #georgia-ambient { z-index: 90; }
body.age-gate-open #age-gate { background: transparent !important; backdrop-filter: none; }
body.age-gate-open main { opacity: 0; visibility: hidden; }
body:not(.blog-page).age-gate-open .age-weather-ambient { display: none; }
.blog-page #age-gate .age-gate-card {
  position: relative;
  z-index: 1;
  padding: clamp(18px, 3.5vw, 30px);
  border-radius: 24px;
  background: rgba(13, 16, 26, .82);
}
@media (prefers-reduced-motion: reduce) {
  .georgia-ambient[data-location="tallinn"] * { animation: none !important; }
}

/* Tallinn illustration and weather particles are shared by all public layers. */
#georgia-ambient[data-location="tallinn"] { opacity: 1; }
#georgia-ambient[data-location="tallinn"] .tallinn-skyline { bottom: 0; height: auto; aspect-ratio: 2172 / 724; overflow: visible; }
.tallinn-window-glow { filter: drop-shadow(0 0 4px #ffc77180); }
.tallinn-chimney-steam { stroke-width: 13; opacity: .42; }
#georgia-ambient[data-location="tallinn"] .georgia-ambient-cloud { animation-duration: var(--city-cloud-duration, 48s); }
#georgia-ambient[data-wind="gale"] .tallinn-chimney-steam { stroke-width: 9; animation-duration: 3.5s; }
.site-weather-canvas, .site-weather-flash { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.site-weather-canvas { z-index: 5; }
.site-weather-flash { z-index: 6; opacity: 0; background: radial-gradient(ellipse at 75% 10%, #dce9ff80, transparent 65%); }
@media (max-width: 720px) {
  #georgia-ambient[data-location="tallinn"] { opacity: .9; }
  #georgia-ambient[data-location="tallinn"] .tallinn-skyline { height: auto; aspect-ratio: 2172 / 724; bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .site-weather-canvas, .site-weather-flash { display: none; }
}

/* Preserve the full roofline and draw smoke above the illustrated roofs. */
#georgia-ambient[data-location="tallinn"] { --smoke-drift: 38px; --smoke-duration: 7s; }
#georgia-ambient[data-location="tallinn"][data-wind="breezy"] { --smoke-drift: 70px; --smoke-duration: 5s; }
#georgia-ambient[data-location="tallinn"][data-wind="gale"] { --smoke-drift: 105px; --smoke-duration: 3.5s; }
#georgia-ambient .tallinn-chimney-steam { stroke-width: 15; opacity: .58; filter: blur(3px); animation: none; }
.tallinn-smoke-puff { fill: #d0ddeb; filter: blur(5px); opacity: 0; transform-box: view-box; transform-origin: 0 0; }
@media (prefers-reduced-motion: no-preference) {
  .tallinn-smoke-puff { animation: tallinn-chimney-puff var(--smoke-duration) linear infinite; }
  .tallinn-smoke-puff:nth-child(3) { animation-delay: calc(var(--smoke-duration) / -3); }
  .tallinn-smoke-puff:nth-child(4) { animation-delay: calc(var(--smoke-duration) / -1.5); }
  @keyframes tallinn-chimney-puff {
    0% { opacity: 0; transform: translate(0, 0) scale(.6); }
    15% { opacity: .5; }
    55% { opacity: .33; }
    100% { opacity: 0; transform: translate(var(--smoke-drift), -155px) scale(1.9); }
  }
}

/* Snow depth is in metres; the shared weather script controls the winter layer. */
.tallinn-snow-cover { opacity: 0; transition: opacity 2s ease; pointer-events: none; }
.georgia-ambient[data-winter="true"] .tallinn-snow-cover { opacity: var(--snow-cover-opacity, .5); }
.tallinn-snow-caps { fill: none; stroke: #d5e6f5; stroke-width: var(--snow-cap-width, 5px); stroke-linecap: round; stroke-linejoin: round; filter: blur(.4px); }
.tallinn-icicles { fill: #c7e5f9; opacity: .65; }
.snow-drift-back { fill: #aecbdf; }
.snow-drift-front { fill: #e4f0fa; }
.tallinn-snow-drifts { transform: translateY(var(--snow-drift-offset, 0px)); transition: transform 3s ease; }
#georgia-ambient[data-winter="true"] .tallinn-skyline > image { filter: brightness(1.6) saturate(.45); }
.georgia-ambient[data-winter="true"][data-period="night"] .tallinn-snow-cover { filter: brightness(.65) saturate(.75); }
html body #georgia-ambient[data-winter="true"][data-period="day"] { background: radial-gradient(ellipse at 65% 15%, #9fb9d83b, transparent 60%), linear-gradient(#354c65, #213b51 55%, #112432); }
html body #georgia-ambient[data-winter="true"][data-period="night"] { background: radial-gradient(ellipse at 70% 12%, #aec8ed21, transparent 60%), linear-gradient(#0d182e, #102339 60%, #0b1927); }
.georgia-ambient[data-winter="true"] .georgia-sea { background: linear-gradient(180deg, #6b9ab92b, #a4cbe34a 45%, #29475f55); opacity: .7; }

/* Pikk Hermann: a longer fixed mast and a daylight-only flag. */
.tallinn-flag-pole { fill: none; stroke: #8494a8; stroke-width: 2.6; }
.tallinn-flag-hoist { opacity: 0; visibility: hidden; transform: translateY(42px); transition: opacity .5s ease, transform 1.4s ease, visibility 0s .5s; }
.georgia-ambient[data-flag-visible="true"] .tallinn-flag-hoist { opacity: 1; visibility: visible; transform: translateY(0); transition: opacity .5s ease, transform 1.4s ease, visibility 0s; }
.tallinn-flag-direction { transform: scaleX(calc(var(--flag-facing, 1) * var(--flag-breadth, 1))); transform-origin: 0 0; transition: transform 1s ease; }
.tallinn-flag-drape { transform: rotate(var(--flag-droop, 6deg)); transform-origin: 0 0; transition: transform 1s ease; }
.tallinn-flag-cloth { filter: drop-shadow(0 1px 1px #0005); }
@media (prefers-reduced-motion: reduce) {
  .tallinn-flag-hoist, .tallinn-flag-direction, .tallinn-flag-drape { transition: none; }
}
