/* MatchFast Core — Hero 04 · Project composer.
   Loaded only on pages whose hero uses this template. The hero rules sit under
   #mf-home and reuse its tokens; the dialog is moved to <body> by composer.js,
   so it carries its own tokens and outranks the theme's global form rules. */

/* ══ hero ══ */
#mf-home .mfc-hero--composer{padding-block:clamp(2.75rem,7vh,5.5rem) clamp(2rem,4vh,3rem)}
#mf-home .mfc-hero--composer .hero-in{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:clamp(540px,72vh,820px)}
#mf-home .mfc-hero--composer .pill{margin-bottom:1.5rem}
#mf-home .mfc-hero--composer .mfpc-h1{font-size:clamp(2rem,4.7vw,3.95rem);max-width:26ch;margin:0 auto 1.05rem;line-height:1.04;letter-spacing:-.04em;text-wrap:balance}
#mf-home .mfc-hero--composer .mfpc-h1 .grad-text{display:inline-block}
#mf-home .mfc-hero--composer .mfpc-lede{max-width:54ch;margin:0 auto clamp(1.6rem,3.2vh,2.2rem);text-wrap:pretty}

/* The box. White on the dark ground, with the brand's royal-to-lavender
   hairline instead of a plain border, and a soft royal glow under it. */
#mf-home .mfpc{position:relative;z-index:3;width:100%;max-width:760px;margin:0 auto;text-align:left;
  border-radius:22px;border:1.5px solid transparent;
  background:linear-gradient(#fff,#fff) padding-box,linear-gradient(120deg,rgba(79,70,255,.55),rgba(59,130,246,.35) 45%,rgba(233,216,255,.7)) border-box;
  box-shadow:0 30px 80px -34px rgba(79,70,255,.75),0 12px 30px -18px rgba(7,10,18,.55);
  transition:box-shadow .3s cubic-bezier(.2,.7,.3,1),transform .3s cubic-bezier(.2,.7,.3,1)}
#mf-home .mfpc:focus-within{box-shadow:0 0 0 4px rgba(79,70,255,.22),0 34px 90px -30px rgba(79,70,255,.9),0 12px 30px -18px rgba(7,10,18,.55)}
#mf-home .mfpc.is-invalid{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(120deg,#F0587A,#F59EAF) border-box}

#mf-home .mfpc .mfpc-in{display:block;width:100%;min-height:3.4em;max-height:12.5em;margin:0;resize:none;overflow-y:auto;
  padding:1.2rem 1.45rem .35rem;border:0;border-radius:22px 22px 0 0;background:transparent;box-shadow:none;outline:none;
  font-family:var(--body);font-size:1.1rem;line-height:1.55;color:var(--char);caret-color:var(--royal)}
#mf-home .mfpc .mfpc-in::placeholder{color:#7A8499;opacity:1;transition:opacity .25s ease}
#mf-home .mfpc.ph-out .mfpc-in::placeholder{opacity:0}
#mf-home .mfpc .mfpc-in:focus{border:0;box-shadow:none;outline:none}

#mf-home .mfpc-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem .7rem .7rem 1.45rem}
#mf-home .mfpc-hint{font-size:.82rem;color:#6B7489;line-height:1.35}

#mf-home .mfpc .mfpc-go{flex:0 0 auto;display:inline-grid;place-items:center;width:48px;height:48px;padding:0;margin:0;border:0;border-radius:50%;cursor:pointer;
  background:linear-gradient(135deg,var(--royal),#6A62FF);color:#fff;box-shadow:0 10px 24px -10px rgba(79,70,255,.9);
  transition:background .25s,box-shadow .25s,transform .25s cubic-bezier(.2,.7,.3,1)}
#mf-home .mfpc .mfpc-go svg{transition:transform .25s cubic-bezier(.2,.7,.3,1)}
#mf-home .mfpc .mfpc-go:hover{transform:translateY(-1px);box-shadow:0 14px 30px -10px rgba(79,70,255,1);color:#fff}
#mf-home .mfpc .mfpc-go:hover svg{transform:translateX(3px)}
#mf-home .mfpc .mfpc-go:focus{outline:none}
#mf-home .mfpc .mfpc-go:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
/* Before anything is typed the arrow is quieter, but it still answers a click
   with the reason it cannot continue yet. */
#mf-home .mfpc.is-empty .mfpc-go{background:#ECEBFF;color:var(--royal);box-shadow:none}

#mf-home .mfpc-err{max-width:760px;width:100%;margin:.75rem auto 0;font-size:.9rem;color:#FCA5A5;text-align:center;min-height:0}
#mf-home .mfpc-err:empty{display:none}

#mf-home .mfpc-micro{margin:1.15rem auto 0;font-size:.95rem;color:var(--dim)}
#mf-home .mfpc-caps{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .7rem;max-width:760px;margin:.9rem auto 0;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dimmer)}
#mf-home .mfpc-dot{color:var(--sky);opacity:.7}
#mf-home .mfc-hero--composer .hero-links{margin-top:1.35rem}
#mf-home .mfc-hero--composer .strip{align-self:stretch;margin-top:clamp(2rem,5vh,3.25rem)}

/* Arrival: a short rise, in sequence. The H1 only moves and never fades, so it
   is painted at once and the page's largest element is not delayed. */
@keyframes mfpc-lift{from{transform:translateY(10px)}to{transform:none}}
@keyframes mfpc-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes mfpc-pop{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
#mf-home .mfc-hero--composer .mfpc-h1{animation:mfpc-lift .7s cubic-bezier(.2,.7,.3,1) both}
#mf-home .mfc-hero--composer .mfpc-lede{animation:mfpc-rise .7s .08s cubic-bezier(.2,.7,.3,1) both}
#mf-home .mfc-hero--composer .mfpc{animation:mfpc-pop .75s .16s cubic-bezier(.2,.7,.3,1) both}
#mf-home .mfc-hero--composer :is(.mfpc-micro,.mfpc-caps,.hero-links){animation:mfpc-rise .7s .26s cubic-bezier(.2,.7,.3,1) both}

@media(max-width:720px){
  #mf-home .mfc-hero--composer{padding-block:2.25rem 1.75rem}
  #mf-home .mfc-hero--composer .hero-in{min-height:0}
  #mf-home .mfc-hero--composer .mfpc-h1{font-size:clamp(1.9rem,8.4vw,2.5rem)}
  #mf-home .mfpc{border-radius:18px}
  #mf-home .mfpc .mfpc-in{font-size:1.05rem;padding:1rem 1.1rem .3rem;border-radius:18px 18px 0 0;min-height:4.8em}
  #mf-home .mfpc-foot{padding:.3rem .55rem .55rem 1.1rem}
  #mf-home .mfpc-hint{font-size:.78rem}
  /* wrapped lines would start with a separator, so spacing alone divides them here */
  #mf-home .mfpc-caps{gap:.35rem 1rem;font-size:.62rem}
  #mf-home .mfpc-dot{display:none}
}

/* ══ Hero 05 · Confirmation (thank-you page) ══ */
#mf-home .mfc-hero--thanks{padding-block:clamp(3.5rem,11vh,7rem) clamp(2.5rem,7vh,4.5rem)}
#mf-home .mfc-hero--thanks .hero-in{display:flex;flex-direction:column;align-items:center}
#mf-home .mfth-tick{display:inline-grid;place-items:center;width:72px;height:72px;margin:0 0 1.6rem;border-radius:50%;color:#fff;
  background:linear-gradient(135deg,var(--royal),var(--sky));box-shadow:0 0 0 10px rgba(79,70,255,.12),0 22px 50px -16px rgba(79,70,255,.9)}
#mf-home .mfc-hero--thanks .mfth-h1{font-size:clamp(2.1rem,5vw,3.9rem);max-width:26ch;margin:0 auto 1.05rem;line-height:1.04;letter-spacing:-.04em;text-wrap:balance}
/* the highlighted words take their own line: "Thank You!" / "Your Project Brief Is In." */
#mf-home .mfc-hero--thanks .mfth-h1 .grad-text{display:block}
#mf-home .mfc-hero--thanks .mfth-lede{max-width:56ch;margin:0 auto 2rem;text-wrap:pretty}
#mf-home .mfc-hero--thanks .mfth-cta{margin-bottom:0}
#mf-home .mfc-hero--thanks .strip{align-self:stretch;margin-top:clamp(2.5rem,6vh,3.5rem)}
#mf-home .mfc-hero--thanks :is(.mfth-tick,.mfth-h1){animation:mfpc-lift .7s cubic-bezier(.2,.7,.3,1) both}
#mf-home .mfc-hero--thanks :is(.mfth-lede,.mfth-cta){animation:mfpc-rise .7s .1s cubic-bezier(.2,.7,.3,1) both}
@media(max-width:560px){
  #mf-home .mfc-hero--thanks .mfth-cta .btn{flex:1 1 100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  #mf-home .mfc-hero--thanks :is(.mfth-tick,.mfth-h1,.mfth-lede,.mfth-cta){animation:none}
}

/* ══ dialog ══ */
.mfpm{--mfpm-royal:#4F46FF;--mfpm-sky:#3B82F6;--mfpm-lav:#E9D8FF;--mfpm-ink:#0B0F1A;--mfpm-body:#4A5368;--mfpm-mute:#6B7489;
  --mfpm-line:#E3E6EF;--mfpm-err:#C2253D;
  position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:16px;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
.mfpm[hidden]{display:none}
.mfpm *,.mfpm *::before,.mfpm *::after{box-sizing:border-box}
.mfpm-scrim{position:absolute;inset:0;background:rgba(7,10,18,.64);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .25s ease}
.mfpm-card{position:relative;width:min(580px,100%);max-height:calc(100vh - 32px);overflow:auto;overscroll-behavior:contain;
  padding:clamp(1.5rem,3.4vw,2.2rem);border-radius:22px;background:#fff;color:var(--mfpm-ink);text-align:left;
  box-shadow:0 40px 120px -30px rgba(7,10,18,.85),0 0 0 1px rgba(79,70,255,.08);
  opacity:0;transform:translateY(16px) scale(.985);transition:opacity .28s cubic-bezier(.2,.7,.3,1),transform .28s cubic-bezier(.2,.7,.3,1)}
@supports(height:100dvh){.mfpm-card{max-height:calc(100dvh - 32px)}}
/* brand hairline across the top edge */
.mfpm-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:22px 22px 0 0;
  background:linear-gradient(90deg,var(--mfpm-royal),var(--mfpm-sky) 55%,var(--mfpm-lav))}
.mfpm.is-open .mfpm-scrim{opacity:1}
.mfpm.is-open .mfpm-card{opacity:1;transform:none}

.mfpm .mfpm-card .mfpm-x{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:44px;height:44px;padding:0;margin:0;
  border:0;border-radius:50%;background:transparent;color:var(--mfpm-mute);cursor:pointer;box-shadow:none;transition:background .2s,color .2s}
.mfpm .mfpm-card .mfpm-x:hover{background:#F2F3F8;color:var(--mfpm-ink)}
.mfpm .mfpm-card .mfpm-x:focus{outline:none;background:transparent;color:var(--mfpm-mute)}
.mfpm .mfpm-card .mfpm-x:focus-visible{outline:3px solid var(--mfpm-sky);outline-offset:1px;color:var(--mfpm-ink)}

.mfpm .mfpm-h{margin:0 2.5rem .5rem 0;padding:0;font-family:"DM Sans",system-ui,sans-serif;font-weight:700;font-size:clamp(1.45rem,3.2vw,1.8rem);
  line-height:1.12;letter-spacing:-.03em;color:var(--mfpm-ink);text-transform:none}
.mfpm .mfpm-h:focus{outline:none}
.mfpm .mfpm-sub{margin:0 0 1.35rem;padding:0;font-size:.95rem;line-height:1.55;color:var(--mfpm-body)}

.mfpm .mfpm-form{margin:0}
.mfpm .mfpm-row{display:grid;grid-template-columns:1fr 1fr;gap:0 .85rem}
.mfpm .mfpm-f{margin:0 0 .9rem;min-width:0}
.mfpm .mfpm-f label{display:block;margin:0 0 .35rem;font-size:.82rem;font-weight:600;line-height:1.3;color:var(--mfpm-ink);letter-spacing:0;text-transform:none}
.mfpm .mfpm-card .mfpm-f :is(input,textarea){display:block;width:100%;margin:0;padding:.78rem .9rem;border:1.5px solid var(--mfpm-line);border-radius:12px;
  background:#fff;color:var(--mfpm-ink);font-family:inherit;font-size:1rem;line-height:1.45;box-shadow:none;outline:none;
  transition:border-color .2s,box-shadow .2s}
.mfpm .mfpm-card .mfpm-f textarea{min-height:5.6em;max-height:14em;resize:vertical}
.mfpm .mfpm-card .mfpm-f :is(input,textarea)::placeholder{color:#99A1B3;opacity:1}
.mfpm .mfpm-card .mfpm-f :is(input,textarea):hover{border-color:#C9CEDB}
.mfpm .mfpm-card .mfpm-f :is(input,textarea):focus{border-color:var(--mfpm-royal);box-shadow:0 0 0 4px rgba(79,70,255,.15);outline:none}
.mfpm .mfpm-card .mfpm-f :is(input,textarea)[aria-invalid="true"]{border-color:#E0445C;box-shadow:0 0 0 4px rgba(224,68,92,.12)}
.mfpm .mfpm-note{margin:.4rem 0 0;font-size:.78rem;line-height:1.4;color:var(--mfpm-mute)}
.mfpm .mfpm-e{margin:.35rem 0 0;font-size:.8rem;line-height:1.35;color:var(--mfpm-err)}
.mfpm .mfpm-e:empty{display:none}
.mfpm .mfpm-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

.mfpm .mfpm-card .mfpm-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;margin:0;padding:.85rem 1.5rem;
  border:1.5px solid transparent;border-radius:100px;cursor:pointer;text-decoration:none;
  background:var(--mfpm-royal);color:#fff;font-family:"DM Sans",system-ui,sans-serif;font-weight:600;font-size:1rem;line-height:1.2;letter-spacing:0;text-transform:none;
  box-shadow:0 12px 28px -12px rgba(79,70,255,.85);transition:background .2s,box-shadow .2s,transform .2s}
.mfpm .mfpm-card .mfpm-btn svg{transition:transform .25s cubic-bezier(.2,.7,.3,1)}
.mfpm .mfpm-card .mfpm-btn:hover{background:#3F36F0;color:#fff;transform:translateY(-1px);box-shadow:0 16px 32px -12px rgba(79,70,255,1)}
.mfpm .mfpm-card .mfpm-btn:hover svg{transform:translateX(3px)}
.mfpm .mfpm-card .mfpm-btn:focus{outline:none;background:var(--mfpm-royal);color:#fff}
.mfpm .mfpm-card .mfpm-btn:focus-visible{outline:3px solid var(--mfpm-sky);outline-offset:3px}
.mfpm .mfpm-card .mfpm-btn--g,.mfpm .mfpm-card .mfpm-btn--g:focus{background:#fff;color:var(--mfpm-ink);border-color:var(--mfpm-line);box-shadow:none}
.mfpm .mfpm-card .mfpm-btn--g:hover{background:#F5F6FA;color:var(--mfpm-ink);border-color:#C9CEDB;box-shadow:none}
.mfpm .mfpm-card .mfpm-submit{width:100%;margin-top:.35rem}
.mfpm .mfpm-card .mfpm-submit[disabled]{cursor:progress;opacity:.8;transform:none}
.mfpm .mfpm-submit.is-busy svg{display:none}
.mfpm .mfpm-submit.is-busy::after{content:"";width:18px;height:18px;border-radius:50%;border:2.2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:mfpm-spin .7s linear infinite}
@keyframes mfpm-spin{to{transform:rotate(360deg)}}

.mfpm .mfpm-status{margin:.7rem 0 0;font-size:.85rem;line-height:1.4;color:var(--mfpm-err);text-align:center}
.mfpm .mfpm-status:empty{display:none}
.mfpm .mfpm-legal{margin:.85rem 0 0;font-size:.74rem;line-height:1.5;color:var(--mfpm-mute);text-align:center}

.mfpm .mfpm-done{text-align:center;padding:.75rem 0 .25rem}
.mfpm .mfpm-done .mfpm-h{margin:0 auto .55rem}
.mfpm .mfpm-done .mfpm-sub{max-width:40ch;margin:0 auto 1.5rem}
.mfpm .mfpm-tick{display:inline-grid;place-items:center;width:60px;height:60px;margin:0 0 1.1rem;border-radius:50%;
  background:linear-gradient(135deg,var(--mfpm-royal),var(--mfpm-sky));color:#fff;box-shadow:0 14px 34px -12px rgba(79,70,255,.8)}
.mfpm .mfpm-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}

html.mfpm-lock,html.mfpm-lock body{overflow:hidden}

/* Phones: the dialog becomes a sheet from the bottom edge, the way native
   forms behave, and never runs past the viewport or under the home bar. */
@media(max-width:560px){
  .mfpm{place-items:end center;padding:0}
  .mfpm-card{width:100%;max-height:92vh;border-radius:20px 20px 0 0;padding:1.5rem 1.15rem calc(1.25rem + env(safe-area-inset-bottom));transform:translateY(40px)}
  @supports(height:100dvh){.mfpm-card{max-height:92dvh}}
  .mfpm-card::before{border-radius:20px 20px 0 0}
  .mfpm .mfpm-row{grid-template-columns:1fr}
  .mfpm .mfpm-card .mfpm-f :is(input,textarea){font-size:16px}
  .mfpm .mfpm-cta .mfpm-btn{flex:1 1 100%}
}

@media(prefers-reduced-motion:reduce){
  #mf-home .mfc-hero--composer :is(.mfpc-h1,.mfpc-lede,.mfpc,.mfpc-micro,.mfpc-caps,.hero-links){animation:none}
  #mf-home .mfpc,#mf-home .mfpc .mfpc-go,#mf-home .mfpc .mfpc-go svg,#mf-home .mfpc .mfpc-in::placeholder{transition:none}
  .mfpm-scrim,.mfpm-card,.mfpm .mfpm-card .mfpm-btn,.mfpm .mfpm-card .mfpm-btn svg{transition:none}
  .mfpm-card{transform:none}
  .mfpm .mfpm-submit.is-busy::after{animation-duration:1.6s}
}
