
.fm-head{ margin-bottom:clamp(18px,3.2vh,28px); }
.fm-lede{ max-width:52ch; margin:.7em 0 0; font-size:clamp(.98rem,2.4vw,1.06rem); line-height:1.65; color:var(--ink-soft); }
.fm-card{ padding:clamp(18px,3.6vw,32px); border:1px solid var(--card-line); border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0) 40%), var(--card-bg);
  box-shadow:0 24px 60px rgba(0,0,0,.45); }

.rt-form{ display:grid; gap:clamp(16px,2.6vh,22px); text-align:left; }
.rt-row{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap:inherit; }
.rt-field{ display:grid; align-content:start; gap:8px; min-width:0; margin:0; padding:0; border:0; }
.rt-label{ padding:0; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-meta); }
.rt-label em{ margin-left:.5em; font-style:normal; letter-spacing:.1em; text-transform:lowercase; color:var(--ink-soft); opacity:.7; }
.rt-field input[type="text"], .rt-field input[type="email"], .rt-field textarea{
  width:100%; padding:13px 15px; font:inherit; font-size:1rem; line-height:1.4; color:var(--ink);
  background:rgba(0,0,0,.38); border:1px solid var(--card-line-hi); border-radius:12px;
  -webkit-user-select:text; user-select:text; transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.rt-field textarea{ min-height:112px; resize:vertical; }
.rt-field input::placeholder, .rt-field textarea::placeholder{ color:var(--ink-soft); opacity:.55; }
.rt-field input:focus, .rt-field textarea:focus{ outline:none; border-color:var(--accent); background-color:rgba(0,0,0,.5); box-shadow:0 0 16px var(--accent-soft); }
.rt-hint{ margin:0; font-size:.8rem; color:var(--ink-soft); opacity:.8; }
.rt-field--bad .rt-hint{ display:none; }
legend.rt-label{ margin-bottom:10px; }
.rt-err{ margin:0; font-size:.84rem; line-height:1.45; color:#ffb09c; }
.rt-field--bad input[type="text"], .rt-field--bad input[type="email"], .rt-field--bad textarea{ border-color:#ff8f7a; }
.rt-count{ justify-self:end; margin-top:-2px; font-size:.72rem; letter-spacing:.06em; color:var(--ink-meta); font-variant-numeric:tabular-nums; }
.rt-count--near{ color:#ffb09c; }

.rt-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.rt-chip{ position:relative; }
.rt-chip input{ position:absolute; width:1px; height:1px; margin:0; opacity:0; }
.rt-chip span{ display:inline-block; padding:9px 16px; font-family:var(--display); font-size:.84rem; letter-spacing:.1em; text-transform:lowercase;
  color:var(--ink-soft); background:rgba(0,0,0,.28); border:1px solid var(--card-line-hi); border-radius:999px; cursor:var(--cur-hand);
  transition:color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
@media (hover:hover){ .rt-chip span:hover{ color:var(--ink); border-color:var(--accent); } }
.rt-chip input:checked + span{ color:#06101c; background:var(--accent); border-color:var(--accent); }
.rt-chip input:focus-visible + span{ color:var(--ink); border-color:var(--accent); box-shadow:0 0 14px var(--accent-soft); }
.rt-chip input:checked:focus-visible + span{ color:#06101c; }

.rt-link{ position:relative; display:block; }
.rt-link-icon{ position:absolute; top:50%; left:15px; width:18px; height:18px; color:var(--accent); opacity:0; transform:translateY(-50%) scale(.6);
  transition:opacity .2s ease, transform .2s ease; pointer-events:none; }
.rt-link-icon svg{ display:block; width:100%; height:100%; }
.rt-link--known .rt-link-icon{ opacity:1; transform:translateY(-50%); }
.rt-field .rt-link--known input[type="text"]{ padding-left:44px; }

.rt-send{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin-top:4px; }
.rt-submit{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:0 28px;
  font:inherit; font-family:var(--display); font-size:.94rem; letter-spacing:.1em; text-transform:lowercase;
  color:#06101c; background:var(--accent); border:0; border-radius:999px; cursor:var(--cur-hand);
  box-shadow:0 10px 30px rgba(0,0,0,.35), 0 0 22px var(--accent-soft); transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease; }
.rt-submit svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
@media (hover:hover){ .rt-submit:hover{ transform:translateY(-1px); box-shadow:0 14px 34px rgba(0,0,0,.4), 0 0 30px var(--accent-soft); } }
.rt-submit:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
.rt-submit:disabled{ opacity:.65; transform:none; cursor:progress; }
.rt-form .form-said{ flex:1 1 220px; min-height:1.2em; margin:0; font-size:.88rem; line-height:1.5; color:var(--ink-meta); }
.rt-form .form-said:empty{ display:none; }
.rt-form .form-said[data-kind="bad"]{ color:#ffb09c; }
.rt-form .form-said[data-kind="note"]{ font-style:italic; color:var(--ink-soft); }
.rt-trap{ position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
@media (max-width:560px){ .rt-submit{ width:100%; } }

.rt-done{ display:grid; justify-items:center; gap:10px; padding:clamp(22px,5vh,44px) 8px; text-align:center; outline:none; }
.rt-done-title{ margin:8px 0 0; font-family:var(--display); font-size:clamp(1.6rem,4.6vw,2.1rem); letter-spacing:.04em; color:var(--ink); }
.rt-done-text{ max-width:42ch; margin:0; line-height:1.65; color:var(--ink-soft); }
.rt-done-back{ margin-top:12px; padding:10px 22px; font:inherit; font-family:var(--display); font-size:.8rem; letter-spacing:.12em; text-transform:lowercase;
  color:var(--ink); background:rgba(0,0,0,.25); border:1px solid var(--card-line-hi); border-radius:999px; cursor:var(--cur-hand);
  transition:border-color .2s ease, box-shadow .2s ease; }
@media (hover:hover){ .rt-done-back:hover{ border-color:var(--accent); box-shadow:0 0 14px var(--accent-soft); } }
.rt-done-back:focus-visible{ outline:none; border-color:var(--accent); box-shadow:0 0 14px var(--accent-soft); }

.foot-join{ flex:1 1 260px; max-width:440px; display:flex; flex-direction:column; align-items:center; gap:10px; }
.foot-join .foot-label{ display:block; margin:0; font-family:inherit; font-weight:400; }
.foot-join-open{ display:inline-flex; align-items:center; gap:10px; margin-top:2px; padding:11px 24px; font:inherit; font-family:var(--display);
  font-size:.88rem; letter-spacing:.1em; text-transform:lowercase; color:#06101c; background:var(--accent); border:0; border-radius:999px;
  cursor:var(--cur-hand); box-shadow:0 0 20px var(--accent-soft); transition:transform .2s ease, box-shadow .2s ease; }
.foot-join-open svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
@media (hover:hover){ .foot-join-open:hover{ transform:translateY(-1px); box-shadow:0 0 30px var(--accent-soft); } }
.foot-join-open:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
