    @font-face {
      font-family: 'Retro';
      src: url('web-assets/Retro Wild.otf') format('opentype');
      font-display: swap;
    }

    :root {
      --gold: #f5a623;
      --orange: #ff6b2c;
      --coral: #ff5e8a;
      --magenta: #e838c4;
      --cream: #ede6d6;
      --velvet: #241033;
      --velvet-2: #3d1657;
      --indigo: #2b2a63;
      --ink: #1a0a20;

      --noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
      --wave-tile-w: 440px;
      --wave-tile-h: 130px;
      --wave-overlap: 2px;
    }

    * {
      box-sizing: border-box
    }

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0
    }

    html {
      scroll-behavior: smooth
    }

    html,
    body {
      margin: 0;
      padding: 0;
      /* iOS Safari ignores overflow-x:hidden on body alone when it isn't the
         scroll container, so clip on <html> too to stop the rightward scroll */
      overflow-x: hidden;
      width: 100%;
    }

    body {
      font-family: 'Rubik', system-ui, sans-serif;
      color: var(--cream);
      background: var(--velvet);
      min-height: 100vh;
      position: relative;
      line-height: 1.6;

      isolation: isolate;
    }

    .bg {
      position: fixed;
      inset: 0;
      z-index: -3;
      background: radial-gradient(120% 85% at 50% 118%, var(--gold) 0%, var(--orange) 24%, var(--coral) 44%, var(--magenta) 60%, var(--velvet-2) 80%, var(--velvet) 100%);
    }

    .blob {
      position: fixed;
      z-index: -2;
      opacity: .5;
      mix-blend-mode: screen
    }

    .blob.a {
      width: 58vmax;
      height: 58vmax;
      left: -18vmax;
      top: -16vmax;
      background: radial-gradient(circle, var(--coral) 0%, transparent 66%);
    }

    .blob.b {
      width: 48vmax;
      height: 48vmax;
      right: -16vmax;
      top: 4vmax;
      background: radial-gradient(circle, var(--indigo) 0%, transparent 66%);
    }

    .blob.c {
      width: 54vmax;
      height: 54vmax;
      left: 12vmax;
      bottom: -24vmax;
      background: radial-gradient(circle, var(--gold) 0%, transparent 66%);
    }

    @keyframes float1 {
      to {
        transform: translate(8vmax, 10vmax)
      }
    }

    @keyframes float2 {
      to {
        transform: translate(-10vmax, 8vmax)
      }
    }

    @keyframes float3 {
      to {
        transform: translate(6vmax, -10vmax)
      }
    }

    .grain {
      position: fixed;
      inset: 0;
      z-index: -1;
      pointer-events: none;
      opacity: 1;
      background-image: var(--noise);
    }

    @keyframes rise {
      from {
        opacity: 0;
        transform: translateY(22px)
      }

      to {
        opacity: 1;
        transform: translateY(0)
      }
    }

    @keyframes fadein {
      from {
        opacity: 0
      }

      to {
        opacity: 1
      }
    }

    .hero>* {
      opacity: 0;
      animation: rise .7s cubic-bezier(.2, .7, .2, 1) both
    }

    .hero .tagline {
      animation-delay: .18s
    }

    .hero .socials {
      animation-delay: .30s
    }

    .hero .hero-about {
      animation-delay: .42s
    }

    .hero .scroll-cue {
      animation: fadein .7s ease .60s both
    }

    .hero .typelogo {
      opacity: 0;
      animation: fadein .8s ease both, logobob 5s ease-in-out infinite
    }

    .wrap {
      max-width: 860px;
      margin: 0 auto;
      padding: clamp(.4rem, 1.5vw, 1rem) 1.4rem 0;
      position: relative;
      z-index: 1;
    }

    header.hero {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      position: relative;
      min-height: calc(100svh - 2rem);
      padding: 3rem 0 13rem
    }

    .hero-about {
      max-width: 34rem;
      margin: .2rem 0 0;
      font-size: 1.08rem;
      color: #fff;
      text-shadow: 0 1px 2px rgba(20, 5, 20, .9), 0 2px 14px rgba(20, 5, 20, .8)
    }

    .hero-about strong {
      color: var(--gold);
      font-weight: 700
    }

    .scroll-cue {
      position: absolute;
      bottom: 5rem;
      left: 50%;
      transform: translateX(-50%);
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: .3rem;
      color: #fff;
      text-decoration: none;
      font-family: 'Retro', 'Lilita One', cursive;
      letter-spacing: .06em;
      text-transform: uppercase;
      font-size: 1.7rem;
      transition: transform .2s;
      -webkit-text-stroke: 1.5px #1a0a20;
      text-shadow: 0 0 1px #1a0a20, 0 2px 6px rgba(20, 5, 20, .6)
    }

    .scroll-cue:hover {
      transform: translateX(-50%) translateY(-2px)
    }

    /* ➜ is a right-pointing arrow — rotate it 90° so it points down; the bob keeps the rotation */
    .scroll-cue .arrow {
      font-size: 2.4rem;
      line-height: 1;
      display: inline-block;
      transform: rotate(90deg);
      animation: cue 1.8s ease-in-out infinite
    }

    @keyframes cue {

      0%,
      100% {
        transform: rotate(90deg) translateX(0)
      }

      50% {
        transform: rotate(90deg) translateX(6px)
      }
    }

    .typelogo {
      width: min(920px, 96%);
      height: auto;
      margin: .2rem 0 .4rem;
      transform: rotate(-4deg);
      animation: logobob 5s ease-in-out infinite;
      filter:
        drop-shadow(2px 2px 0 var(--magenta)) drop-shadow(4px 4px 0 var(--coral)) drop-shadow(6px 7px 0 rgba(90, 20, 77, .55)) drop-shadow(0 14px 34px rgba(26, 10, 32, .55));
    }

    @keyframes logobob {

      0%,
      100% {
        transform: rotate(-4deg) translateY(0)
      }

      50% {
        transform: rotate(-4deg) translateY(-9px)
      }
    }

    .tagline {
      font-family: 'Retro', 'Lilita One', cursive;
      font-size: clamp(1.6rem, 4.4vw, 2.6rem);
      letter-spacing: .16em;
      color: var(--cream);
      text-transform: uppercase;
      margin: .4rem 0 1.1rem;
      text-shadow: 0 2px 10px rgba(26, 10, 32, .6);
    }

    .tagline .wave {
      display: inline-block;
      color: var(--gold)
    }

    .tagline .wave span {
      display: inline-block;
      animation: letterbounce 2.4s ease-in-out infinite;
      animation-delay: calc(var(--i) * .09s)
    }

    @keyframes letterbounce {

      0%,
      72%,
      100% {
        transform: translateY(0)
      }

      82% {
        transform: translateY(-.32em)
      }

      92% {
        transform: translateY(0)
      }
    }

    /* ---- Socials (now up top) ---- */
    .socials {
      display: flex;
      flex-wrap: wrap;
      gap: .7rem;
      justify-content: center;
      margin: 0 0 1.8rem
    }

    .avatar {
      width: clamp(96px, 16vw, 148px);
      aspect-ratio: 1;
      object-fit: cover;
      border-radius: 50%;
      display: block;
      margin: .6rem auto 1.8rem;
      padding: 3px;
      background: linear-gradient(92deg, var(--gold), var(--orange) 45%, var(--coral));
      box-shadow: 0 6px 22px rgba(255, 94, 138, .35)
    }

    /* ---- Bottom bear ---- */
    .bear-egg {
      position: relative;
      width: max-content;
      margin: 0 auto
    }

    .bear {
      width: clamp(72px, 11vw, 104px);
      height: auto;
      display: block;
      margin: 0 auto;
      filter: drop-shadow(0 4px 16px rgba(255, 94, 138, .5));
      animation: bob 5s ease-in-out infinite;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
      user-select: none
    }

    @keyframes bob {

      0%,
      100% {
        transform: translateY(0) rotate(-3deg)
      }

      50% {
        transform: translateY(-9px) rotate(3deg)
      }
    }

    /* shiver when the cursor comes near — quick jitter layered under the bob */
    .bear.shiver {
      animation: bob 5s ease-in-out infinite, shiver .12s linear infinite
    }

    @keyframes shiver {
      0% {
        margin-left: 0
      }

      25% {
        margin-left: -2px
      }

      50% {
        margin-left: 0
      }

      75% {
        margin-left: 2px
      }

      100% {
        margin-left: 0
      }
    }

    /* little hop on click */
    .bear.hop {
      animation: bob 5s ease-in-out infinite, hop .4s cubic-bezier(.3, 1.6, .5, 1)
    }

    @keyframes hop {
      0% {
        transform: translateY(0)
      }

      35% {
        transform: translateY(-26px) scale(1.05, .96)
      }

      70% {
        transform: translateY(0) scale(1.04, .98)
      }

      100% {
        transform: translateY(0)
      }
    }

    /* ---- Disco BLAM — burst of light + sparks on click ---- */
    .blam {
      position: absolute;
      width: 0;
      height: 0;
      z-index: 15;
      pointer-events: none
    }

    .blam .flash {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 120px;
      height: 120px;
      margin: -60px 0 0 -60px;
      border-radius: 50%;
      mix-blend-mode: screen;
      background: radial-gradient(circle, #fff 0%, var(--gold) 30%, var(--magenta) 60%, transparent 72%);
      animation: blamFlash .5s ease-out forwards
    }

    @keyframes blamFlash {
      0% {
        transform: scale(.2);
        opacity: 0
      }

      18% {
        opacity: 1
      }

      100% {
        transform: scale(1.5);
        opacity: 0
      }
    }

    .blam .spark {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 8px;
      height: 8px;
      margin: -4px 0 0 -4px;
      border-radius: 50%;
      mix-blend-mode: screen;
      transform: rotate(var(--a)) translateX(0);
      animation: blamSpark .6s cubic-bezier(.15, .7, .3, 1) forwards
    }

    @keyframes blamSpark {
      0% {
        opacity: 0;
        transform: rotate(var(--a)) translateX(6px) scale(.6)
      }

      15% {
        opacity: 1
      }

      100% {
        opacity: 0;
        transform: rotate(var(--a)) translateX(78px) scale(1)
      }
    }

    /* ---- Easter-egg thought bubble ---- */
    .thought {
      position: absolute;
      left: 50%;
      bottom: calc(100% + 18px);
      transform: translateX(-50%) scale(.6);
      width: min(420px, 80vw);
      opacity: 0;
      pointer-events: none;
      transform-origin: 50% 130%;
      transition: opacity .35s ease, transform .35s cubic-bezier(.2, 1.5, .4, 1);
      z-index: 20
    }

    .thought.show {
      opacity: 1;
      transform: translateX(-50%) scale(1);
      pointer-events: auto
    }

    .bubble {
      position: relative;
      background: linear-gradient(178deg, #fff 0%, #f3ecff 100%);
      border-radius: 26px;
      overflow: hidden;
      box-shadow: 0 18px 44px rgba(20, 5, 20, .55);
      border: 3px solid var(--magenta)
    }

    .bubble video {
      display: block;
      width: 100%;
      background: #000;
      aspect-ratio: 1/1
    }

    .bubble .egg-close {
      position: absolute;
      top: 8px;
      right: 8px;
      z-index: 2;
      width: 30px;
      height: 30px;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      font-family: 'Lilita One', cursive;
      font-size: 1rem;
      color: #fff;
      background: linear-gradient(92deg, var(--coral), var(--magenta));
      box-shadow: 0 4px 12px rgba(20, 5, 20, .5)
    }

    /* the classic trailing bubbles that connect the thought to the bear */
    .thought::before,
    .thought::after {
      content: "";
      position: absolute;
      left: 50%;
      border-radius: 50%;
      background: #fff;
      border: 3px solid var(--magenta);
      transform: translateX(-50%)
    }

    .thought::before {
      width: 22px;
      height: 22px;
      bottom: -20px
    }

    .thought::after {
      width: 11px;
      height: 11px;
      bottom: -36px;
      margin-left: -16px
    }

    .content {
      position: relative;
      z-index: 1;
      margin-top: -140px
    }

    .band {
      position: relative;
      overflow: hidden;
      padding-block: clamp(7.5rem, 10vw, 8.5rem);
      background:
        var(--noise) repeat,
        linear-gradient(178deg, #331a4d 0%, #200e2d 100%);
      --gooTop: url('web-assets/lava-blob.svg');
      -webkit-mask:
        var(--gooTop) 0 top/var(--wave-tile-w) var(--wave-tile-h) repeat-x,
        linear-gradient(#000, #000) bottom/100% calc(100% - var(--wave-tile-h) + var(--wave-overlap)) no-repeat;
      mask:
        var(--gooTop) 0 top/var(--wave-tile-w) var(--wave-tile-h) repeat-x,
        linear-gradient(#000, #000) bottom/100% calc(100% - var(--wave-tile-h) + var(--wave-overlap)) no-repeat;
    }

    .band::before,
    .band::after {
      content: "";
      position: absolute;
      z-index: 0;
      pointer-events: none;
      mix-blend-mode: screen;
      opacity: .5;
    }

    .band::before {
      width: 150%;
      height: 150%;
      left: -55%;
      top: -35%;
      background: radial-gradient(ellipse 50% 50% at center, var(--orange) 0%, rgba(255, 107, 44, .28) 40%, transparent 70%);
    }

    .band::after {
      width: 140%;
      height: 140%;
      right: -55%;
      bottom: -35%;
      background: radial-gradient(ellipse 50% 50% at center, var(--coral) 0%, rgba(232, 56, 196, .26) 40%, transparent 70%);
    }

    .band>.inner,
    .band>.carousel {
      position: relative;
      z-index: 1
    }

    .band:nth-of-type(2)::before {
      left: auto;
      right: -55%;
      top: auto;
      bottom: -35%;
    }

    .band:nth-of-type(2)::after {
      right: auto;
      bottom: auto;
      left: -55%;
      top: -35%;
    }

    /* last gallery (Animations): no colour blobs */
    .band:nth-of-type(3)::before,
    .band:nth-of-type(3)::after {
      display: none;
    }

    .band+.band {
      margin-top: calc(-1 * var(--wave-tile-h))
    }

    .band:nth-of-type(2) {
      --gooTop: url('web-assets/lava-blob-flip.svg');
      z-index: 3
    }

    .band:nth-of-type(3) {
      z-index: 4
    }

    /* last band: same wave cut as the base rule (inherited), just runs solid into the footer */
    .band:last-of-type {
      padding-bottom: 2rem;
    }

    .inner {
      max-width: 820px;
      margin: 0 auto;
      padding-inline: 1.4rem
    }

    /* full-bleed carousel — heading stays in .inner, the reel spans the whole page */
    .band>.carousel {
      max-width: none
    }

    .band h2 {
      font-family: 'Retro', 'Lilita One', cursive;
      margin: 1.6rem 0 .9rem;
      font-size: 2rem;
      color: #fff5e6;
      letter-spacing: .04em;
      display: inline-flex;
      align-items: center;
      gap: .55rem;
      padding: .6rem 2rem .6rem;
      border-radius: 999px;
      line-height: 1;
      background:
        linear-gradient(92deg, rgba(245, 166, 35, .95), rgba(255, 107, 44, .9) 45%, rgba(255, 94, 138, .88));
      border: 1px solid rgba(255, 214, 170, .5);
      box-shadow:
        0 6px 20px -8px rgba(255, 107, 44, .55),
        inset 0 1px 0 rgba(255, 255, 255, .35);
      text-shadow: 0 1px 2px rgba(90, 20, 24, .4);
    }

    .band p {
      margin: 0 0 .8rem
    }

    .band p:last-child {
      margin-bottom: 0
    }

    .lead {
      font-size: 1.1rem
    }

    /* ---- Commissions ---- */
    .status {
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      margin-bottom: 1.2rem;
      padding: .4rem 1rem;
      border-radius: 999px;
      font-family: 'Lilita One', cursive;
      font-size: .78rem;
      letter-spacing: .09em;
      text-transform: uppercase;
      color: var(--cream);
      background: linear-gradient(92deg, rgba(90, 20, 24, .55), rgba(232, 56, 196, .35));
      border: 1px solid rgba(255, 94, 138, .5);
    }

    .status .dot {
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: #ff5e5e;
      box-shadow: 0 0 10px #ff5e5e;
      animation: pulse 2s ease-in-out infinite
    }

    @keyframes pulse {
      50% {
        opacity: .4
      }
    }

    details {
      border-radius: 18px;
      overflow: hidden;
      margin: 1.2rem 0 .2rem;
      border: 1px solid rgba(245, 166, 35, .22);
      background: rgba(26, 10, 32, .35)
    }

    summary {
      cursor: pointer;
      list-style: none;
      padding: 1rem 1.2rem;
      font-family: 'Lilita One', cursive;
      letter-spacing: .03em;
      color: var(--coral);
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: rgba(61, 22, 87, .4);
      transition: background .2s
    }

    summary:hover {
      background: rgba(61, 22, 87, .65)
    }

    summary::-webkit-details-marker {
      display: none
    }

    summary .chev {
      transition: transform .25s
    }

    details[open] summary .chev {
      transform: rotate(180deg)
    }

    .details-body {
      padding: 1.2rem
    }

    /* commission category headers */
    .cat {
      display: flex;
      align-items: center;
      gap: .7rem;
      margin: 1.7rem 0 .4rem;
      font-family: 'Retro', 'Lilita One', cursive;
      font-size: 1.05rem;
      letter-spacing: .04em;
      text-transform: uppercase;
      color: var(--coral)
    }

    .cat:first-of-type {
      margin-top: .3rem
    }

    .cat::after {
      content: "";
      flex: 1;
      height: 2px;
      border-radius: 2px;
      background: linear-gradient(90deg, rgba(255, 94, 138, .55), transparent)
    }

    .cat small {
      font-family: 'Rubik', sans-serif;
      font-weight: 400;
      text-transform: none;
      letter-spacing: 0;
      font-size: .82rem;
      color: var(--cream);
      opacity: .72
    }

    .tier {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: .3rem 1rem;
      align-items: baseline;
      padding: .85rem 0;
      border-bottom: 1px dashed rgba(237, 230, 214, .16)
    }

    .tier:last-child {
      border-bottom: none
    }

    .tier .name {
      font-weight: 600;
      color: var(--cream)
    }

    .tier .desc {
      grid-column: 1/-1;
      font-size: .92rem;
      opacity: .78;
      margin-top: .1rem
    }

    .tier .price {
      font-family: 'Lilita One', cursive;
      color: var(--gold);
      white-space: nowrap;
      font-size: 1.05rem
    }

    .bundle {
      margin-top: 1.2rem;
      padding: 1rem 1.2rem;
      border-radius: 14px;
      background: linear-gradient(100deg, rgba(58, 125, 68, .28), rgba(245, 166, 35, .14));
      border: 1px solid rgba(58, 125, 68, .5)
    }

    .bundle h4 {
      margin: .1rem 0 .6rem;
      font-family: 'Lilita One', cursive;
      color: #9fe6a8;
      letter-spacing: .02em
    }

    .bundle ul {
      margin: 0;
      padding-left: 1.2rem
    }

    .bundle li {
      margin: .3rem 0
    }

    .notes {
      margin-top: 1.1rem;
      font-size: .9rem;
      opacity: .8
    }

    .notes li {
      margin: .35rem 0
    }

    /* ---- Gallery carousel ---- */
    /* full-bleed reel: active slide centred, siblings spread across the whole width, dimmed */
    .carousel {
      position: relative;
      margin-top: 1.2rem;
      --slideW: min(560px, 42vw)
    }

    .track {
      display: flex;
      gap: 1.1rem;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-behavior: smooth;
      scrollbar-width: none;
      -webkit-overflow-scrolling: touch;
      padding: .4rem 0 1rem;
      padding-inline: calc((100vw - var(--slideW))/2)
    }

    .track::-webkit-scrollbar {
      display: none
    }

    .slide {
      flex: 0 0 var(--slideW);
      scroll-snap-align: center;
      position: relative;
      border-radius: 18px;
      overflow: hidden;
      cursor: zoom-in;
      background: rgba(26, 10, 32, .4);
      box-shadow: 0 12px 34px rgba(20, 5, 20, .5);
      aspect-ratio: 4/5;
      opacity: .55;
      filter: brightness(.5) saturate(.85);
      transform: scale(.93);
      transition: opacity .35s, filter .35s, transform .35s, box-shadow .25s
    }

    .slide.is-active {
      opacity: 1;
      filter: none;
      transform: scale(1)
    }

    .slide.is-active:hover {
      box-shadow: 0 18px 46px rgba(232, 56, 196, .45)
    }

    .slide img,
    .slide video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block
    }

    .slide .cap {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      padding: 2.2rem 1.2rem 1.1rem;
      background: linear-gradient(0deg, rgba(20, 7, 26, .97) 22%, rgba(20, 7, 26, .6) 55%, transparent);
      color: var(--cream);
      text-align: left;
      opacity: 0;
      transition: opacity .35s
    }

    .slide.is-active .cap {
      opacity: 1
    }

    .slide .cap b {
      display: block;
      font-family: 'Retro', 'Lilita One', cursive;
      font-size: 1.2rem;
      letter-spacing: .03em;
      color: var(--gold)
    }

    .slide .cap span {
      display: block;
      font-size: .92rem;
      opacity: .85;
      margin-top: .15rem
    }

    /* arrows — sit at the edges of the centred slide */
    .car-btn {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 3;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      border: none;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.5rem;
      color: var(--ink);
      background: linear-gradient(92deg, var(--gold), var(--orange));
      box-shadow: 0 6px 18px rgba(20, 5, 20, .5);
      transition: transform .15s, box-shadow .15s;
      font-family: 'Lilita One', cursive
    }

    .car-btn:hover {
      transform: translateY(-50%) scale(1.08);
      box-shadow: 0 8px 22px rgba(232, 56, 196, .55)
    }

    .car-btn.prev {
      left: calc(50% - var(--slideW)/2 + 10px)
    }

    .car-btn.next {
      right: calc(50% - var(--slideW)/2 + 10px)
    }

    /* dots */
    .dots {
      display: flex;
      gap: .5rem;
      justify-content: center;
      margin-top: .9rem
    }

    .dots button {
      width: 9px;
      height: 9px;
      padding: 0;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      background: rgba(237, 230, 214, .3);
      transition: background .2s, transform .2s
    }

    .dots button.active {
      background: var(--gold);
      transform: scale(1.3)
    }

    @media (max-width:640px) {
      .carousel {
        --slideW: 82vw
      }

      .car-btn {
        width: 40px;
        height: 40px;
        font-size: 1.3rem
      }
    }

    /* lightbox */
    .lb {
      position: fixed;
      inset: 0;
      z-index: 100;
      display: none;
      align-items: center;
      justify-content: center;
      background: rgba(10, 4, 14, .9);
      backdrop-filter: blur(6px);
      padding: 2rem;
      cursor: zoom-out
    }

    .lb.open {
      display: flex
    }

    .lb img,
    .lb video {
      max-width: 100%;
      max-height: 90vh;
      border-radius: 14px;
      box-shadow: 0 20px 60px rgba(0, 0, 0, .6)
    }

    .lb .close {
      position: absolute;
      top: 1.2rem;
      right: 1.4rem;
      font-size: 2rem;
      color: var(--cream);
      cursor: pointer;
      font-family: 'Lilita One', cursive
    }

    /* prev/next arrows in the enlarged view — same gradient-pill look as the carousel arrows */
    .lb-nav {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 3;
      width: 52px;
      height: 52px;
      border-radius: 50%;
      border: none;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.7rem;
      color: var(--ink);
      background: linear-gradient(92deg, var(--gold), var(--orange));
      box-shadow: 0 6px 18px rgba(20, 5, 20, .5);
      transition: transform .15s, box-shadow .15s;
      font-family: 'Lilita One', cursive
    }

    .lb-nav.prev {
      left: 1.4rem
    }

    .lb-nav.next {
      right: 1.4rem
    }

    .lb-nav:hover {
      transform: translateY(-50%) scale(1.08);
      box-shadow: 0 8px 22px rgba(232, 56, 196, .55)
    }

    .lb-nav[hidden] {
      display: none
    }

    /* ---- Process ---- */
    .steps {
      counter-reset: step;
      display: grid;
      gap: .9rem;
      margin-top: .4rem
    }

    .step {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 1rem;
      align-items: start;
      padding: 1rem 1.1rem;
      border-radius: 14px;
      background: rgba(26, 10, 32, .35);
      border: 1px solid rgba(245, 166, 35, .18)
    }

    .step::before {
      counter-increment: step;
      content: counter(step);
      display: flex;
      align-items: center;
      justify-content: center;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      font-family: 'Lilita One', cursive;
      color: var(--ink);
      background: linear-gradient(92deg, var(--gold), var(--coral));
      box-shadow: 0 6px 16px rgba(255, 107, 44, .4)
    }

    .step strong {
      color: var(--gold)
    }

    .step p {
      margin: .15rem 0 0;
      font-size: .94rem;
      opacity: .88
    }

    /* ---- Social buttons ---- */
    .social {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      text-decoration: none;
      min-width: 9rem;
      padding: .65rem 1.15rem;
      border-radius: 13px;
      font-weight: 600;
      color: var(--ink);
      background: linear-gradient(92deg, var(--gold), var(--orange), var(--coral));
      background-size: 200% 100%;
      box-shadow: 0 8px 22px rgba(255, 107, 44, .4);
      transition: transform .18s, background-position .4s, box-shadow .18s;
    }

    .social:hover {
      transform: translateY(-3px);
      background-position: 100% 0;
      box-shadow: 0 12px 30px rgba(232, 56, 196, .5)
    }

    .social svg {
      width: 19px;
      height: 19px;
      fill: currentColor
    }

    .outro {
      background:
        var(--noise) repeat,
        linear-gradient(180deg, #200e2d 0%, #180a24 55%, #12071a 100%);
      padding-top: 3.5rem;
      margin-top: 0
    }

    .outro-inner {
      max-width: 860px;
      margin: 0 auto;
      padding: 1.4rem 1.4rem 0;
      display: flex;
      flex-direction: column;
      align-items: center
    }

    footer {
      text-align: center;
      padding: 1.2rem 1rem 2.6rem;
      width: 100%
    }

    footer .sign {
      font-family: 'Lilita One', cursive;
      color: var(--gold);
      letter-spacing: .06em;
      text-transform: uppercase;
      font-size: .85rem;
      margin-bottom: .5rem;
      text-shadow: 0 1px 8px rgba(20, 5, 20, .8)
    }

    footer a {
      color: var(--coral)
    }

    footer .contact {
      color: var(--cream)
    }

    footer .note {
      margin-top: .55rem;
      color: var(--gold);
      font-weight: 500;
      font-size: .95rem
    }

    footer .fine {
      font-size: .78rem;
      opacity: .65;
      margin-top: .6rem;
      color: var(--cream)
    }

    /* ---- Mobile: cue in normal flow so it can't overlap the about text ---- */
    @media (max-width:640px) {
      header.hero {
        justify-content: flex-start;
        min-height: 100svh;
        padding: 2.2rem 0 2rem;
        gap: .4rem
      }

      .tagline {
        font-size: clamp(1.4rem, 7vw, 2rem);
        letter-spacing: .12em;
        margin: .3rem 0 .9rem
      }

      .hero-about {
        font-size: 1rem
      }

      .socials {
        gap: .5rem
      }

      .social {
        min-width: 8rem;
        padding: .6rem 1rem
      }

      .content {
        margin-top: -40px
      }

      .typelogo {
        width: min(560px, 78%);
        margin-bottom: .3rem
      }

      .band {
        padding-top: 7.5rem
      }

      .band h2 {
        margin-top: 2.4rem
      }

      .scroll-cue {
        position: static;
        transform: none;
        margin-top: auto;
        padding-top: 1.6rem;
        font-size: 1.4rem
      }

      .scroll-cue:hover {
        transform: translateY(-2px)
      }

      .scroll-cue .arrow {
        font-size: 2rem
      }
    }

    @media (prefers-reduced-motion:reduce) {

      .bg,
      .blob,
      .bear,
      .typelogo,
      .scroll-cue .arrow,
      .tagline .wave span,
      .band,
      .band::before,
      .band::after,

      .hero>* {
        opacity: 1;
        animation: none
      }

      .hero .typelogo {
        opacity: 1;
        animation: none
      }
    }
