
/* Lime over the film; green and white close the page. */
.cinema-content h1 span { color: #c5f464; -webkit-text-stroke: 0; text-shadow: 0 2px 16px rgba(0,0,0,.45); }
.site-footer { --ink: #fff; --muted: #fff; --accent: #c5f464; --line: rgba(255,255,255,.26); background: #397d28; color: #fff; }
.site-footer .brand { background: #fff; border-radius: 9px; }
.site-footer :is(a,button):focus-visible { outline-color: #c5f464; }

/* Two small companions carry the enquiry into view. */
body.project-open { overflow: hidden; }
.project-dialog { border: 0; padding: 0; background: transparent; color: #21432c; width: min(680px,calc(100vw - 290px)); max-width: none; max-height: calc(100svh - 52px); overflow: visible; }
.project-dialog::backdrop { background: rgba(10,31,19,.64); backdrop-filter: blur(8px); }
.project-scene { position: relative; }
.project-panel { position: relative; padding: 36px 40px 32px; background: #fff; border: 1px solid #e2edda; border-radius: 24px; box-shadow: 0 30px 90px rgba(8,31,17,.3); max-height: calc(100svh - 52px); overflow-y: auto; overscroll-behavior: contain; }
.project-close { position: absolute; top: 18px; right: 18px; width: 40px; height: 40px; border: 1px solid #d6e6cd; background: #f5faf2; color: #397d28; border-radius: 50%; cursor: pointer; font-size: 26px; line-height: 1; }
.project-close:hover { background: #e6f2db; }
.project-kicker { font-size: 11px; text-transform: uppercase; letter-spacing: .11em; color: #397d28; display: flex; align-items: center; gap: 9px; margin: 0 40px 13px 0; }
.project-kicker > span { width: 6px; height: 6px; background: #397d28; border-radius: 50%; }
.project-panel h2 { font-size: clamp(34px,4vw,51px); color: #21432c; line-height: 1.1; }
.project-panel h2 > span { color: #397d28; }
#project-dialog-intro { color: #536650; font-size: 15px; line-height: 1.6; margin-top: 10px; }
#project-form { margin-top: 25px; }
.project-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 17px 20px; }
.project-fields > label { font-size: 13px; line-height: 1.5; font-weight: 500; color: #21432c; }
.field-optional { color: #536650; font-size: 11px; }
.project-fields :is(input,select,textarea) { display: block; width: 100%; font: inherit; font-weight: 400; color: #21432c; border: 1px solid #b8cdb0; border-radius: 8px; padding: 11px 12px; min-height: 46px; margin-top: 6px; background: #fbfdf9; }
.project-fields :is(input,textarea)::placeholder { color: #63775e; opacity: 1; }
.project-fields :is(input,select,textarea):focus { outline: 2px solid #397d28; outline-offset: 2px; border-color: #397d28; }
.project-fields textarea { resize: vertical; max-height: 240px; min-height: 96px; }
.project-message { grid-column: 1/-1; }
.form-honey { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.project-privacy { display: flex; align-items: flex-start; gap: 10px; margin-top: 17px; font-size: 11px; line-height: 1.6; color: #536650; }
.project-privacy input { width: 16px; height: 16px; flex-shrink: 0; margin: 2px 0 0; accent-color: #397d28; }
.project-privacy a { text-decoration: underline; text-underline-offset: 2px; color: #397d28; }
.project-submit-row { margin-top: 20px; display: flex; align-items: center; gap: 20px; }
.project-submit-row .button { min-height: 48px; padding: 13px 18px; gap: 24px; border-radius: 7px; font-size: 13px; }
.project-submit-row > span { color: #536650; font-size: 11px; }
.project-submit-row .button:disabled { cursor: wait; opacity: .7; transform: none; }
.project-status { color: #853d20; background: #fff5ed; border-radius: 7px; padding: 12px; font-size: 13px; line-height: 1.6; margin-top: 16px; }
.project-robot { position: absolute; width: 145px; bottom: 22px; pointer-events: none; filter: drop-shadow(0 18px 22px rgba(8,31,17,.22)); }
.robot-left { left: -133px; transform: rotate(-9deg); }
.robot-right { right: -133px; transform: rotate(9deg); }
.robot-right svg { transform: scaleX(-1); }
.robot-float svg { display: block; width: 100%; }
.project-spark { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #c5f464; box-shadow: 0 0 18px #c5f464; pointer-events: none; }
.spark-one { left: -50px; top: 80px; }
.spark-two { right: -65px; top: 135px; width: 4px; height: 4px; }
.project-success { text-align: center; padding: 36px 0 14px; }
.success-orbit { display: grid; place-items: center; margin: 0 auto 24px; width: 76px; height: 76px; border: 1px solid #c4ddaf; border-radius: 50%; background: #f5faf2; color: #397d28; font-size: 32px; }
.project-success h3 { color: #21432c; font-size: 28px; }
.project-success p { color: #536650; margin-top: 14px; font-size: 15px; }
.project-done { color: #397d28; margin-top: 25px; border: 0; background: transparent; cursor: pointer; }
@media (prefers-reduced-motion: no-preference) {
  .project-dialog[open] .project-panel { animation: panel-arrive 1s cubic-bezier(.2,.65,.25,1) both; }
  .project-dialog[open] .project-robot { animation: robot-arrive .95s cubic-bezier(.18,.65,.3,1) both; }
  .project-dialog[open] .robot-float { animation: companion-hover 4s ease-in-out 1s infinite; }
  .project-dialog[open]::backdrop { animation: backdrop-arrive .45s ease both; }
  .project-dialog[open] .project-spark { animation: companion-hover 5s ease-in-out 1s infinite; }
  @keyframes panel-arrive { 0% { opacity: 0; transform: translateY(65vh) scale(.9); } 25% { opacity: 1; } 78% { transform: translateY(-8px) scale(1); } 100% { transform: none; } }
  @keyframes robot-arrive { 0% { opacity: 0; translate: 0 75vh; } 15% { opacity: 1; } 78% { translate: 0 -10px; } 100% { translate: 0 0; } }
  @keyframes companion-hover { 0%,100% { translate: 0 0; } 50% { translate: 0 -9px; } }
  @keyframes backdrop-arrive { from { opacity: 0; } to { opacity: 1; } }
}
@media(max-width:900px) {
  .project-dialog { width: min(600px,calc(100vw - 44px)); max-height: calc(100svh - 80px); }
  .project-panel { padding: 55px 30px 28px; max-height: calc(100svh - 80px); }
  .project-robot { width: 86px; bottom: auto; top: -42px; z-index: 1; }
  .robot-left { left: 8px; } .robot-right { right: 8px; }
  .project-spark { display: none; }
  .project-kicker { margin-right: 0; }
  .project-close { top: 14px; right: 105px; width: 35px; height: 35px; }
}
@media(max-width:520px) {
  .project-dialog { width: calc(100vw - 28px); }
  .project-panel { padding: 66px 22px 25px; border-radius: 18px; }
  .project-fields { grid-template-columns: 1fr; gap: 14px; }
  .project-submit-row { flex-wrap: wrap; gap: 12px; }
  .project-submit-row .button { width: 100%; justify-content: space-between; }
  .project-kicker { font-size: 9px; letter-spacing: .07em; }
  .project-panel h2 { font-size: 37px; }
  .project-fields :is(input,select,textarea) { font-size: 16px; }
}
