/* H.A.M. Landscaping retired notice
   Everything is scoped under #ham-retired / #ham-rn-badge so Betheme's global
   h2 / p / a / button rules can't leak in. */

#ham-retired,
#ham-rn-badge {
  --ham-wine-deep: #2e0f22;
  --ham-wine: #4f1a36;
  --ham-plum: #7e3552;
  --ham-rose: #b8637a;
  --ham-apricot: #e59a6a;
  --ham-honey: #f2c46f;
  --ham-cream: #f6eedd;
  --ham-olive: #56602a;
  --ham-moss: #2f3716;
  --ham-serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --ham-sans: "Quattrocento Sans", "Helvetica Neue", Arial, sans-serif;
}

.ham-rn-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------- Banner ---------- */

#ham-retired {
  --ham-p: 0;
  position: relative;
  box-sizing: border-box;
  height: 320px;
  overflow: clip;
  isolation: isolate;
  color: var(--ham-cream);
  background:
    radial-gradient(120% 90% at 80% 62%, rgba(242, 196, 111, .55), rgba(229, 154, 106, 0) 48%),
    linear-gradient(100deg, var(--ham-wine-deep) 0%, var(--ham-wine) 30%, var(--ham-plum) 52%, var(--ham-rose) 70%, var(--ham-apricot) 86%, var(--ham-honey) 100%);
  font-family: var(--ham-sans);
  cursor: crosshair;
  -webkit-tap-highlight-color: transparent;
}
#ham-retired *, #ham-retired *::before, #ham-retired *::after { box-sizing: border-box; }

#ham-retired .ham-rn__night {
  position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(100deg, #12081a 0%, #1e0f2a 55%, #3a2140 100%);
  opacity: 0;
  pointer-events: none;
}

#ham-retired .ham-rn__scene { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
#ham-retired .ham-rn__layer {
  position: absolute; left: 0; bottom: 0;
  width: 100%; height: 100%;
  overflow: visible;
  display: block;
  translate: calc(var(--ham-mx, 0) * var(--ham-depth, 0) * 1px) 0;
  transition: translate .6s cubic-bezier(.2, .7, .2, 1);
}
#ham-retired .ham-rn__sun  { --ham-depth: -4; }
#ham-retired .ham-rn__far  { --ham-depth: -7; }
#ham-retired .ham-rn__mid  { --ham-depth: -13; }
#ham-retired .ham-rn__near { --ham-depth: -22; }

#ham-retired .ham-rn__fireflies {
  position: absolute; right: 0; bottom: 0;
  width: 70%; height: 62%;
  opacity: .4;
}
#ham-retired .ham-rn__fireflies i {
  position: absolute;
  left: var(--x); top: var(--y);
  width: 4px; height: 4px; border-radius: 50%;
  background: #fff4b8;
  box-shadow: 0 0 6px 2px rgba(255, 236, 140, .75), 0 0 16px 4px rgba(255, 220, 110, .35);
  opacity: 0;
  animation: ham-rn-blink var(--t, 4s) ease-in-out var(--d, 0s) infinite,
             ham-rn-hover calc(var(--t, 4s) * 2.3) ease-in-out var(--d, 0s) infinite alternate;
}

#ham-retired .ham-rn__branchwrap {
  position: absolute; top: 0; right: 0; z-index: 2;
  width: min(54vw, 780px);
  pointer-events: none;
  translate: calc(var(--ham-mx, 0) * -30px) calc(var(--ham-my, 0) * -8px);
  transition: translate .6s cubic-bezier(.2, .7, .2, 1);
}
#ham-retired .ham-rn__branch {
  display: block; width: 100%; height: auto; overflow: visible;
  transform-origin: 100% 0;
  animation: ham-rn-sway 9s ease-in-out 2.6s infinite alternate;
}
#ham-retired .ham-rn__wood path {
  stroke-dasharray: 1 1;
  stroke-dashoffset: 1;
  animation: ham-rn-draw 1.5s cubic-bezier(.45, .05, .25, 1) forwards;
}
/* Main stem draws first, twigs follow as it passes them. */
#ham-retired .ham-rn__wood path:nth-child(1) { animation-delay: .15s; animation-duration: .5s; animation-timing-function: ease-in; }
#ham-retired .ham-rn__wood path:nth-child(2) { animation-delay: .6s;  animation-duration: .55s; animation-timing-function: linear; }
#ham-retired .ham-rn__wood path:nth-child(3) { animation-delay: 1.1s; animation-duration: .55s; animation-timing-function: linear; }
#ham-retired .ham-rn__wood path:nth-child(4) { animation-delay: 1.6s; animation-duration: .5s; animation-timing-function: ease-out; }
#ham-retired .ham-rn__wood path:nth-child(5) { animation-delay: .5s;  animation-duration: .6s; }
#ham-retired .ham-rn__wood path:nth-child(6) { animation-delay: .95s; animation-duration: .6s; }
#ham-retired .ham-rn__wood path:nth-child(7) { animation-delay: 1.2s; animation-duration: .6s; }
#ham-retired .ham-rn__wood path:nth-child(8) { animation-delay: 1.6s; animation-duration: .6s; }
#ham-retired .ham-rn__wood path:nth-child(9) { animation-delay: .3s;  animation-duration: .5s; }

#ham-retired .ham-rn__leaf {
  transform-box: fill-box; transform-origin: 0 50%;
  animation: ham-rn-leaf .7s cubic-bezier(.2, .8, .3, 1.15) calc(1s + var(--i) * .16s) both;
}
#ham-retired .ham-rn__bloom {
  transform-box: fill-box; transform-origin: center;
  animation: ham-rn-unfurl .9s cubic-bezier(.2, .9, .25, 1.25) calc(1.05s + var(--i) * .13s) both;
  pointer-events: auto;
  cursor: pointer;
}
#ham-retired .ham-rn__bloom.is-open { animation: none; }
#ham-retired .ham-rn__bloom.is-open.is-shaken { animation: ham-rn-shake .7s ease-in-out; }

#ham-retired .ham-rn__plot { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
#ham-retired .ham-rn__planted {
  position: absolute;
  width: var(--s, 44px); height: var(--s, 44px);
  margin: calc(var(--s, 44px) / -2) 0 0 calc(var(--s, 44px) / -2);
  overflow: visible;
  animation: ham-rn-plant 1.1s cubic-bezier(.2, .9, .25, 1.3) both;
  filter: drop-shadow(0 2px 3px rgba(20, 5, 12, .35));
}
#ham-retired .ham-rn__planted.is-leaving { animation: ham-rn-wilt .9s ease-in forwards; }
#ham-retired .ham-rn__ripple {
  position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px;
  border: 1.5px solid rgba(246, 238, 221, .8); border-radius: 50%;
  animation: ham-rn-ripple .9s ease-out forwards;
}

/* ---------- Things that grow as you scroll ----------
   notice.js keeps --ham-p (0 -> 1: how far the banner has scrolled away) current
   in every browser. Each plant turns it into its own growth, staggered by --d. */

#ham-retired .ham-rn__tree,
#ham-retired .ham-rn__flower { pointer-events: auto; cursor: pointer; }
#ham-retired .ham-rn__tree {
  --gt: clamp(0, calc((var(--ham-p) - var(--d, 0)) / .45), 1);
  transform-origin: var(--ox) var(--oy);
  transform: scale(calc(var(--min, .6) + (1.06 - var(--min, .6)) * var(--gt)), calc(var(--min, .5) + (1.12 - var(--min, .5)) * var(--gt)));
  transition: transform .5s cubic-bezier(.34, 1.56, .64, 1);
}
#ham-retired .ham-rn__tree.is-shaken { animation: ham-rn-tree-shake .8s ease-in-out; }

#ham-retired .ham-rn__fl-sprout {
  transform-origin: 0 0;
  animation: ham-rn-sprout .9s cubic-bezier(.2, .9, .3, 1.25) calc(1.5s + var(--k, 0) * .03s) both;
}
#ham-retired .ham-rn__fl-grow {
  --gi: clamp(0, calc((var(--ham-p) - var(--d, 0)) / .36), 1);
  transform-origin: 0 0;
  transform: rotate(var(--bend, 0deg)) scale(calc(.86 + .14 * var(--gi)), calc(.38 + .62 * var(--gi)));
  transition: transform .45s cubic-bezier(.34, 1.56, .64, 1);
}
#ham-retired .ham-rn__fl-head {
  --b: clamp(0, calc((var(--gi) - .3) / .7), 1);
  transform-origin: 0 0;
  transform: scale(calc(.28 + .72 * var(--b)), calc(.5 + .5 * var(--b))) rotate(calc((1 - var(--b)) * -12deg));
  transition: transform .45s cubic-bezier(.34, 1.56, .64, 1);
}
#ham-retired .ham-rn__fl-stem { fill: none; stroke: #4f6b24; stroke-width: 1.8; stroke-linecap: round; }
#ham-retired .ham-rn__fl-leaf { fill: #5f7a2a; }
#ham-retired .ham-rn__flower.is-poked .ham-rn__fl-head { animation: ham-rn-poke .6s cubic-bezier(.3, 1.6, .5, 1); }

/* Flowers planted by clicking a hillside: always fully grown, they sprout on arrival. */
#ham-retired .ham-rn__sprouted {
  position: absolute; overflow: visible; pointer-events: none;
  --ham-p: 1; --d: -1;
  filter: drop-shadow(0 2px 2px rgba(20, 5, 12, .3));
}
#ham-retired .ham-rn__sprouted .ham-rn__fl-sprout { animation: ham-rn-sprout 1s cubic-bezier(.2, .9, .3, 1.3) both; }
#ham-retired .ham-rn__sprouted.is-leaving { animation: ham-rn-fade-out .8s ease-in forwards; }

@keyframes ham-rn-sprout     { from { transform: scale(.2, 0); } to { transform: scale(1, 1); } }
@keyframes ham-rn-poke       { 30% { scale: 1.45; } 60% { scale: .88; } 100% { scale: 1; } }
@keyframes ham-rn-tree-shake { 20% { rotate: -5deg; } 45% { rotate: 4deg; } 70% { rotate: -2deg; } 100% { rotate: 0deg; } }
@keyframes ham-rn-fade-out   { to { opacity: 0; transform: translateY(6px); } }

/* Copy */
#ham-retired .ham-rn__inner {
  position: relative; z-index: 4;
  max-width: 1220px; height: 100%;
  margin: 0 auto; padding: 44px 20px 0 32px;
  pointer-events: none;
}
#ham-retired .ham-rn__copy { max-width: 36rem; pointer-events: auto; cursor: auto; }
#ham-retired .ham-rn__title {
  margin: 0 0 14px; padding: 0;
  font-family: var(--ham-serif); font-style: italic; font-weight: 700;
  font-size: clamp(30px, 3.1vw, 44px); line-height: 1.08; letter-spacing: -.005em;
  color: var(--ham-cream);
  text-shadow: 0 1px 18px rgba(30, 6, 20, .45);
  text-wrap: balance;
}
#ham-retired .ham-rn__statement {
  margin: 0 0 22px; padding: 0;
  font-family: var(--ham-sans); font-size: 18px; line-height: 1.55; font-weight: 400;
  color: var(--ham-cream);
  max-width: 34em;
  text-wrap: pretty;
}
#ham-retired .ham-rn__actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
#ham-retired .ham-rn__note {
  margin: 0; padding: 0;
  max-width: 25em;
  font-family: var(--ham-sans); font-size: 14px; line-height: 1.45;
  color: rgba(246, 238, 221, .8);
}
#ham-retired .ham-rn__hint {
  position: absolute; left: 32px; bottom: 12px; margin: 0;
  font-family: var(--ham-serif); font-style: italic; font-size: 13px; line-height: 1.2;
  color: rgba(246, 238, 221, .72);
  pointer-events: none;
  animation: ham-rn-fade .8s ease 2.8s both;
}

/* Shared button (banner + badge card) */
#ham-retired .ham-rn__btn,
#ham-rn-badge .ham-rn__btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; margin: 0; padding: 10px 22px;
  border: 0; border-radius: 999px;
  background: var(--ham-honey);
  color: var(--ham-wine-deep);
  font-family: var(--ham-sans); font-size: 16px; font-weight: 700; line-height: 1; letter-spacing: .01em;
  text-decoration: none; white-space: nowrap;
  box-shadow: 0 6px 18px -6px rgba(242, 196, 111, .7);
  transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
  cursor: pointer;
}
#ham-retired .ham-rn__btn:hover,
#ham-rn-badge .ham-rn__btn:hover {
  background: #ffd98c; color: var(--ham-wine-deep);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px -8px rgba(255, 217, 140, .85);
}
#ham-retired .ham-rn__btn:focus-visible,
#ham-rn-badge .ham-rn__btn:focus-visible,
#ham-rn-badge button:focus-visible {
  outline: 3px solid var(--ham-cream);
  outline-offset: 3px;
}

/* ---------- Scroll-driven sunset ----------
   --ham-p (0 → 1) is how far the banner has scrolled off the top.
   Native scroll timelines drive it where supported; notice.js updates
   --ham-p elsewhere, and the paused animation is scrubbed with a negative delay. */

#ham-retired .ham-sd {
  animation-duration: 1s;
  animation-timing-function: linear;
  animation-fill-mode: both;
  animation-play-state: paused;
  animation-delay: calc(var(--ham-p) * -1s);
}
#ham-retired .ham-rn__night.ham-sd      { animation-name: ham-rn-dusk; }
#ham-retired .ham-rn__sun.ham-sd        { animation-name: ham-rn-sunset; }
#ham-retired .ham-rn__far.ham-sd        { animation-name: ham-rn-far; }
#ham-retired .ham-rn__mid.ham-sd        { animation-name: ham-rn-mid; }
#ham-retired .ham-rn__near.ham-sd       { animation-name: ham-rn-near; }
#ham-retired .ham-rn__fireflies.ham-sd  { animation-name: ham-rn-night-bugs; }
#ham-retired .ham-rn__branchwrap.ham-sd { animation-name: ham-rn-branch-lift; }
#ham-retired .ham-rn__inner.ham-sd      { animation-name: ham-rn-copy-drift; }

/* Betheme sets overflow-x:hidden on both html and body, which turns body into a
   non-scrolling scroll container and freezes any view() timeline. The banner is
   always first on the page, so a root scroll timeline over its own height is exact. */
@supports ((animation-timeline: scroll()) and (animation-range: 0% 100%)) {
  #ham-retired .ham-sd {
    animation-duration: auto;
    animation-delay: 0s;
    animation-play-state: running;
    animation-timeline: scroll(root block);
    animation-range: 0px 320px;
  }
}

@keyframes ham-rn-dusk        { to { opacity: .78; } }
@keyframes ham-rn-sunset      { to { transform: translateY(128px); } }
@keyframes ham-rn-far         { to { transform: translateY(96px); } }
@keyframes ham-rn-mid         { to { transform: translateY(64px); } }
@keyframes ham-rn-near        { to { transform: translateY(26px); } }
@keyframes ham-rn-night-bugs  { to { opacity: 1; transform: translateY(40px); } }
@keyframes ham-rn-branch-lift { to { transform: translateY(-70px) rotate(-2deg); } }
@keyframes ham-rn-copy-drift  { to { transform: translateY(70px); opacity: .35; } }

/* ---------- Time-based motion ---------- */

@keyframes ham-rn-draw   { to { stroke-dashoffset: 0; } }
@keyframes ham-rn-leaf   { from { transform: scale(0); } to { transform: scale(1); } }
@keyframes ham-rn-unfurl {
  from { transform: scale(0) rotate(-70deg); opacity: 0; }
  60%  { opacity: 1; }
  to   { transform: scale(1) rotate(0); opacity: 1; }
}
@keyframes ham-rn-shake {
  0%, 100% { transform: rotate(0); }
  25% { transform: rotate(-14deg) scale(1.06); }
  60% { transform: rotate(9deg); }
}
@keyframes ham-rn-sway   { from { transform: rotate(0); } to { transform: rotate(-1.4deg); } }
@keyframes ham-rn-fade   { from { opacity: 0; } to { opacity: 1; } }
@keyframes ham-rn-blink  { 0%, 100% { opacity: 0; } 40%, 55% { opacity: 1; } }
@keyframes ham-rn-hover  { from { transform: translate(0, 0); } to { transform: translate(var(--dx, 12px), var(--dy, -10px)); } }
@keyframes ham-rn-plant {
  from { transform: scale(0) rotate(-120deg); opacity: 0; }
  55%  { opacity: 1; }
  to   { transform: scale(1) rotate(var(--r, 0deg)); opacity: 1; }
}
@keyframes ham-rn-wilt   { to { transform: scale(.4) rotate(40deg) translateY(30px); opacity: 0; } }
@keyframes ham-rn-ripple { to { transform: scale(7); opacity: 0; } }

/* ---------- Page-wide petal canvas ---------- */

.ham-rn-petals {
  position: fixed; inset: 0;
  width: 100vw; height: 100vh;
  z-index: 9990;
  pointer-events: none;
}

/* ---------- Arbor: trellis + vines framing the page ----------
   notice.js draws it to the viewport's size and keeps these current:
   --ar-g (growth 0-1), --leaf-a/-b (season colors), --leaf-s (leaf size),
   --fall (autumn leaf drop), --bfall (bloom drop), --snow, --lights. */

.ham-rn-arbor {
  --ar-g: 0; --leaf-s: .72; --fall: 0; --bfall: 0; --snow: 0; --lights: 0;
  --leaf-a: #8fae3e; --leaf-b: #a7c24f;
  position: fixed; top: 0; left: 0;
  z-index: 9989;
  pointer-events: none;
  overflow: visible;
  will-change: transform;
}
.ham-rn-arbor-swing { z-index: 9988; }

/* Betheme's sticky header drops below the trellis's top band so the logo stays clear.
   translate (not top) leaves Betheme's own jQuery slide-in on `top` alone. */
#Top_bar.is-sticky { transition: translate .35s cubic-bezier(.2, .8, .3, 1); }
html.ham-arbor-on #Top_bar.is-sticky { translate: 0 var(--ham-arbor-clear, 32px); }
.ham-rn-arbor .ar-grow {
  stroke-dasharray: 1 1;
  stroke-dashoffset: calc(1 - clamp(0, (var(--ar-g) - var(--a0)) * var(--ak), 1));
}
.ham-rn-arbor .ar-wood { fill: none; stroke: #7a5638; stroke-linecap: round; stroke-linejoin: round; stroke-opacity: .92; }
.ham-rn-arbor .ar-vine { fill: none; stroke: #4f6b24; stroke-linecap: round; stroke-linejoin: round; }
.ham-rn-arbor .ar-leaf {
  fill: var(--leaf-a);
  transform: scale(calc(clamp(0, (var(--ar-g) - var(--at)) * 30, 1) * var(--leaf-s) * (1 - clamp(0, (var(--fall) - var(--drop)) * 10, 1))));
}
.ham-rn-arbor .ar-leaf.b { fill: var(--leaf-b); }
.ham-rn-arbor .ar-bloom {
  transform: scale(calc(clamp(0, (var(--ar-g) - var(--at)) * 22, 1) * (1 - clamp(0, (var(--bfall) - var(--drop) * .9) * 8, 1))));
}
.ham-rn-arbor .ar-snowg { opacity: calc(var(--snow) * clamp(0, (var(--ar-g) - .85) * 7, 1)); transition: opacity .5s ease; }
.ham-rn-arbor .ar-snow { fill: #fff; stroke: none; }
.ham-rn-arbor .ar-snow-line, .ham-rn-arbor .ar-snow-vine { fill: none; stroke: #fff; stroke-linecap: round; }
.ham-rn-arbor .ar-snow-line { stroke-dasharray: 26 5 40 9 18 6; }
.ham-rn-arbor .ar-snow-edge { stroke: rgba(126, 152, 190, .55); }
.ham-rn-arbor .ar-ice { fill: #eef4fb; stroke: rgba(126, 152, 190, .85); stroke-width: .7; }
.ham-rn-arbor .ar-snow-vine { stroke-dasharray: 9 16 5 22; stroke-opacity: .9; }
.ham-rn-arbor .ar-lights { opacity: var(--lights); transition: opacity .6s ease; }
@media (prefers-reduced-motion: reduce) {
  .ham-rn-arbor *, #Top_bar.is-sticky { transition: none !important; }
}

/* ---------- Corner badge (appears once the banner scrolls away) ---------- */

#ham-rn-badge {
  position: fixed; left: 18px; bottom: 18px; z-index: 9995;
  font-family: var(--ham-sans);
  translate: 0 140%;
  opacity: 0;
  visibility: hidden;
  transition: translate .55s cubic-bezier(.2, .9, .25, 1.15), opacity .3s ease, visibility 0s linear .55s;
}
#ham-rn-badge.is-shown {
  translate: 0 0; opacity: 1; visibility: visible;
  transition: translate .55s cubic-bezier(.2, .9, .25, 1.15), opacity .3s ease, visibility 0s;
}
#ham-rn-badge .ham-rn-badge__btn {
  --globe: 92px;
  position: relative;
  overflow: visible;
  display: inline-flex; align-items: center;
  margin: 0; padding: 6px 20px 6px calc(var(--globe) + 4px);
  min-height: 48px;
  border: 1px solid rgba(246, 238, 221, .22); border-radius: 999px;
  background: var(--ham-wine);
  color: var(--ham-cream);
  font-family: var(--ham-sans); font-size: 15px; font-weight: 700; line-height: 1; letter-spacing: .01em;
  text-transform: none;
  box-shadow: 0 10px 30px -10px rgba(46, 15, 34, .7), 0 2px 6px rgba(46, 15, 34, .25);
  cursor: pointer;
  transition: background-color .2s ease, transform .2s ease;
}
#ham-rn-badge .ham-rn-badge__btn:hover { background: #5f2242; transform: translateY(-2px); }

/* Garden window: a dogwood that grows over the whole page while the seasons turn. */
#ham-rn-badge .ham-rn-globe {
  --w0: 1; --w1: 0; --w2: 0; --w3: 0; --wd: 0; --grow: .3;
  position: absolute; left: -8px; bottom: -10px;
  width: var(--globe); height: var(--globe);
  overflow: visible;
  filter: drop-shadow(0 8px 14px rgba(46, 15, 34, .45));
  transition: transform .35s cubic-bezier(.3, 1.5, .5, 1);
}
#ham-rn-badge .ham-rn-badge__btn:hover .ham-rn-globe { transform: rotate(-4deg) scale(1.05); }
#ham-rn-badge .ham-rn-globe .g-w1 { opacity: var(--w1); }
#ham-rn-badge .ham-rn-globe .g-w2 { opacity: var(--w2); }
#ham-rn-badge .ham-rn-globe .g-w3 { opacity: var(--w3); }
#ham-rn-badge .ham-rn-globe .g-wd { opacity: var(--wd); }
#ham-rn-badge .ham-rn-globe .g-w1, #ham-rn-badge .ham-rn-globe .g-w2,
#ham-rn-badge .ham-rn-globe .g-w3, #ham-rn-badge .ham-rn-globe .g-wd { transition: opacity .5s ease; }
#ham-rn-badge .ham-rn-globe .g-sun { fill: #fff2c2; opacity: calc(1 - var(--w3) * .55); }
#ham-rn-badge .ham-rn-globe .g-tree {
  transform-origin: 50px 86px;
  transform: scale(var(--grow));
  transition: transform .6s cubic-bezier(.34, 1.56, .64, 1);
}
#ham-rn-badge .ham-rn-globe .g-canopy {
  transform-origin: 50px 46px;
  transition: opacity .5s ease, transform .6s cubic-bezier(.34, 1.56, .64, 1);
}
#ham-rn-badge .ham-rn-globe .g-canopy--spring { opacity: max(var(--w0), var(--wd)); transform: scale(calc(.5 + .5 * max(var(--w0), var(--wd)))); }
#ham-rn-badge .ham-rn-globe .g-canopy--summer { opacity: var(--w1); transform: scale(calc(.6 + .4 * var(--w1))); }
#ham-rn-badge .ham-rn-globe .g-canopy--autumn { opacity: var(--w2); transform: scale(calc(.8 + .2 * var(--w2))); }
#ham-rn-badge .ham-rn-globe.is-shaken .g-tree { animation: ham-rn-globe-sway .8s ease-in-out; }
@keyframes ham-rn-globe-sway { 25% { rotate: -6deg; } 60% { rotate: 4deg; } 100% { rotate: 0deg; } }

#ham-rn-badge .ham-rn-globe .g-fall circle { fill: #f5d3dc; animation: ham-rn-gfall 3.4s linear infinite; }
#ham-rn-badge .ham-rn-globe .g-fall circle:nth-child(2) { animation-duration: 4.1s; animation-delay: -1.3s; }
#ham-rn-badge .ham-rn-globe .g-fall circle:nth-child(3) { animation-duration: 3.1s; animation-delay: -2.2s; }
#ham-rn-badge .ham-rn-globe .g-fall circle:nth-child(4) { animation-duration: 4.6s; animation-delay: -.6s; }
#ham-rn-badge .ham-rn-globe .g-fall circle:nth-child(5) { animation-duration: 3.7s; animation-delay: -2.9s; }
#ham-rn-badge .ham-rn-globe .g-fall circle:nth-child(6) { animation-duration: 3.3s; animation-delay: -1.8s; }
#ham-rn-badge .ham-rn-globe[data-season="summer"] .g-fall circle { fill: #fffbe8; animation-name: ham-rn-gfloat; }
#ham-rn-badge .ham-rn-globe[data-season="autumn"] .g-fall circle:nth-child(odd)  { fill: #d9772b; }
#ham-rn-badge .ham-rn-globe[data-season="autumn"] .g-fall circle:nth-child(even) { fill: #b5432a; }
#ham-rn-badge .ham-rn-globe[data-season="winter"] .g-fall circle { fill: #fff; }
@keyframes ham-rn-gfall  { from { transform: translate(0, -12px); } to { transform: translate(-10px, 96px); } }
@keyframes ham-rn-gfloat { from { transform: translate(0, 70px); opacity: 0; } 30% { opacity: .9; } to { transform: translate(14px, 10px); opacity: 0; } }

#ham-rn-badge .ham-rn-card {
  position: absolute; left: 0; bottom: calc(100% + 30px);
  width: min(340px, calc(100vw - 36px));
  margin: 0; padding: 22px 22px 22px;
  border-radius: 18px;
  background:
    radial-gradient(140% 90% at 100% 100%, rgba(242, 196, 111, .28), rgba(242, 196, 111, 0) 55%),
    linear-gradient(160deg, var(--ham-wine) 0%, var(--ham-wine-deep) 100%);
  color: var(--ham-cream);
  box-shadow: 0 24px 60px -20px rgba(46, 15, 34, .85);
  transform-origin: 24px 100%;
  animation: ham-rn-card-in .35s cubic-bezier(.2, .9, .25, 1.1);
}
#ham-rn-badge .ham-rn-card[hidden] { display: none; }
@keyframes ham-rn-card-in { from { opacity: 0; transform: translateY(10px) scale(.94); } }
#ham-rn-badge .ham-rn-card__title {
  margin: 0 36px 10px 0; padding: 0;
  font-family: var(--ham-serif); font-style: italic; font-weight: 700;
  font-size: 23px; line-height: 1.15; color: var(--ham-cream);
}
#ham-rn-badge .ham-rn-card__text {
  margin: 0 0 18px; padding: 0;
  font-family: var(--ham-sans); font-size: 16px; line-height: 1.5; color: var(--ham-cream);
}
#ham-rn-badge .ham-rn-card__close {
  position: absolute; top: 10px; right: 10px;
  display: grid; place-items: center;
  width: 36px; height: 36px; margin: 0; padding: 0;
  border: 0; border-radius: 50%;
  background: transparent; color: var(--ham-cream);
  box-shadow: none;
  cursor: pointer;
}
#ham-rn-badge .ham-rn-card__close:hover { background: rgba(246, 238, 221, .12); }

/* ---------- Tablet ---------- */

@media (max-width: 1100px) {
  #ham-retired .ham-rn__branchwrap { width: min(50vw, 560px); }
  #ham-retired .ham-rn__note { max-width: 21em; }
}

/* ---------- Phone ---------- */

@media (max-width: 767px) {
  #ham-retired {
    height: 520px;
    background:
      radial-gradient(130% 60% at 78% 88%, rgba(242, 196, 111, .6), rgba(229, 154, 106, 0) 55%),
      linear-gradient(172deg, var(--ham-wine-deep) 0%, var(--ham-wine) 34%, var(--ham-plum) 58%, var(--ham-rose) 76%, var(--ham-apricot) 90%, var(--ham-honey) 100%);
  }
  #ham-retired .ham-rn__scene { top: auto; height: 170px; }
  #ham-retired .ham-rn__fireflies { width: 100%; height: 100%; }
  #ham-retired .ham-rn__branchwrap { width: 88vw; right: -6vw; }
  #ham-retired .ham-rn__inner { padding: 92px 16px 0; }
  #ham-retired .ham-rn__title { font-size: 30px; margin-bottom: 12px; }
  #ham-retired .ham-rn__statement { font-size: 17px; margin-bottom: 18px; }
  #ham-retired .ham-rn__actions { gap: 14px; }
  #ham-retired .ham-rn__note { font-size: 14px; }
  #ham-retired .ham-rn__hint { left: 16px; bottom: 10px; font-size: 12.5px; }
  #ham-rn-badge { left: 14px; bottom: 16px; }
  #ham-rn-badge .ham-rn-badge__btn { --globe: 76px; font-size: 14px; padding-right: 16px; }
}
@media (max-width: 380px) {
  #ham-retired { height: 560px; }
}
@supports ((animation-timeline: scroll()) and (animation-range: 0% 100%)) {
  @media (max-width: 767px) { #ham-retired .ham-sd { animation-range: 0px 520px; } }
  @media (max-width: 380px) { #ham-retired .ham-sd { animation-range: 0px 560px; } }
}

/* ---------- Reduced motion: a still evening, everything readable ---------- */

@media (prefers-reduced-motion: reduce) {
  #ham-retired *, #ham-retired .ham-sd,
  #ham-rn-badge, #ham-rn-badge * {
    animation: none !important;
    transition: none !important;
  }
  #ham-retired .ham-rn__wood path { stroke-dashoffset: 0; }
  #ham-retired { --ham-p: 1 !important; }
  #ham-rn-badge .ham-rn-globe .g-fall { display: none; }
  #ham-retired .ham-rn__fireflies i { opacity: .7; }
  #ham-retired .ham-rn__layer,
  #ham-retired .ham-rn__branchwrap { translate: none; }
  .ham-rn-petals { display: none; }
}

/* ---------- Careers / Apply: applications are closed ---------- */

.ham-rn-jobs {
  display: flex; align-items: center; gap: 18px;
  box-sizing: border-box;
  max-width: 760px; margin: 10px auto 34px; padding: 22px 28px;
  border-radius: 18px;
  background:
    radial-gradient(120% 120% at 100% 100%, rgba(242, 196, 111, .3), rgba(242, 196, 111, 0) 55%),
    linear-gradient(160deg, #4f1a36 0%, #2e0f22 100%);
  color: #f6eedd;
  box-shadow: 0 18px 44px -22px rgba(46, 15, 34, .8);
}
.ham-rn-jobs .ham-rn-jobs__bloom { flex: none; width: 54px; height: 54px; }
.ham-rn-jobs .ham-rn-jobs__title {
  margin: 0 0 6px; padding: 0;
  font-family: "Playfair Display", Georgia, serif; font-style: italic; font-weight: 700;
  font-size: 26px; line-height: 1.15; color: #f6eedd;
}
.ham-rn-jobs .ham-rn-jobs__text {
  margin: 0; padding: 0;
  font-family: "Quattrocento Sans", "Helvetica Neue", Arial, sans-serif;
  font-size: 17px; line-height: 1.5; color: #f6eedd;
}
@media (max-width: 767px) {
  .ham-rn-jobs { margin: 6px 16px 26px; padding: 18px 18px; gap: 14px; }
  .ham-rn-jobs .ham-rn-jobs__bloom { width: 40px; height: 40px; }
  .ham-rn-jobs .ham-rn-jobs__title { font-size: 22px; }
  .ham-rn-jobs .ham-rn-jobs__text { font-size: 16px; }
}
