:root {
  --rose:#a9294b;
  --rose-dark:#7d1e38;
  --pink:#ffe9ef;
  --ink:#302c32;
  --muted:#6c6269;
  --surface:#f8f6f7;
  --line:#d9cbd0;
  --blue:#0b6096;
  --radius:1.8rem
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:2rem
}
body {
  margin:0;
  background:var(--surface);
  color:var(--ink);
  font-family:Heebo,Arial,sans-serif;
  font-size:1rem;
  line-height:1.75;
  -webkit-font-smoothing:antialiased
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  line-height:1.25;
  text-wrap:balance
}
a {
  color:var(--rose);
  text-underline-offset:4px
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
a,button {
  touch-action:manipulation
}
input,select,textarea {
  min-width:0;
  width:100%;
  color:var(--ink);
  background:white;
  border:1px solid #aa98a0;
  border-radius:.8rem;
  padding:.7rem .9rem;
  min-height:48px
}
input::placeholder,textarea::placeholder {
  color:#766b73;
  opacity:1
}
textarea {
  resize:vertical
}
input:focus,select:focus,textarea:focus {
  border-color:var(--rose)
}
:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:4px
}
[hidden] {
  display:none!important
}
img {
  display:block;
  max-width:100%
}
fieldset {
  border:0;
  padding:0;
  margin:0
}
legend {
  padding:0;
  margin-bottom:.65rem;
  font-weight:600
}
label {
  display:block;
  font-weight:600;
  margin-bottom:.4rem
}
summary {
  cursor:pointer;
  min-height:48px;
  padding:.7rem 0;
  font-weight:600
}
.wrap {
  width:min(1160px,calc(100% - 5rem));
  margin-inline:auto
}
.site-header {
  width:min(1280px,calc(100% - 5rem));
  margin:auto;
  min-height:100px;
  display:flex;
  justify-content:space-between;
  gap:1.5rem;
  align-items:center
}
.brand {
  display:inline-flex;
  gap:.65rem;
  align-items:center;
  font-weight:800;
  font-size:1.5rem;
  line-height:1.25;
  color:var(--rose-dark);
  text-decoration:none
}
.brand-caption {
  display:block;
  font-weight:400;
  font-size:.75rem;
  color:var(--muted);
  margin-top:.2rem
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:2rem
}
.archive-nav {
  font-size:.95rem;
  font-weight:500;
  color:var(--ink);
  text-decoration:none
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:1.4rem;
  padding:.85rem 1.4rem;
  min-height:48px;
  border-radius:.8rem;
  font-weight:700;
  text-decoration:none;
  border:0;
  font-size:1rem;
  line-height:1.5;
  transition:background .18s,box-shadow .18s
}
.button:hover {
  box-shadow:0 5px 15px #7d1e3814
}
.button-primary {
  background:linear-gradient(125deg,var(--rose-dark),var(--rose));
  color:white
}
.button-primary:hover {
  background:var(--rose-dark)
}
.button-outline {
  border:1px solid var(--line);
  background:transparent;
  color:var(--rose-dark)
}
.button-small {
  padding:.55rem 1rem;
  font-size:.9rem
}
.button:disabled {
  opacity:.65;
  cursor:wait
}
.request-layout {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:clamp(2rem,6vw,6rem);
  align-items:start;
  padding-top:2.6rem;
  padding-bottom:5rem
}
.intro {
  padding-top:2rem
}
.eyebrow {
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.025em;
  color:var(--rose);
  margin-bottom:1rem
}
.small-spark {
  font-size:1.2rem;
  margin-inline-end:.4rem
}
h1 {
  font-size:clamp(2.9rem,4.8vw,4.5rem);
  font-weight:800;
  letter-spacing:-.055em;
  line-height:1.13;
  margin-bottom:1.5rem
}
h1 span {
  color:var(--rose)
}
.intro-copy {
  font-size:1.15rem;
  max-width:26rem;
  line-height:1.9
}
.intro-note {
  color:var(--muted);
  margin-top:.7rem;
  max-width:25rem
}
.intro-feature {
  display:flex;
  align-items:center;
  gap:1.3rem;
  margin-top:3rem;
  padding:1.2rem 0
}
.intro-feature strong {
  display:block;
  font-size:1rem
}
.intro-feature a {
  font-size:.875rem
}
.mini-posters {
  display:flex;
  direction:ltr;
  padding-inline-start:.3rem;
  flex-shrink:0
}
.mini-posters img {
  width:56px;
  height:78px;
  object-fit:cover;
  border-radius:.55rem;
  border:3px solid var(--surface);
  margin-left:-9px;
  transform:rotate(-7deg)
}
.mini-posters img:nth-child(2) {
  transform:translateY(-6px) rotate(2deg)
}
.mini-posters img:nth-child(3) {
  transform:rotate(8deg)
}
.intro-foot {
  display:flex;
  gap:1.3rem;
  margin-top:1.4rem;
  font-size:.875rem;
  color:var(--muted)
}
.intro-foot span::before {
  content:'✓';
  color:var(--rose);
  font-weight:700;
  margin-inline-end:.45rem
}
.form-card {
  background:white;
  padding:2rem;
  border-radius:var(--radius);
  box-shadow:0 12px 48px #63213909
}
.form-heading {
  display:flex;
  gap:1rem;
  align-items:center;
  justify-content:space-between
}
.form-heading h2 {
  font-size:1.4rem
}
.pill {
  font-size:.75rem;
  font-weight:600;
  display:inline-block;
  padding:.25rem .65rem;
  background:#f7edf0;
  color:var(--rose-dark);
  border-radius:2rem;
  white-space:nowrap
}
.form-lead {
  margin:.55rem 0 1.4rem
}
.field {
  margin-bottom:.75rem;
  min-width:0
}
.field label {
  font-size:.875rem
}
.required {
  font-weight:400;
  color:var(--muted);
  font-size:.8rem
}
.name-input {
  font-size:1.3rem;
  padding:.75rem 1rem;
  background:#fdfbfc
}
.field-hint {
  color:var(--muted);
  font-size:.875rem;
  line-height:1.6
}
.field .field-hint {
  margin-top:.4rem
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:.7rem;
  margin-top:1rem
}
.contact-grid .field {
  margin-bottom:0
}
.contact-hint {
  margin-top:.4rem
}
.extra-details {
  margin-top:1.1rem
}
.extra-details summary {
  font-size:.9rem
}
.extra-details summary span {
  font-size:.8rem;
  color:var(--muted);
  font-weight:400;
  margin-inline-start:.4rem
}
.details-body {
  display:grid;
  gap:1rem;
  padding-top:.8rem
}
.choice-group {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem
}
.choice {
  position:relative;
  font-size:.875rem;
  font-weight:400;
  margin:0;
  cursor:pointer
}
.choice input {
  position:absolute;
  opacity:0;
  width:1px;
  min-height:0
}
.choice span {
  display:block;
  border:1px solid #bba7af;
  border-radius:2rem;
  padding:.5rem .8rem;
  min-height:44px
}
.choice input:checked+span {
  color:var(--rose-dark);
  border-color:var(--rose);
  background:var(--pink)
}
.choice input:checked+span::before {
  content:'✓ ';
  font-weight:bold
}
.choice input:focus-visible+span {
  outline:3px solid var(--blue);
  outline-offset:3px
}
.check-row {
  display:flex;
  gap:.65rem;
  align-items:flex-start;
  font-weight:400;
  font-size:.875rem;
  line-height:1.6;
  cursor:pointer
}
.check-row input {
  accent-color:var(--rose);
  width:19px;
  height:19px;
  min-height:19px;
  flex:0 0 19px;
  margin-top:.2rem
}
.check-row small {
  display:block;
  font-size:.8rem;
  color:var(--muted);
  margin-top:.2rem
}
.future-check {
  padding:.85rem;
  background:#f8f6f7;
  border-radius:.8rem;
  margin-top:1.1rem
}
.consent {
  margin-top:1rem;
  font-size:.8rem;
  color:#5b5158
}
.submit-button {
  width:100%;
  justify-content:space-between;
  margin-top:1rem
}
.submit-note {
  text-align:center;
  font-size:.75rem;
  line-height:1.65;
  color:var(--muted);
  margin-top:.7rem
}
.field-error,.form-error {
  color:#9a1632;
  font-size:.875rem;
  margin-top:.4rem
}
.form-error {
  background:#fff0f2;
  padding:.75rem;
  border-radius:.6rem;
  margin-top:1rem
}
[aria-invalid=true] {
  border-color:#9a1632
}
.existing-video {
  padding:.85rem;
  background:#edf5fa;
  border-radius:.8rem;
  font-size:.875rem;
  color:#17425d;
  margin-top:.8rem
}
.existing-video a {
  color:#075583;
  font-weight:600
}
.existing-video p {
  margin-top:.2rem
}
.archive-section {
  padding:2.7rem 0 3.5rem
}
.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:1.8rem
}
.section-heading h2 {
  font-size:2.15rem;
  letter-spacing:-.03em
}
.section-heading p:not(.eyebrow) {
  color:var(--muted);
  margin-top:.65rem
}
.section-heading .eyebrow {
  margin-bottom:.65rem
}
.archive-search {
  flex:0 0 240px
}
.archive-search label {
  font-size:.875rem
}
.archive-search input {
  background:transparent
}
.reel-grid {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1.1rem
}
.reel-card {
  min-width:0
}
.reel-link {
  display:block;
  text-decoration:none;
  color:var(--ink)
}
.reel-image {
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  border-radius:1.1rem;
  background:#efe8eb
}
.reel-image>img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s
}
.reel-link:hover img {
  transform:scale(1.035)
}
.reel-play {
  position:absolute;
  bottom:.65rem;
  inset-inline-end:.65rem;
  display:grid;
  place-items:center;
  background:white;
  color:var(--rose-dark);
  border-radius:50%;
  width:36px;
  height:36px;
  font-size:1.1rem;
  padding-right:2px;
  box-shadow:0 3px 15px #0002
}
.reel-name {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:.65rem;
  font-size:1rem;
  font-weight:600
}
.reel-name span {
  font-size:.8rem;
  font-weight:400;
  color:var(--muted)
}
.archive-bottom {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
  margin-top:1.5rem
}
.archive-empty {
  padding:2rem;
  background:white;
  border-radius:1rem
}
.app-banner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  background:#efeaf0;
  padding:2.5rem 3rem;
  border-radius:var(--radius);
  margin-block:1rem 4.5rem
}
.app-banner .eyebrow {
  margin-bottom:.5rem
}
.app-banner h2 {
  font-size:1.8rem;
  letter-spacing:-.03em
}
.app-banner p:not(.eyebrow) {
  color:#615565;
  margin-top:.55rem
}
.app-banner .button {
  flex-shrink:0
}
.coming-section {
  padding-bottom:4rem
}
.coming-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem
}
.coming-card {
  padding:2rem;
  background:white;
  border-radius:var(--radius)
}
.coming-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:1.5rem
}
.line-icon {
  font-size:2rem;
  color:var(--rose);
  line-height:1
}
.coming-card h3 {
  font-size:1.5rem;
  margin-bottom:.8rem
}
.coming-card p {
  color:var(--muted);
  max-width:27rem
}
.coming-caption {
  display:block;
  color:var(--muted);
  font-size:.875rem;
  margin-top:1.3rem
}
.personal-card {
  background:linear-gradient(120deg,#6a1730,#a9294b);
  color:white
}
.personal-card .line-icon,.personal-card .text-link {
  color:white
}
.personal-card .pill {
  background:#ffffff22;
  color:white
}
.personal-card p {
  color:#f4dce4
}
.text-link {
  display:inline-block;
  font-weight:600;
  font-size:.9rem;
  margin-top:1.3rem
}
.privacy-note {
  padding-bottom:2.2rem;
  max-width:800px
}
.privacy-note h2 {
  font-size:1rem;
  margin-bottom:.6rem
}
.privacy-note p {
  font-size:.875rem;
  color:var(--muted)
}
.site-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-block:1.5rem 2rem
}
.site-footer p,.site-footer>a:last-child {
  font-size:.875rem;
  color:var(--muted)
}
.success-panel {
  text-align:center;
  padding-block:1.5rem
}
.success-mark {
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  margin:0 auto 1.5rem;
  border-radius:50%;
  background:#f5e6ec;
  color:var(--rose);
  font-size:2rem
}
.success-panel h2 {
  font-size:2rem;
  margin-bottom:1rem
}
.success-panel>p:not(.eyebrow) {
  margin-top:1rem
}
.success-actions {
  display:grid;
  gap:.8rem;
  margin-top:1.8rem
}
.success-interest {
  padding:.8rem;
  border-radius:.8rem;
  background:#f9f2f5;
  font-size:.875rem
}
.success-actions .text-link {
  margin:.2rem 0
}
dialog {
  color:var(--ink);
  border:0;
  border-radius:1.2rem;
  width:min(470px,calc(100% - 2rem));
  max-height:90dvh;
  padding:1.2rem;
  overscroll-behavior:contain
}
dialog::backdrop {
  background:#20131acc;
  backdrop-filter:blur(5px)
}
.dialog-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem
}
.dialog-heading h2 {
  font-size:1.3rem
}
.dialog-close {
  border:0;
  border-radius:50%;
  background:#f5edf0;
  color:var(--ink);
  width:44px;
  height:44px;
  font-size:1.8rem
}
.dialog-heading+p {
  margin:.6rem 0
}
#video-frame iframe {
  border:0;
  display:block;
  width:100%;
  height:min(560px,60dvh);
  background:#faf7f8;
  border-radius:.6rem
}
#video-external {
  display:block;
  margin-top:1rem;
  font-size:.875rem;
  text-align:center
}
.skip-link {
  position:fixed;
  top:-200px;
  z-index:100;
  background:white;
  padding:1rem
}
.skip-link:focus {
  top:1rem;
  right:1rem
}
.sr-only,.honey {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
@media(min-width:1400px) {
  .request-layout {
    padding-top:4rem
  }
  .intro {
    padding-top:3rem
  }
}
@media(max-width:1000px) {
  .wrap,.site-header {
    width:calc(100% - 3rem)
  }
  .request-layout {
    gap:2rem
  }
  .form-card {
    padding:1.5rem
  }
  .reel-grid {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .reel-image {
    aspect-ratio:4/5
  }
  .app-banner {
    padding:2rem
  }
  .intro-feature {
    gap:.8rem
  }
  .mini-posters img {
    width:44px;
    height:64px
  }
}
@media(max-width:720px) {
  .wrap,.site-header {
    width:calc(100% - 2rem)
  }
  .site-header {
    min-height:80px
  }
  .brand {
    font-size:1.25rem
  }
  .brand-caption {
    font-size:.75rem
  }
  .site-header nav {
    gap:.8rem
  }
  .archive-nav {
    display:none
  }
  .request-layout {
    grid-template-columns:1fr;
    gap:1.5rem;
    padding-top:1rem;
    padding-bottom:1.8rem
  }
  .intro {
    padding:.25rem .5rem 0
  }
  .intro .eyebrow {
    margin-bottom:.6rem
  }
  h1 {
    font-size:2.65rem;
    line-height:1.12;
    margin-bottom:.8rem
  }
  h1 br {
    display:none
  }
  h1 span {
    display:block
  }
  .intro-copy {
    font-size:1rem;
    max-width:33rem;
    line-height:1.75
  }
  .intro-note {
    font-size:.875rem;
    margin-top:.3rem
  }
  .intro-feature {
    display:none
  }
  .intro-foot {
    margin-top:.75rem;
    font-size:.8rem
  }
  .form-card {
    padding:1.4rem;
    border-radius:1.3rem
  }
  .form-heading h2 {
    font-size:1.3rem
  }
  .form-lead {
    font-size:.8rem;
    margin-bottom:1rem
  }
  .contact-grid {
    grid-template-columns:1fr 1.6fr
  }
  .section-heading {
    display:block;
    margin-bottom:1.2rem
  }
  .section-heading h2 {
    font-size:1.8rem
  }
  .section-heading p:not(.eyebrow) {
    font-size:.95rem
  }
  .archive-search {
    margin-top:1.2rem
  }
  .archive-section {
    padding-top:1.7rem
  }
  .reel-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.2rem .9rem
  }
  .reel-image {
    aspect-ratio:3/4
  }
  .reel-name {
    font-size:1rem
  }
  .archive-bottom {
    flex-direction:column;
    align-items:stretch
  }
  .archive-bottom>p {
    text-align:center;
    font-size:.8rem
  }
  .app-banner {
    width:calc(100% - 2rem);
    padding:1.6rem;
    display:block;
    margin-bottom:3rem
  }
  .app-banner h2 {
    font-size:1.65rem
  }
  .app-banner p:not(.eyebrow) {
    font-size:.95rem
  }
  .app-banner .button {
    margin-top:1.3rem;
    width:100%
  }
  .coming-grid {
    grid-template-columns:1fr;
    gap:1rem
  }
  .coming-card {
    padding:1.6rem
  }
  .coming-top {
    margin-bottom:1rem
  }
  .coming-section {
    padding-bottom:2.5rem
  }
  .privacy-note {
    padding-inline:.5rem
  }
  .site-footer {
    flex-wrap:wrap;
    padding-top:1rem
  }
  .site-footer p {
    width:100%;
    order:3
  }
  .form-heading .pill {
    font-size:.75rem
  }
}
@media(max-width:360px) {
  .contact-grid {
    grid-template-columns:1fr;
    gap:.75rem
  }
  .form-card {
    padding:1.1rem
  }
  .site-header {
    gap:.6rem
  }
  .brand img {
    width:28px;
    height:28px
  }
  .button-small {
    padding:.5rem .75rem
  }
  .form-heading {
    gap:.4rem
  }
  .form-heading .pill {
    white-space:normal
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
}
/* Keep frequently read consent and form guidance at a readable size. */
.consent,.required,.check-row small,.submit-note {
  font-size:.875rem
}
@media(max-width:720px) {
  .form-lead {
    font-size:.875rem
  }
}
.matched-video-card {
  display:flex;
  align-items:flex-start;
  gap:1rem;
  text-align:start
}
.matched-video-poster {
  width:72px;
  height:96px;
  flex:0 0 72px;
  object-fit:cover;
  border-radius:.6rem
}
.matched-video-card .button {
  color:white;
  margin-top:.7rem
}
.matched-video-card .field-hint {
  margin-top:.6rem
}
@media(max-width:380px) {
  .matched-video-card {
    flex-direction:column
  }
}
