:root {
      --bg: #0a0a0a;
      --rose-deep: #d7c4bc;       /* satin-gold in the original; actually warm blush */
      --rose-warm: #d9cbc6;
      --rose-muted: #b7abab;
      --rule: #3437e2;
      --glow-magenta: rgba(255, 0, 221, .36);
      --glow-blue: rgba(0, 38, 255, .07);
      --display: 'Cinzel', 'Trajan Pro 3', serif;
      --sans: 'Cormorant Garamond', 'Trajan Sans Pro', 'Optima', serif;
    }

    * { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }

    body {
      background: var(--bg);
      color: var(--rose-warm);
      font-family: var(--sans);
      font-size: 16px;
      line-height: 1.5;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    a { color: inherit; text-decoration: none; }

    /* ---------- Nav ---------- */
    .nav {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 10;
      width: 100%;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      pointer-events: none;
      transition: transform .35s cubic-bezier(.6,.05,.3,1), opacity .35s ease;
    }
    .nav.is-hidden {
      transform: translateY(-110%);
      opacity: 0;
    }
    .nav > * { pointer-events: auto; }

    .nav__brand {
      display: block;
      text-align: center;
      margin-top: 1rem;
      align-self: center;
    }

    .nav__brand .painter {
      display: block;
      font-family: var(--display);
      font-weight: 700;
      color: var(--rose-deep);
      font-size: 3rem;
      line-height: 2.6rem;
      letter-spacing: 4px;
    }

    .nav__brand .productions {
      display: block;
      margin-top: .25rem;
      font-family: var(--sans);
      font-weight: 400;
      color: var(--rose-warm);
      font-size: 1.2rem;
      line-height: 1.2rem;
      letter-spacing: 9px;
      text-indent: 9px;
    }

    .nav__menu {
      display: flex;
      justify-content: space-between;
      align-items: stretch;
      width: 100%;
      font-family: var(--sans);
      font-size: .75rem;
      font-weight: 600;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--rose-deep);
    }
    .nav__menu a {
      padding: 1rem 5vw;
      display: flex;
      align-items: center;
      transition: color .18s ease;
    }
    .nav__menu a:hover { color: #d0e4ff; }

    /* preserve the original "cONTACT" casing exactly */
    .nav__menu a.contact { text-transform: none; letter-spacing: 2px; }

    /* ---------- Hero ---------- */
    .hero {
      position: relative;
      height: 100vh;
      min-height: 600px;
      overflow: hidden;
      background: rgba(0, 0, 0, .46);
    }

    .hero__video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
    }

    .hero__scrim {
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, .46);
      z-index: 1;
    }

    .hero__inner {
      position: relative;
      z-index: 2;
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: center;
      text-align: center;
      padding: 25vh 0 0;
    }

    .hero__title {
      font-family: var(--sans);
      font-weight: 600;
      color: var(--rose-deep);
      font-size: clamp(1.75rem, 5.5vw, 5rem);
      line-height: 1.2;
      letter-spacing: .02em;
      margin: 0;
      padding: 0 1.5rem;
    }

    .hero__title .painter-em {
      font-family: var(--display);
      font-weight: 700;
      letter-spacing: .1em;
    }

    .hero__disclaimer {
      max-width: 38rem;
      margin: auto 2rem 4rem;
      padding: 0 0 4rem;
      color: var(--rose-deep);
      font-family: var(--sans);
      font-size: 1rem;
      font-weight: 400;
      line-height: 2rem;
      text-align: center;
    }

    /* ---------- Section: featured works ---------- */
    .works {
      background: rgba(0, 0, 0, .9);
      padding: 4rem 1rem 6rem;
      position: relative;
    }

    .works__header {
      max-width: 60rem;
      margin: 0 auto 2rem;
      text-align: center;
      padding: 0 2rem;
    }

    .works__title {
      font-family: var(--sans);
      font-weight: 600;
      color: var(--rose-deep);
      font-size: clamp(1.75rem, 5.5vw, 5rem);
      line-height: 1.2;
      letter-spacing: .04em;
      text-transform: uppercase;
      margin: 0 0 1rem;
    }

    .works__sub {
      color: #a2a2a2;
      text-transform: uppercase;
      font-family: var(--sans);
      font-size: .8rem;
      font-weight: 600;
      line-height: 1.5rem;
      margin: 0;
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2rem;
      max-width: 110rem;
      margin: 2rem auto;
      padding: 2rem 4rem;
    }

    @media (max-width: 991px) {
      .grid { grid-template-columns: 1fr 1fr; padding: 2rem; }
    }

    @media (max-width: 479px) {
      .grid { grid-template-columns: 1fr; padding: 1.5rem 1rem; gap: 2.25rem; }
    }

    .tile { display: block; }

    .tile__media {
      position: relative;
      width: 100%;
      aspect-ratio: 16 / 10;
      border-radius: .5rem;
      overflow: hidden;
      border-bottom: 1px solid var(--rule);
      box-shadow:
        0 2px 40px -11px var(--glow-magenta),
        3px 7px 0 2px var(--glow-blue);
      transition: transform .35s ease, box-shadow .35s ease;
    }
    .tile:hover .tile__media {
      transform: translateY(-2px);
      box-shadow:
        0 4px 50px -8px var(--glow-magenta),
        3px 7px 0 2px var(--glow-blue);
    }
    .tile__media video { width: 100%; height: 100%; object-fit: cover; display: block; }

    .tile__meta {
      margin-top: 1rem;
      text-align: center;
      display: flex;
      flex-direction: column;
      gap: .4rem;
      align-items: center;
    }
    .tile__name {
      font-family: var(--sans);
      font-weight: 700;
      color: var(--rose-deep);
      text-transform: uppercase;
      letter-spacing: .04em;
      font-size: clamp(0.85rem, 1.05vw, 1.35rem);
      line-height: 1.15;
    }
    .tile__credit {
      color: var(--rose-muted);
      font-family: var(--sans);
      font-weight: 600;
      font-size: clamp(.65rem, .68vw, .78rem);
      letter-spacing: .14em;
      line-height: 1.45;
      text-transform: uppercase;
    }
    .tile__credit b { color: var(--rose-warm); font-weight: 700; letter-spacing: .08em; }

    /* ---------- Footer ---------- */
    .foot {
      padding: 2.5rem 1rem 3rem;
      text-align: center;
      color: var(--rose-muted);
      font-size: .7rem;
      letter-spacing: .08em;
    }
    .foot a:hover { color: var(--rose-deep); }

    /* ---------- Tablet ---------- */
    @media (max-width: 991px) {
      .hero__inner { padding-top: 40vh; }
      .hero__title { font-size: 1.75rem; line-height: 2rem; }
      .hero__disclaimer { margin-bottom: 2rem; padding-bottom: 2rem; line-height: 1.25rem; }
      .nav__menu a { padding: 1rem; }
      /* tile__name handled by clamp() */
    }

    /* ---------- Phone ---------- */
    @media (max-width: 767px) {
      .nav__brand .painter { font-size: 1.5rem; line-height: 1.6rem; letter-spacing: 4px; margin-top: 0; }
      .nav__brand .productions { font-size: .6rem; line-height: .8rem; letter-spacing: 6px; text-indent: 6px; margin-top: 0; }
      .hero__title { font-size: 1.75rem; line-height: 2rem; margin: 0; }
      /* tile__name handled by clamp() */
      .works { padding: 3rem 1rem 4rem; }
    }

    /* ===== Projects page (vertical stacked sections) ===== */
    .subhero {
      position: relative;
      max-width: 110rem;
      margin: 0 auto;
      padding: 8rem clamp(1.25rem, 4vw, 4rem) 5rem;
      border-bottom: 1px solid rgba(215, 196, 188, 0.10);
    }
    .subhero__eyebrow {
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .35em;
      text-transform: uppercase;
      color: var(--rose-muted);
      margin-bottom: 1.5rem;
    }
    .subhero__title {
      font-family: var(--display);
      font-weight: 500;
      font-size: clamp(2.4rem, 5vw, 4.4rem);
      line-height: 1.05;
      letter-spacing: .01em;
      color: var(--rose-deep);
      margin: 0;
      max-width: 880px;
    }
    .subhero__body {
      font-family: var(--sans);
      font-size: 1rem;
      line-height: 1.6;
      color: var(--rose-muted);
      max-width: 640px;
      margin-top: 1.75rem;
    }

    .project-list {
      max-width: 110rem;
      margin: 0 auto;
      padding: 4rem clamp(1.25rem, 4vw, 4rem) 6rem;
    }
    .project-item {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
      gap: clamp(2rem, 5vw, 5rem);
      align-items: center;
      padding: clamp(3rem, 6vw, 5.5rem) 0;
      border-bottom: 1px solid rgba(215, 196, 188, 0.10);
      scroll-margin-top: 100px;
    }
    .project-item:last-of-type { border-bottom: none; }
    .pi__text { max-width: 500px; }
    .pi__year {
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .35em;
      text-transform: uppercase;
      color: var(--rose-muted);
      margin-bottom: 1rem;
    }
    .pi__title {
      font-family: var(--display);
      font-size: clamp(1.8rem, 3.5vw, 2.8rem);
      font-weight: 500;
      line-height: 1.1;
      letter-spacing: .01em;
      color: var(--rose-deep);
      margin: 0 0 1.5rem;
    }
    .pi__blurb {
      font-family: var(--sans);
      font-size: 1rem;
      line-height: 1.65;
      color: var(--rose-warm);
      margin-bottom: 1.5rem;
    }
    .pi__blurb p { margin: 0 0 1rem; }
    .pi__blurb p:last-child { margin-bottom: 0; }
    .pi__credits {
      font-family: var(--sans);
      font-size: .7rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--rose-muted);
      margin-bottom: 1.75rem;
      line-height: 1.8;
    }
    .pi__press {
      display: inline-flex;
      align-items: center;
      gap: .65rem;
      font-family: var(--sans);
      font-size: .72rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--rose-deep);
      padding: .5rem 0 .55rem;
      border-bottom: 1px solid rgba(52, 55, 226, 0.4);
      text-decoration: none;
      transition: border-color .25s ease, color .25s ease;
    }
    .pi__press:hover {
      color: #fff;
      border-bottom-color: #3437e2;
    }
    .pi__press .arr { transition: transform .25s ease; }
    .pi__press:hover .arr { transform: translateX(3px); }
    .pi__press-source { color: var(--rose-muted); }

    .pi__media {
      display: block;
      position: relative;
      overflow: hidden;
      aspect-ratio: 16 / 9;
      background: #000;
      border-bottom: 1px solid rgba(52, 55, 226, 0.5);
      box-shadow:
        0 6px 16px -2px rgba(52, 55, 226, 0.18),
        0 16px 36px -10px rgba(255, 0, 221, 0.10);
      transition: box-shadow .35s ease, border-color .35s ease;
    }
    .pi__media:hover {
      border-bottom-color: rgba(52, 55, 226, 0.8);
      box-shadow:
        0 8px 20px -2px rgba(52, 55, 226, 0.28),
        0 20px 44px -10px rgba(255, 0, 221, 0.18);
    }
    .pi__media video,
    .pi__media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    /* Sub-gallery: IP activations inside Disney: The Castle */
    .project-item--with-sub {
      grid-template-rows: auto auto;
    }
    .project-item--with-sub .pi__text   { grid-column: 1; grid-row: 1; }
    .project-item--with-sub .pi__media  { grid-column: 2; grid-row: 1; }
    .pi__sub-gallery {
      grid-column: 1 / -1;
      grid-row: 2;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: clamp(.75rem, 1.5vw, 1.25rem);
      margin-top: clamp(1.5rem, 3vw, 2.5rem);
    }
    .pi__sub-item {
      position: relative;
      overflow: hidden;
      aspect-ratio: 16 / 9;
      background: #000;
      border-bottom: 1px solid rgba(52, 55, 226, 0.4);
      box-shadow:
        0 4px 12px -2px rgba(52, 55, 226, 0.14),
        0 12px 26px -10px rgba(255, 0, 221, 0.08);
      scroll-margin-top: 110px;
      transition: box-shadow .35s ease, border-color .35s ease, transform .3s ease;
    }
    .pi__sub-item:hover {
      border-bottom-color: rgba(52, 55, 226, 0.7);
      box-shadow:
        0 6px 16px -2px rgba(52, 55, 226, 0.22),
        0 16px 32px -10px rgba(255, 0, 221, 0.14);
    }
    .pi__sub-item video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .pi__sub-label {
      position: absolute;
      left: 0; right: 0; bottom: 0;
      padding: 1.25rem .9rem .75rem;
      font-family: var(--display);
      font-size: clamp(.9rem, 1.4vw, 1.15rem);
      font-weight: 400;
      letter-spacing: .04em;
      color: var(--rose-deep);
      background: linear-gradient(to top, rgba(10,10,10,.92), rgba(10,10,10,0));
      pointer-events: none;
    }

    @media (max-width: 760px) {
      .project-item {
        grid-template-columns: 1fr;
        gap: 1.75rem;
        padding: 3rem 0;
      }
      .project-item--with-sub .pi__text,
      .project-item--with-sub .pi__media,
      .project-item--with-sub .pi__sub-gallery {
        grid-column: 1;
        grid-row: auto;
      }
      .pi__sub-gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: .75rem;
      }
    }
    @media (max-width: 460px) {
      .pi__sub-gallery { grid-template-columns: 1fr; }
    }

    /* ===== Projects page footer ===== */
    .proj-foot {
      max-width: 110rem;
      margin: 0 auto;
      padding: 3rem clamp(1.25rem, 4vw, 4rem) 4rem;
      border-top: 1px solid rgba(215, 196, 188, 0.10);
    }
    .proj-foot__inner {
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--rose-muted);
      line-height: 1.8;
    }
    .proj-foot__inner p { margin: 0 0 .75rem; max-width: 56rem; }
    .proj-foot__inner p:last-child { margin-bottom: 0; }

    /* ===== Press page ===== */
    .press-list {
      max-width: 110rem;
      margin: 0 auto;
      padding: 4rem clamp(1.25rem, 4vw, 4rem) 4rem;
    }
    .press-block {
      padding: clamp(2.5rem, 4vw, 4rem) 0;
      border-bottom: 1px solid rgba(215, 196, 188, 0.10);
      scroll-margin-top: 100px;
    }
    .press-block:last-of-type { border-bottom: none; }
    .press-block__head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 1.5rem;
      margin-bottom: 2rem;
      flex-wrap: wrap;
    }
    .press-block__name {
      font-family: var(--display);
      font-weight: 400;
      font-size: clamp(1.6rem, 2.8vw, 2.4rem);
      line-height: 1.1;
      letter-spacing: .01em;
      color: var(--rose-deep);
      margin: 0 0 .5rem;
    }
    .press-block__back {
      display: inline-flex;
      align-items: center;
      gap: .4rem;
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--rose-muted);
      text-decoration: none;
      transition: color .2s ease;
    }
    .press-block__back:hover { color: var(--rose-deep); }
    .press-block__count {
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--rose-muted);
    }
    .press-block__grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 1rem;
    }
    .press-item {
      position: relative;
      display: block;
      padding: 1.25rem 2.25rem 1.25rem 1.25rem;
      background: rgba(255, 255, 255, 0.015);
      border: 1px solid rgba(215, 196, 188, 0.08);
      border-bottom: 1px solid rgba(52, 55, 226, 0.3);
      text-decoration: none;
      transition: border-color .25s ease, background .25s ease, transform .25s ease;
    }
    .press-item:hover {
      background: rgba(255, 255, 255, 0.03);
      border-bottom-color: rgba(52, 55, 226, 0.65);
    }
    .press-item__publisher {
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--rose-muted);
      margin-bottom: .55rem;
    }
    .press-item__title {
      font-family: var(--display);
      font-size: 1rem;
      line-height: 1.35;
      color: var(--rose-deep);
      letter-spacing: .005em;
    }
    .press-item__arr {
      position: absolute;
      top: 1.25rem;
      right: 1.25rem;
      color: var(--rose-muted);
      transition: transform .25s ease, color .25s ease;
    }
    .press-item:hover .press-item__arr {
      transform: translateX(3px);
      color: var(--rose-deep);
    }

    /* ===== Contact page ===== */
    .contact-section {
      max-width: 110rem;
      margin: 0 auto;
      padding: 4rem clamp(1.25rem, 4vw, 4rem) 6rem;
    }
    .contact-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: clamp(1.5rem, 3vw, 3rem);
    }
    .contact-block {
      padding: 2rem 0;
      border-top: 1px solid rgba(215, 196, 188, 0.10);
    }
    .contact-block__label {
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--rose-muted);
      margin-bottom: .9rem;
    }
    .contact-block__value {
      font-family: var(--display);
      font-size: clamp(1.1rem, 1.8vw, 1.5rem);
      color: var(--rose-deep);
      line-height: 1.4;
    }
    .contact-block__value a {
      color: var(--rose-deep);
      text-decoration: none;
      border-bottom: 1px solid rgba(52, 55, 226, 0.4);
      transition: border-color .25s ease, color .25s ease;
    }
    .contact-block__value a:hover {
      color: #fff;
      border-bottom-color: #3437e2;
    }
    .contact-block__note {
      font-family: var(--sans);
      font-size: .82rem;
      color: var(--rose-muted);
      margin-top: .65rem;
      letter-spacing: .02em;
      line-height: 1.55;
    }

    /* Active nav state shared by all sub-pages */
    .nav__menu a.is-current {
      opacity: 1;
    }

    /* ===== Contact form ===== */
    .contact-form {
      max-width: 720px;
      margin: 0;
      display: grid;
      gap: 2.25rem;
    }
    .form-row {
      display: grid;
      gap: .55rem;
    }
    .form-label {
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--rose-muted);
    }
    .form-opt {
      font-size: .58rem;
      letter-spacing: .15em;
      color: rgba(183, 171, 171, .55);
      margin-left: .5rem;
      text-transform: lowercase;
    }
    .form-input {
      background: transparent;
      border: none;
      border-bottom: 1px solid rgba(215, 196, 188, 0.20);
      padding: .9rem 0 .8rem;
      font-family: var(--sans);
      font-size: 1.05rem;
      color: var(--rose-deep);
      width: 100%;
      transition: border-color .25s ease;
      outline: none;
      border-radius: 0;
      -webkit-appearance: none;
      appearance: none;
    }
    .form-input::placeholder {
      color: var(--rose-muted);
      opacity: .55;
    }
    .form-input:hover {
      border-bottom-color: rgba(215, 196, 188, 0.40);
    }
    .form-input:focus {
      border-bottom-color: var(--rule);
      box-shadow: 0 6px 14px -8px rgba(52, 55, 226, 0.5);
    }
    .form-select {
      cursor: pointer;
      background-image: linear-gradient(45deg, transparent 50%, var(--rose-muted) 50%),
                        linear-gradient(135deg, var(--rose-muted) 50%, transparent 50%);
      background-position: calc(100% - 16px) 22px, calc(100% - 10px) 22px;
      background-size: 6px 6px;
      background-repeat: no-repeat;
      padding-right: 2rem;
    }
    .form-select option {
      background: #0a0a0a;
      color: var(--rose-deep);
    }
    .form-textarea {
      resize: vertical;
      min-height: 8rem;
      line-height: 1.55;
      padding-top: 1rem;
    }
    .form-row--submit {
      grid-template-columns: 1fr;
      gap: .75rem;
      margin-top: 1rem;
    }
    .form-submit {
      justify-self: start;
      display: inline-flex;
      align-items: center;
      gap: .85rem;
      background: transparent;
      border: 1px solid rgba(52, 55, 226, 0.55);
      color: var(--rose-deep);
      font-family: var(--sans);
      font-size: .8rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      padding: 1rem 1.75rem;
      cursor: pointer;
      transition: background .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease;
    }
    .form-submit:hover {
      background: rgba(52, 55, 226, 0.12);
      border-color: rgba(52, 55, 226, 0.85);
      color: #fff;
      box-shadow: 0 8px 22px -8px rgba(52, 55, 226, 0.6),
                  0 0 0 1px rgba(255, 0, 221, 0.05);
    }
    .form-submit .arr { transition: transform .25s ease; }
    .form-submit:hover .arr { transform: translateX(4px); }
    .form-note {
      font-family: var(--sans);
      font-size: .82rem;
      color: var(--rose-muted);
      line-height: 1.55;
    }
    @media (max-width: 560px) {
      .contact-form { gap: 1.75rem; }
      .form-input { font-size: 1rem; }
    }

    /* ===== Ambience canvas layer ===== */
    .ambience {
      position: fixed;
      top: 0;
      left: 0;
      width: 100vw;
      height: 100vh;
      pointer-events: none;
      z-index: 0;
    }
    /* Make sure content layers above the ambience canvas */
    .subhero, .project-list, .press-list, .contact-section, .proj-foot, .thanks-actions {
      position: relative;
      z-index: 1;
    }
    @media (prefers-reduced-motion: reduce) {
      .ambience { display: none; }
    }

    /* ===== Thank-you page ===== */
    .subhero--center {
      text-align: center;
      padding-top: 12rem;
      padding-bottom: 8rem;
    }
    .subhero--center .subhero__title,
    .subhero--center .subhero__body {
      margin-left: auto;
      margin-right: auto;
    }
    .thanks-actions {
      display: flex;
      gap: 2rem;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      margin-top: 2.5rem;
    }
    .thanks-back {
      font-family: var(--sans);
      font-size: .72rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--rose-muted);
      text-decoration: none;
      border-bottom: 1px solid transparent;
      padding-bottom: .35rem;
      transition: color .2s ease, border-color .2s ease;
    }
    .thanks-back:hover {
      color: var(--rose-deep);
      border-bottom-color: rgba(215, 196, 188, .3);
    }

    /* ===== Contact point-of-contact block ===== */
    .contact-person {
      max-width: 720px;
      margin: 0 0 3.5rem;
      padding-bottom: 2.5rem;
      border-bottom: 1px solid rgba(215, 196, 188, 0.10);
    }
    .contact-person__label {
      font-family: var(--sans);
      font-size: .68rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--rose-muted);
      margin-bottom: 1.25rem;
    }
    .contact-person__name {
      font-family: var(--display);
      font-weight: 500;
      font-size: clamp(1.6rem, 3vw, 2.4rem);
      line-height: 1.15;
      letter-spacing: .01em;
      color: var(--rose-deep);
      margin: 0 0 .65rem;
    }
    .contact-person__creds {
      font-family: var(--display);
      font-weight: 400;
      color: var(--rose-muted);
      font-size: .68em;
      letter-spacing: .04em;
    }
    .contact-person__role {
      font-family: var(--sans);
      font-size: .78rem;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--rose-muted);
      line-height: 1.6;
    }


    /* ===== Ambient glow system =====
       Each project has its own colour palette via custom properties.
       Both the project section (projects.html) and the press block
       (press.html) for the same project pick up the same colours,
       so the show's visual identity carries across the site. */

    @keyframes ppBreathe {
      0%, 100% { opacity: 0.55; }
      50%      { opacity: 1; }
    }

    /* ---------- Project sections ---------- */
    .project-item {
      position: relative;
      overflow: hidden;
    }
    .project-item > * {
      position: relative;
      z-index: 1;
    }
    .project-item::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 55% 50% at var(--glow-pos1, 25% 30%), var(--glow-c1, rgba(200,80,180,0.08)), transparent 65%),
        radial-gradient(ellipse 55% 45% at var(--glow-pos2, 78% 72%), var(--glow-c2, rgba(52,55,226,0.06)), transparent 65%);
      pointer-events: none;
      z-index: 0;
      animation: ppBreathe var(--glow-dur, 16s) ease-in-out infinite var(--glow-delay, 0s);
    }

    /* ---------- Press blocks ---------- */
    .press-block {
      position: relative;
      overflow: hidden;
    }
    .press-block > * {
      position: relative;
      z-index: 1;
    }
    .press-block::before {
      content: '';
      position: absolute;
      inset: 5% 0;
      background:
        radial-gradient(ellipse 55% 50% at var(--glow-pos1, 25% 30%), var(--glow-c1, rgba(200,80,180,0.07)), transparent 65%),
        radial-gradient(ellipse 55% 45% at var(--glow-pos2, 78% 72%), var(--glow-c2, rgba(52,55,226,0.05)), transparent 65%);
      pointer-events: none;
      z-index: 0;
      animation: ppBreathe var(--glow-dur, 16s) ease-in-out infinite var(--glow-delay, 0s);
    }

    /* ---------- Per-project colour tokens (shared by project + press) ---------- */

    /* Disney: The Castle - royal gold + warm magenta */
    #disney-the-castle, #press-disney-the-castle {
      --glow-c1: rgba(220, 175, 90, 0.11);
      --glow-c2: rgba(210, 120, 200, 0.07);
      --glow-pos1: 25% 28%; --glow-pos2: 78% 75%;
      --glow-dur: 14s; --glow-delay: 0s;
    }

    /* The Illusionists - deep purple + violet */
    #the-illusionists, #press-the-illusionists {
      --glow-c1: rgba(155, 90, 220, 0.11);
      --glow-c2: rgba(105, 70, 200, 0.08);
      --glow-pos1: 30% 25%; --glow-pos2: 72% 75%;
      --glow-dur: 16s; --glow-delay: -3s;
    }

    /* Cirque Le Noir - deep red + dark plum (the dark side of cirque) */
    #cirque-le-noir, #press-cirque-le-noir {
      --glow-c1: rgba(180,  55,  80, 0.11);
      --glow-c2: rgba( 90,  35, 110, 0.09);
      --glow-pos1: 35% 35%; --glow-pos2: 70% 65%;
      --glow-dur: 18s; --glow-delay: -2s;
    }

    /* Now You See Me Live - electric blue + cyan */
    #now-you-see-me-live, #press-now-you-see-me-live {
      --glow-c1: rgba( 70, 130, 235, 0.11);
      --glow-c2: rgba( 60, 195, 215, 0.08);
      --glow-pos1: 28% 30%; --glow-pos2: 75% 70%;
      --glow-dur: 12s; --glow-delay: -5s;
    }

    /* Circus 1903 - vintage gold + sepia */
    #circus-1903, #press-circus-1903 {
      --glow-c1: rgba(205, 155,  85, 0.10);
      --glow-c2: rgba(180, 120,  60, 0.08);
      --glow-pos1: 32% 35%; --glow-pos2: 74% 68%;
      --glow-dur: 20s; --glow-delay: -1s;
    }

    /* The Unbelievables - rich gold + warm red */
    #the-unbeliviables, #press-the-unbeliviables {
      --glow-c1: rgba(220, 170,  85, 0.11);
      --glow-c2: rgba(200, 105,  95, 0.07);
      --glow-pos1: 25% 28%; --glow-pos2: 78% 72%;
      --glow-dur: 15s; --glow-delay: -4s;
    }

    /* The Illusionists 2.0 - violet + magenta */
    #the-illusionists-20, #press-the-illusionists-20 {
      --glow-c1: rgba(170,  90, 230, 0.11);
      --glow-c2: rgba(130,  80, 220, 0.07);
      --glow-pos1: 30% 32%; --glow-pos2: 72% 68%;
      --glow-dur: 17s; --glow-delay: -6s;
    }

    /* The Dr. Seuss Experience - bright cyan + lime */
    #dr-seuss-ex, #press-dr-seuss-ex {
      --glow-c1: rgba( 80, 200, 230, 0.10);
      --glow-c2: rgba(170, 215, 100, 0.07);
      --glow-pos1: 27% 30%; --glow-pos2: 76% 72%;
      --glow-dur: 13s; --glow-delay: -2s;
    }

    /* The Nightgarden - hot pink + purple (botanical garden lights at night) */
    #the-night-garden, #press-the-night-garden {
      --glow-c1: rgba(225, 105, 200, 0.11);
      --glow-c2: rgba(160,  85, 220, 0.07);
      --glow-pos1: 33% 30%; --glow-pos2: 70% 70%;
      --glow-dur: 19s; --glow-delay: -7s;
    }

    /* World of Barbie - hot pink + bubblegum */
    #world-of-barbie, #press-world-of-barbie {
      --glow-c1: rgba(235, 100, 180, 0.11);
      --glow-c2: rgba(245, 135, 205, 0.08);
      --glow-pos1: 26% 32%; --glow-pos2: 74% 68%;
      --glow-dur: 14s; --glow-delay: -3s;
    }

    /* Luminasia - warm lantern orange + amber */
    #luminasia, #press-luminasia {
      --glow-c1: rgba(235, 140,  60, 0.11);
      --glow-c2: rgba(220, 100,  80, 0.07);
      --glow-pos1: 28% 30%; --glow-pos2: 76% 70%;
      --glow-dur: 16s; --glow-delay: -5s;
    }

    /* ---------- Subhero (page-specific glow) ---------- */
    .subhero {
      overflow: hidden;
    }
    .subhero > * {
      position: relative;
      z-index: 1;
    }
    .subhero::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      animation: ppBreathe 14s ease-in-out infinite;
    }
    /* Default: warm rose/magenta */
    .subhero::before {
      background:
        radial-gradient(ellipse 65% 55% at 50% 10%, rgba(215, 145, 200, 0.09), transparent 65%),
        radial-gradient(ellipse 55% 45% at 50% 92%, rgba( 52,  55, 226, 0.06), transparent 65%);
    }
    /* Projects page: dramatic magenta over blue */
    .page-projects .subhero::before {
      background:
        radial-gradient(ellipse 65% 55% at 50% 5%,  rgba(200,  80, 180, 0.10), transparent 65%),
        radial-gradient(ellipse 55% 45% at 50% 95%, rgba( 52,  55, 226, 0.07), transparent 65%);
      animation-duration: 13s;
    }
    /* Press page: cool silver / blue */
    .page-press .subhero::before {
      background:
        radial-gradient(ellipse 65% 55% at 50% 10%, rgba(170, 195, 230, 0.08), transparent 65%),
        radial-gradient(ellipse 55% 45% at 50% 90%, rgba(100, 120, 220, 0.06), transparent 65%);
      animation-duration: 17s;
    }
    /* Contact page: inviting warm magenta + soft blue */
    .page-contact .subhero::before {
      background:
        radial-gradient(ellipse 70% 60% at 50% 8%,  rgba(225, 120, 195, 0.10), transparent 65%),
        radial-gradient(ellipse 55% 45% at 50% 95%, rgba( 80, 100, 230, 0.06), transparent 65%);
      animation-duration: 12s;
    }
    /* Thank-you page: warm celebratory gold */
    .page-thanks .subhero::before {
      background:
        radial-gradient(ellipse 70% 60% at 50% 50%, rgba(220, 175,  90, 0.10), transparent 65%),
        radial-gradient(ellipse 50% 40% at 50% 90%, rgba(200, 130, 200, 0.06), transparent 65%);
      animation-duration: 16s;
    }

    /* ---------- Contact section: corner glows ---------- */
    .contact-section {
      overflow: hidden;
    }
    .contact-section > * {
      position: relative;
      z-index: 1;
    }
    .contact-section::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 55% 50% at 12% 18%, rgba(225, 120, 195, 0.09), transparent 65%),
        radial-gradient(ellipse 60% 50% at 88% 85%, rgba( 70, 100, 230, 0.07), transparent 65%);
      pointer-events: none;
      z-index: 0;
      animation: ppBreathe 11s ease-in-out infinite -3s;
    }

    @media (prefers-reduced-motion: reduce) {
      .project-item::before,
      .press-block::before,
      .subhero::before,
      .contact-section::before {
        animation: none;
        opacity: 0.8;
      }
    }