/* Scoped invitation surface: shared by the landing, editor and recipient. */
.tt-invite {
  --invite-bg:#f4b1d2; --invite-surface:#fffcfe; --invite-ink:#38223e; --invite-muted:#826882;
  --invite-accent:#d12f70; --invite-accentInk:#fff; --invite-soft:#f1e9f3; --invite-line:#f0cede; --invite-glow:#f8cee1;
  box-sizing:border-box; position:relative; isolation:isolate; display:grid; grid-template-rows:var(--invite-header-height,48px) minmax(0,1fr) auto; container:invitation / inline-size;
  width:100%; height:100%; min-height:520px; overflow:hidden; text-align:center;
  background:var(--invite-bg); color:var(--invite-ink); font-family:'Manrope',system-ui,sans-serif;
  border-radius:inherit; -webkit-tap-highlight-color:transparent; color-scheme:light;
}
.tt-invite *, .tt-invite *::before, .tt-invite *::after {box-sizing:border-box;}
.tt-invite[data-appearance="dark"] {color-scheme:dark;}
.tt-invite button, .tt-invite input {font-family:inherit;}
.tt-invite button, .tt-invite a {touch-action:manipulation;}
.tt-invite button {cursor:pointer;}
.tt-invite :focus-visible {outline:3px solid var(--invite-accent);outline-offset:4px;}
.tt-invite [hidden] {display:none !important;}
.tt-invite-atmosphere {position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;}
.tt-invite-atmosphere::before,.tt-invite-atmosphere::after,.tt-invite-petal {content:'';position:absolute;width:46px;height:46px;--petal:#bed6eb;background:radial-gradient(circle at 50% 50%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 50% 24%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 76% 44%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 65% 75%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 33% 75%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 23% 44%,var(--petal) 0 23%,transparent 24%);}
.tt-invite-petal {width:18px;height:18px;left:5%;top:29%;opacity:.38;animation:tt-invite-petal-drift 18s ease-in-out -5s infinite;}
.tt-invite-petal:nth-child(2) {left:auto;right:4%;top:61%;width:14px;height:14px;animation-duration:23s;animation-delay:-12s;}
.tt-invite-petal:nth-child(3) {left:16%;top:88%;width:22px;height:22px;animation-duration:21s;animation-delay:-8s;}
.tt-invite[data-appearance="dark"] .tt-invite-petal {--petal:#7793b0;opacity:.34;}
.tt-invite[data-template="nocturne"] .tt-invite-petal {width:3px;height:3px;border-radius:50%;background:var(--invite-accent);opacity:.4;}
.tt-invite[data-template="matcha"] .tt-invite-petal {width:20px;height:11px;border:1px solid var(--invite-accent);border-radius:100% 0;background:none;opacity:.22;}
@keyframes tt-invite-petal-drift {0%,100%{transform:translate3d(0,0,0) rotate(-12deg)}50%{transform:translate3d(5px,-22px,0) rotate(16deg)}}
.tt-invite-atmosphere::before {width:25px;height:25px;left:18px;top:17px;transform:rotate(-15deg);}
.tt-invite-atmosphere::after {width:20px;height:20px;right:18px;bottom:12px;transform:rotate(19deg);}
.tt-invite[data-appearance="dark"] .tt-invite-atmosphere::before,.tt-invite[data-appearance="dark"] .tt-invite-atmosphere::after {--petal:#7793b0;opacity:.7;}
.tt-invite-progress {display:flex;align-items:center;justify-content:center;gap:5px;margin:var(--invite-progress-top,34px) auto 0;width:min(220px,70%);height:4px;}
.tt-invite-progress span {position:relative;height:4px;flex:1;border-radius:4px;background:var(--invite-line);transition:background .2s;}
.tt-invite-progress .is-current::after {content:'♥';position:absolute;right:-4px;top:-9px;font-size:17px;line-height:20px;color:var(--invite-accent);}
.tt-invite-progress .is-done {background:var(--invite-accent);}
.tt-invite-content {position:relative;display:flex;align-items:flex-start;justify-content:center;min-width:0;min-height:0;padding:18px 16px;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;scroll-padding-block:18px;}
.tt-invite-content::-webkit-scrollbar {width:0;height:0;}
.tt-invite-card {position:relative;flex:0 0 auto;width:100%;max-width:368px;margin:auto;padding:28px 22px 26px;background:var(--invite-surface);border:1px solid var(--invite-line);border-radius:30px;box-shadow:0 12px 28px color-mix(in srgb,var(--invite-accent) 9%,transparent);}
.tt-invite-art {display:flex;align-items:center;justify-content:center;width:60px;height:60px;margin:0 auto 15px;}
.tt-invite-art img {width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 5px 7px rgba(85,53,50,.07));}
.tt-invite-photo {width:104px;height:104px;border-radius:28px;overflow:hidden;box-shadow:0 4px 16px color-mix(in srgb,var(--invite-ink) 7%,transparent);}
.tt-invite-photo img {object-fit:cover;filter:none;}
.tt-invite-envelope {width:82px;height:82px;margin-bottom:17px;}
.tt-invite[data-appearance="dark"] .tt-invite-art img {filter:drop-shadow(0 5px 9px rgba(0,0,0,.12));}
.tt-invite-eyebrow {display:block;font-size:11px;font-weight:700;letter-spacing:0;color:var(--invite-accent);margin-bottom:13px;}
.tt-invite-handnote {display:block;font:600 28px/1.1 'Caveat',cursive;color:var(--invite-accent);margin:0 auto 17px;transform:rotate(-3deg);}
.tt-invite-title {font-family:'Unbounded','Manrope',system-ui,sans-serif;font-weight:700;font-size:24px;line-height:1.32;letter-spacing:-.055em;margin:0 auto 14px;max-width:100%;color:var(--invite-ink);overflow-wrap:anywhere;text-wrap:balance;}
.tt-invite-title:focus {outline:none;}
.tt-invite-subtitle {font-size:13px;line-height:1.65;font-weight:400;letter-spacing:0;color:var(--invite-muted);margin:0 auto 24px;max-width:290px;text-wrap:pretty;white-space:pre-line;overflow-wrap:anywhere;}
.tt-invite-opening {padding:34px 28px 29px;}
.tt-invite-opening .tt-invite-title {font-size:23px;}
.tt-invite-actions {display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;margin-top:16px;}
.tt-invite-button {appearance:none;border:1px solid transparent;border-radius:100px;padding:14px 16px;min-height:49px;max-width:100%;display:flex;justify-content:center;align-items:center;gap:8px;line-height:1.4;font-size:13px;font-weight:800;letter-spacing:0;text-decoration:none;box-shadow:none;overflow-wrap:anywhere;transition:background .18s,border-color .18s,transform .18s,color .18s;}
.tt-invite-primary {background:var(--invite-accent);color:var(--invite-accentInk);box-shadow:0 5px 12px color-mix(in srgb,var(--invite-accent) 14%,transparent);}
.tt-invite-secondary {background:var(--invite-soft);color:var(--invite-ink);border-color:transparent;}
.tt-invite-text {min-height:36px;padding:8px 10px;background:transparent;color:var(--invite-muted);font-size:12px;}
.tt-invite-button:not(:disabled):active {transform:translateY(1px);}
.tt-invite-button:disabled {cursor:default;opacity:.45;box-shadow:none;}
.tt-invite-footer {display:flex;align-items:center;justify-content:center;min-width:0;padding:0 12px 10px;font-size:10px;line-height:1.4;letter-spacing:.025em;color:var(--invite-ink);opacity:.83;}
.tt-invite-footer a {color:inherit;text-decoration:none;}
.tt-invite-footer b {font-weight:700;}
.tt-invite-footer span {color:var(--invite-accent);font-size:10px;margin-left:3px;}
.tt-invite-form {display:flex;flex-direction:column;text-align:left;gap:10px;margin-top:22px;}
.tt-invite-form label {display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;line-height:1.4;color:var(--invite-muted);}
.tt-invite-form input {width:100%;max-width:100%;min-width:0;border:1px solid var(--invite-line);border-radius:13px;min-height:49px;padding:11px 12px;background:var(--invite-bg);color:var(--invite-ink);font-size:14px;box-shadow:none;outline-offset:2px;}
.tt-invite-date-fields {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:10px;}
.tt-invite-form input.tt-invite-pin {text-align:center;letter-spacing:.2em;font-size:24px;min-height:60px;padding-left:17px;font-variant-numeric:tabular-nums;}
.tt-invite-form input[aria-invalid="true"] {border-color:var(--invite-accent);}
.tt-invite-error {font-size:11px;line-height:1.5;color:var(--invite-accent);min-height:0;margin:0;text-align:center;}
.tt-invite-error:empty {display:none;}
.tt-invite-field-help {font-size:11px;color:var(--invite-muted);line-height:1.5;text-align:center;margin:0;}
.tt-invite-location {font-size:14px;color:var(--invite-muted);margin:0 0 24px;overflow-wrap:anywhere;}
.tt-invite-selection-hint {font-size:12px;line-height:1.5;color:var(--invite-muted);margin:0 0 18px;}
.tt-invite-choices .tt-invite-handnote {margin-bottom:12px;}
.tt-invite-choices .tt-invite-selection-hint {margin-bottom:14px;}
.tt-invite-choices .tt-invite-actions {margin-top:12px;}
.tt-invite .tt-invite-card.tt-invite-choices {padding-bottom:23px;}
.tt-invite-options {display:grid;gap:8px;text-align:left;}
.tt-invite-option {display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 14px;min-height:46px;border:1px solid var(--invite-line);border-radius:13px;color:var(--invite-ink);background:var(--invite-surface);font-size:13px;line-height:1.4;text-align:left;transition:border-color .15s,background .15s;}
.tt-invite-option span:first-child {min-width:0;overflow-wrap:anywhere;}
.tt-invite-option-check {position:relative;display:block;flex:0 0 16px;width:16px;height:16px;border-radius:50%;border:1px solid var(--invite-line);transition:background .15s,border-color .15s;}
.tt-invite-option.is-selected {background:var(--invite-soft);border-color:var(--invite-accent);}
.tt-invite-option.is-selected .tt-invite-option-check {background:var(--invite-accent);border-color:var(--invite-accent);}
.tt-invite-option.is-selected .tt-invite-option-check::after {content:'';position:absolute;left:5px;top:3px;width:4px;height:7px;border:solid var(--invite-accentInk);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}
.tt-invite-choices.is-long {padding:22px 24px;}
.tt-invite-choices.is-long .tt-invite-art {width:52px;height:52px;margin-bottom:10px;}
.tt-invite-choices.is-long .tt-invite-title {font-size:21px;margin-bottom:12px;}
.tt-invite-choices.is-long .tt-invite-selection-hint {margin:0 0 15px;}
.tt-invite-choices.is-long .tt-invite-options {gap:6px;}
.tt-invite-choices.is-long .tt-invite-option {min-height:42px;padding:10px 12px;}
.tt-invite-choices.is-long .tt-invite-actions {gap:5px;margin-top:13px;}
.tt-invite-choices.is-long .tt-invite-text {min-height:30px;padding:6px;}
.tt-invite-summary {display:grid;gap:13px;margin:22px 0;text-align:left;background:var(--invite-bg);border:1px solid var(--invite-line);border-radius:16px;padding:16px;}
.tt-invite-summary div {display:grid;gap:4px;}
.tt-invite-summary dt {font-size:10px;font-weight:700;color:var(--invite-muted);}
.tt-invite-summary dd {font-size:12px;font-weight:600;line-height:1.6;color:var(--invite-ink);margin:0;overflow-wrap:anywhere;}
.tt-invite-response {margin-top:18px;}
.tt-invite-response p {font-size:11px;line-height:1.6;color:var(--invite-muted);margin:0 auto 12px;max-width:270px;}
.tt-invite-response[data-status="saved"] p::before {content:'✓';display:inline-block;color:var(--invite-accent);margin-right:5px;font-weight:700;}
.tt-invite-response[data-status="pending"] p::before {content:'';display:inline-block;width:9px;height:9px;border:1.5px solid var(--invite-line);border-top-color:var(--invite-accent);border-radius:50%;margin-right:6px;animation:tt-invite-spin .8s linear infinite;}
.tt-invite-response[data-status="failed"] p {color:var(--invite-accent);}
.tt-invite-response .tt-invite-button {width:100%;}
.tt-invite-finale .tt-invite-subtitle {margin-bottom:0;}
.tt-invite-media {padding:12px 0;margin:0 0 15px;border-top:1px solid var(--invite-line);border-bottom:1px solid var(--invite-line);text-align:left;}
.tt-invite-media>span {display:block;font-size:10px;font-weight:600;color:var(--invite-muted);margin-bottom:8px;}
.tt-invite-media audio {display:block;width:100%;height:40px;}
.tt-invite-media video {display:block;width:100%;max-height:235px;object-fit:contain;border-radius:14px;background:#141217;}
.tt-invite-scratch {position:absolute;inset:0 -6px;min-height:0;border-radius:0;overflow:visible;background:transparent;}
.tt-invite-scratch canvas {position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;}
.tt-invite-scratch-reveal {display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:260px;font-family:'Unbounded','Manrope',system-ui,sans-serif;font-size:21px;color:var(--invite-ink);}
.tt-invite-scratch-reveal .tt-invite-art {width:108px;height:108px;}
.tt-invite-scratch-caption {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;pointer-events:none;color:var(--invite-ink);padding:52px 30px 90px;transition:opacity .2s;text-align:center;}
.tt-invite-scratch-caption strong {font-family:'Unbounded','Manrope',system-ui,sans-serif;font-weight:700;font-size:19px;line-height:1.4;letter-spacing:-.04em;}
.tt-invite-scratch-caption span {font-size:12px;line-height:1.6;color:color-mix(in srgb,var(--invite-ink) 78%,var(--invite-soft));max-width:23ch;}
.tt-invite-confetti {position:absolute;bottom:25%;width:5px;height:8px;border-radius:2px;z-index:10;pointer-events:none;}
.tt-invite-unlocks {display:grid;gap:6px;color:var(--invite-muted);font-size:11px;line-height:1.6;margin:22px 0 12px;}
.tt-invite-unlocks strong {color:var(--invite-ink);font-weight:600;font-size:14px;}
.tt-invite-countdown {font-variant-numeric:tabular-nums;font-size:12px;line-height:1.5;color:var(--invite-accent);margin:0 0 12px;}
.tt-invite-status .tt-invite-button {width:100%;margin-top:10px;}
@keyframes tt-invite-spin {to{transform:rotate(360deg);}}
@media(hover:hover) {
  .tt-invite-primary:not(:disabled):hover {background:color-mix(in srgb,var(--invite-accent) 91%,var(--invite-ink));}
  .tt-invite-secondary:not(:disabled):hover, .tt-invite-option:hover {border-color:var(--invite-accent);}
  .tt-invite-text:hover {color:var(--invite-accent);}
}
@media(max-width:360px) {
  .tt-invite-content {padding:17px 14px;}
  .tt-invite-card {padding:25px 20px 22px;border-radius:24px;}
  .tt-invite-title {font-size:22px;}
  .tt-invite-date-fields {gap:8px;}
  .tt-invite-form input {font-size:13px;padding:10px 8px;}
}
@media(prefers-reduced-motion:reduce) {
  .tt-invite *, .tt-invite *::before, .tt-invite *::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
/* Real recipient page. The phone's browser is the frame on small screens. */
body.tt-recipient-page {--recipient-page-bg:color-mix(in srgb,var(--invite-surface,#fffcfe) 93%,var(--invite-bg,#f4b1d2));box-sizing:border-box;position:relative;isolation:isolate;margin:0;min-height:100vh;min-height:100dvh;background:var(--recipient-page-bg);display:flex;align-items:center;justify-content:center;padding:32px;font-family:'Manrope',system-ui,sans-serif;}
body.tt-recipient-page[data-invite-appearance="dark"] {--recipient-page-bg:color-mix(in srgb,var(--invite-bg,#2e2035) 72%,#100d12);}
.tt-recipient-page #invitation {position:relative;z-index:1;width:100%;max-width:560px;height:calc(100dvh - 64px);max-height:820px;min-height:min(600px,calc(100dvh - 64px));border-radius:32px;border:1px solid color-mix(in srgb,var(--invite-ink,#38223e) 10%,transparent);box-shadow:var(--recipient-shadow,0 22px 56px -24px color-mix(in srgb,var(--invite-ink,#38223e) 22%,transparent));}
body.tt-recipient-page[data-invite-appearance="dark"] {--recipient-shadow:0 22px 60px -24px #0007;}
@media(max-width:540px) {
  body.tt-recipient-page {display:block;padding:0;background:var(--invite-bg,#f4b1d2);}
  .tt-recipient-page #invitation {width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;min-height:0;border:0;border-radius:0;box-shadow:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);}
  .tt-recipient-page .tt-invite-content {padding:24px max(24px,calc((100% - 390px)/2));}
  .tt-recipient-page .tt-invite-card {max-width:368px;}
}
@media(max-height:600px) {
  .tt-recipient-page #invitation {min-height:0;}
  .tt-recipient-page .tt-invite-content {align-items:flex-start;}
}


/* A clear brand signature in Free; Premium leaves the invitation unbranded. */
.tt-invite[data-plan="pro"] {grid-template-rows:var(--invite-header-height,48px) minmax(0,1fr) 12px;}
.tt-invite-branding {position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;opacity:1;margin:0 10px 10px;padding:14px 15px;min-height:88px;border:1px solid color-mix(in srgb,var(--invite-accent) 30%,var(--invite-line));border-top:3px solid color-mix(in srgb,var(--invite-accent) 70%,var(--invite-line));border-radius:17px;background:color-mix(in srgb,var(--invite-accent) 12%,var(--invite-surface));letter-spacing:0;}
.tt-invite-brand-copy {min-width:0;}
.tt-invite-brand-heading {display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;}
.tt-invite-brand-heading>a {display:flex;align-items:center;gap:8px;width:fit-content;max-width:100%;font-size:16px;line-height:1.4;}
.tt-invite-branding .tt-invite-free-label {display:inline-block;flex:0 0 auto;margin:0;padding:3px 6px;border:1px solid color-mix(in srgb,var(--invite-accent) 30%,var(--invite-line));border-radius:5px;background:var(--invite-surface);color:var(--invite-accent);font:800 10px/1.3 'Manrope',sans-serif;letter-spacing:.07em;text-transform:uppercase;}
.tt-invite .tt-invite-brand-mark {display:block;flex:0 0 18px;width:18px;height:18px;object-fit:contain;}
.tt-invite-branding .tt-invite-brand-mark {flex-basis:27px;width:27px;height:27px;}
.tt-invite-footer .tt-invite-status-brand {display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;}
.tt-invite-brand-copy small {display:block;font-size:11px;line-height:1.5;color:color-mix(in srgb,var(--invite-ink) 83%,var(--invite-accent));margin-top:5px;text-wrap:pretty;}
.tt-invite-brand-action {appearance:none;display:flex;align-items:center;justify-content:center;gap:4px;min-height:42px;max-width:132px;border:1px solid color-mix(in srgb,var(--invite-accent) 40%,var(--invite-line));border-radius:12px;background:var(--invite-surface);color:var(--invite-ink);padding:10px 12px;font:700 11px/1.35 'Manrope',sans-serif;text-decoration:none;text-align:center;}
.tt-invite-brand-action:hover {border-color:var(--invite-accent);background:color-mix(in srgb,var(--invite-accent) 7%,var(--invite-surface));}
.tt-invite-branding .tt-invite-brand-action span {margin:0;font-size:12px;color:inherit;}
.tt-invite[data-plan="free"] .tt-invite-atmosphere::after {display:none;}
/* The final note has a quieter title, with the meeting details carrying the accent. */
.tt-invite-finale {padding:26px 23px 19px;}
.tt-invite-finale .tt-invite-handnote {font-size:30px;margin-bottom:13px;}
.tt-invite-finale .tt-invite-title {font-size:23px;font-weight:600;line-height:1.4;letter-spacing:-.045em;margin-bottom:12px;}
.tt-invite-finale .tt-invite-subtitle {font-size:13px;line-height:1.7;max-width:27ch;margin-bottom:0;}
.tt-invite-summary {gap:0;padding:18px;margin:23px 0 17px;background:color-mix(in srgb,var(--invite-bg) 40%,var(--invite-surface));border-radius:20px;}
.tt-invite-summary-meeting {gap:8px!important;}
.tt-invite-summary-meeting dt {font-size:10px;}
.tt-invite-summary-meeting dd {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:start;}
.tt-invite-meeting-date {font-size:14px;line-height:1.6;font-weight:800;}
.tt-invite-meeting-time {font-size:19px;line-height:1.25;color:var(--invite-accent);font-weight:800;font-variant-numeric:tabular-nums;}
.tt-invite-meeting-weekday {grid-column:1/-1;font-size:11px;color:var(--invite-muted);font-weight:500;}
.tt-invite-summary-detail {padding-top:13px;margin-top:13px;border-top:1px dashed var(--invite-line);gap:4px!important;}
.tt-invite-summary-detail dd {font-size:13px;font-weight:700;line-height:1.6;}
.tt-invite-response {margin-top:14px;}
.tt-invite-response p {font-size:11px;line-height:1.6;margin-bottom:0;}
.tt-invite-response .tt-invite-button {margin-top:12px;}
.tt-invite[data-mode="preview"] .tt-invite-response[data-status="saved"] p::before,
.tt-invite[data-mode="demo"] .tt-invite-response[data-status="saved"] p::before {content:none;}
.tt-invite-finale .tt-invite-actions {gap:7px;margin-top:19px;}
.tt-invite-finale .tt-invite-text {font-size:11px;text-decoration:underline;text-underline-offset:4px;min-height:36px;}
/* Each invitation has its own rhythm, beyond its palette. */
.tt-invite[data-template="blush"] .tt-invite-card {box-shadow:0 10px 0 -6px color-mix(in srgb,var(--invite-surface) 68%,var(--invite-bg)),0 18px 32px color-mix(in srgb,var(--invite-accent) 10%,transparent);}
.tt-invite[data-template="blush"] .tt-invite-handnote {transform:rotate(-4deg);}
.tt-invite[data-template="nocturne"] .tt-invite-atmosphere {background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--invite-accent) 15%,transparent),transparent 65%);}
.tt-invite[data-template="nocturne"] .tt-invite-atmosphere::before {width:3px;height:3px;left:32px;top:80px;background:var(--invite-accent);border-radius:50%;opacity:.65;box-shadow:95px -55px 0 -1px var(--invite-ink),205px 33px 0 -1px var(--invite-accent),270px -36px 0 0 var(--invite-ink),30px 160px 0 -1px var(--invite-ink);}
.tt-invite[data-template="nocturne"] .tt-invite-atmosphere::after {width:70px;height:70px;right:-20px;bottom:16%;border:1px solid color-mix(in srgb,var(--invite-accent) 30%,transparent);border-radius:50%;background:none;opacity:.7;}
.tt-invite[data-template="nocturne"] .tt-invite-card {border-radius:25px;background:color-mix(in srgb,var(--invite-surface) 96%,var(--invite-bg));box-shadow:0 20px 40px color-mix(in srgb,var(--invite-bg) 50%,transparent);}
.tt-invite[data-template="nocturne"] .tt-invite-handnote {font-size:25px;transform:none;letter-spacing:.02em;}
.tt-invite[data-template="nocturne"] .tt-invite-title {font-weight:600;font-size:22px;line-height:1.45;letter-spacing:-.035em;}
.tt-invite[data-template="nocturne"] .tt-invite-options {gap:9px;}
.tt-invite[data-template="nocturne"] .tt-invite-option {border-radius:17px;background:color-mix(in srgb,var(--invite-soft) 30%,var(--invite-surface));}
.tt-invite[data-template="nocturne"] .tt-invite-primary {box-shadow:0 5px 18px color-mix(in srgb,var(--invite-accent) 14%,transparent);}
.tt-invite[data-template="matcha"] .tt-invite-atmosphere::before {width:76px;height:32px;left:-30px;top:10%;border:1px solid var(--invite-line);border-radius:50%;background:none;transform:rotate(-36deg);}
.tt-invite[data-template="matcha"] .tt-invite-atmosphere::after {width:50px;height:22px;right:-20px;bottom:14%;border:1px solid var(--invite-line);border-radius:50%;background:none;transform:rotate(24deg);}
.tt-invite[data-template="matcha"] .tt-invite-card {border-radius:15px;text-align:left;padding:28px 25px;box-shadow:4px 5px 0 0 color-mix(in srgb,var(--invite-line) 50%,transparent);}
.tt-invite[data-template="matcha"] .tt-invite-handnote {font-size:25px;margin-left:0;transform:none;}
.tt-invite[data-template="matcha"] .tt-invite-title {font-family:'Caveat','Manrope',cursive;font-size:34px;line-height:1.08;letter-spacing:-.015em;font-weight:700;margin-left:0;text-wrap:pretty;}
.tt-invite[data-template="matcha"] .tt-invite-subtitle {margin-left:0;max-width:28ch;}
.tt-invite[data-template="matcha"] .tt-invite-art {margin-left:0;}
.tt-invite[data-template="matcha"] .tt-invite-options {gap:0;border-top:1px solid var(--invite-line);}
.tt-invite[data-template="matcha"] .tt-invite-option {border-radius:0;padding:13px 2px;border:0;border-bottom:1px solid var(--invite-line);background:transparent;}
.tt-invite[data-template="matcha"] .tt-invite-option.is-selected {color:var(--invite-accent);background:color-mix(in srgb,var(--invite-soft) 65%,transparent);padding-left:10px;padding-right:10px;}
.tt-invite[data-template="matcha"] .tt-invite-choices.is-long .tt-invite-option {padding-top:10px;padding-bottom:10px;}
.tt-invite[data-template="matcha"] .tt-invite-button {border-radius:13px;}
.tt-invite[data-template="matcha"] .tt-invite-summary {border-radius:10px;}
.tt-invite[data-template="matcha"] .tt-invite-response p {margin-left:0;}
/* The opening is a personal note. Its words and rhythm are the decoration. */
.tt-invite-card.tt-invite-personal-note {padding:32px 22px 26px;}
.tt-invite-personal-note .tt-invite-opening-note {font-size:24px;line-height:1.25;margin-bottom:16px;overflow-wrap:anywhere;}
.tt-invite-personal-note .tt-invite-title {white-space:pre-line;font-size:25px;line-height:1.35;margin-bottom:14px;}
.tt-invite-personal-note .tt-invite-subtitle {max-width:26ch;margin-bottom:22px;}
.tt-invite-personal-note .tt-invite-actions {margin-top:0;}
.tt-invite-note-fold {position:absolute;right:14px;top:13px;width:24px;height:24px;border-top:1px solid var(--invite-line);border-right:1px solid var(--invite-line);border-radius:0 5px 0 0;pointer-events:none;}
.tt-invite[data-template="blush"] .tt-invite-personal-note .tt-invite-title {font-family:'Caveat','Manrope',cursive;font-size:39px;line-height:1.1;font-weight:700;letter-spacing:-.025em;}
.tt-invite[data-template="blush"] .tt-invite-personal-note {transform:rotate(-1deg);}
.tt-invite[data-template="nocturne"] .tt-invite-personal-note {padding-top:34px;padding-bottom:26px;}
.tt-invite[data-template="nocturne"] .tt-invite-personal-note .tt-invite-opening-note {font-size:23px;margin-bottom:16px;}
.tt-invite[data-template="nocturne"] .tt-invite-personal-note .tt-invite-title {font-size:25px;line-height:1.4;letter-spacing:-.04em;}
.tt-invite[data-template="nocturne"] .tt-invite-note-fold {right:50%;top:19px;width:28px;height:1px;transform:translateX(50%);border:0;background:var(--invite-accent);opacity:.65;}
.tt-invite[data-template="matcha"] .tt-invite-personal-note {padding-top:35px;}
.tt-invite[data-template="matcha"] .tt-invite-personal-note .tt-invite-title {font-size:38px;line-height:1.1;}
.tt-invite[data-template="matcha"] .tt-invite-opening-note {border-bottom:1px solid var(--invite-line);padding-bottom:15px;margin-bottom:22px;}
.tt-invite[data-template="matcha"] .tt-invite-note-fold {display:none;}
.tt-invite[data-template="matcha"] .tt-invite-personal-note .tt-invite-subtitle {margin-left:0;}
.tt-invite-declined .tt-invite-title {font-size:21px;}
.tt-invite-scratch-reveal {padding:28px 16px;gap:18px;}
.tt-invite-scratch-reveal .tt-invite-handnote {font-size:25px;margin:0;}
.tt-invite-scratch-reveal strong {font:700 30px/1.15 'Caveat',cursive;white-space:pre-line;}
@container invitation (max-width:320px) {
  .tt-invite-content {padding:17px 16px;}
  .tt-invite-card {padding:23px 19px;border-radius:24px;}
  .tt-invite-title {font-size:21px;line-height:1.35;}
  .tt-invite-subtitle {font-size:12px;}
  .tt-invite-art {width:52px;height:52px;margin-bottom:12px;}
  .tt-invite-photo {width:100px;height:100px;}
  .tt-invite-date-fields {gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);}
  .tt-invite-form input {font-size:12px;padding:10px 7px;}
  .tt-invite-branding {margin:0 8px 8px;padding:12px;gap:9px;min-height:84px;border-radius:15px;}
  .tt-invite-brand-heading {gap:5px 7px;}
  .tt-invite-brand-heading>a {font-size:14px;gap:6px;}
  .tt-invite-branding .tt-invite-brand-mark {flex-basis:24px;width:24px;height:24px;}
  .tt-invite-brand-copy small {font-size:10px;}
  .tt-invite-brand-action {font-size:10px;padding:9px 10px;max-width:116px;}
  .tt-invite-card.tt-invite-finale {padding:17px 16px 15px;}
  .tt-invite-finale .tt-invite-handnote {font-size:26px;margin:0 auto 8px;}
  .tt-invite-finale .tt-invite-title {font-size:20px;line-height:1.35;margin:0 auto 8px;}
  .tt-invite-finale .tt-invite-subtitle {font-size:12px;line-height:1.6;margin:0 auto;max-width:28ch;}
  .tt-invite-finale .tt-invite-summary {padding:12px;margin:14px 0 10px;}
  .tt-invite-summary-meeting dd {grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;}
  .tt-invite-meeting-date {font-size:12px;}
  .tt-invite-meeting-time {font-size:17px;}
  .tt-invite-meeting-weekday {font-size:10px;}
  .tt-invite-summary-detail {margin-top:10px;padding-top:10px;}
  .tt-invite-finale .tt-invite-response {margin-top:10px;}
  .tt-invite-finale .tt-invite-response p {font-size:10px;}
  .tt-invite-finale .tt-invite-actions {margin-top:12px;gap:3px;}
  .tt-invite-finale .tt-invite-text {font-size:10px;min-height:30px;}
  .tt-invite-card.tt-invite-personal-note {padding:34px 20px 23px;}
  .tt-invite-personal-note .tt-invite-opening-note {font-size:22px;}
  .tt-invite[data-template="blush"] .tt-invite-personal-note .tt-invite-title {font-size:34px;}
  .tt-invite[data-template="nocturne"] .tt-invite-title {font-size:20px;}
  .tt-invite[data-template="nocturne"] .tt-invite-personal-note .tt-invite-title {font-size:22px;}
  .tt-invite[data-template="matcha"] .tt-invite-card {padding:24px 19px;}
  .tt-invite[data-template="matcha"] .tt-invite-title {font-size:31px;}
  .tt-invite[data-template="matcha"] .tt-invite-personal-note .tt-invite-title {font-size:34px;}
  .tt-invite[data-template="matcha"] .tt-invite-card.tt-invite-finale {padding:17px 16px 15px;}
  .tt-invite[data-template="matcha"] .tt-invite-finale .tt-invite-title {font-size:29px;}
}
@container invitation (max-width:280px) {
  .tt-invite-card.tt-invite-finale {padding:13px 15px 11px;}
  .tt-invite-finale .tt-invite-handnote {margin-bottom:6px;}
  .tt-invite-finale .tt-invite-summary {padding:10px;margin:13px 0 9px;}
  .tt-invite-finale .tt-invite-actions {margin-top:10px;}
  .tt-invite-branding {padding:11px 10px;gap:8px;}
  .tt-invite-brand-action {padding:9px 8px;max-width:108px;}
}
/* One closed silhouette, including the corners; no rounded body under side strips. */
.tt-invite :is(.tt-invite-card,.tt-evening-card):is(.tt-invite-card-round,.tt-invite-card-wave,.tt-invite-card-arch,.tt-invite-card-postcard,.tt-invite-card-ticket):not(.tt-invite-evenings) {
  isolation:isolate;background:transparent;border-color:transparent;border-radius:0;box-shadow:none;filter:none;overflow:visible;
}
.tt-invite-card-surface {
  position:absolute;left:-6px;top:0;z-index:-1;width:calc(100% + 12px);height:100%;
  max-width:none;overflow:visible;pointer-events:none;
  filter:drop-shadow(0 10px 14px color-mix(in srgb,var(--invite-accent) 9%,transparent));
}
.tt-invite-card-surface path {fill:var(--card-surface,var(--invite-surface));}
.tt-invite-card-round>.tt-invite-card-surface path,.tt-invite-card-postcard>.tt-invite-card-surface path {stroke:var(--invite-line);stroke-width:1;}
.tt-invite .tt-evening-card:nth-child(2) {--card-surface:color-mix(in srgb,var(--invite-surface) 90%,var(--invite-soft));}
.tt-invite .tt-invite-card.tt-invite-card-arch:not(.tt-invite-evenings) {padding-top:46px;}
.tt-invite .tt-evening-card.tt-invite-card-arch {padding-top:62px;}
.tt-invite .tt-invite-card-arch .tt-invite-note-fold {right:50%;top:20px;width:28px;height:1px;transform:translateX(50%);border:0;border-radius:0;background:var(--invite-line);}
.tt-invite[data-template="blush"] .tt-invite-card-postcard .tt-invite-note-fold {right:44px;}
.tt-invite .tt-invite-card.tt-invite-scratch-card {text-align:center;}
.tt-invite-scratch-card>.tt-invite-actions {position:relative;z-index:1;margin-top:12px;}
.tt-invite-scratch-card>.tt-invite-actions .tt-invite-button {min-height:44px;color:var(--invite-ink);}
.tt-invite-content:has(>.tt-invite-opening-media) {flex-direction:column;gap:18px;}
.tt-invite-content:has(>.tt-invite-opening-media)>.tt-invite-card {margin:auto auto 0;}
.tt-invite-opening-media {width:100%;max-width:368px;margin:0 auto auto;flex:none;}
.tt-invite-opening-media .tt-invite-media {margin:0;padding:14px 16px;border:1px solid var(--invite-line);border-radius:16px;background:var(--invite-surface);}
@container invitation (max-width:260px) {
  .tt-invite-scratch-reveal {min-height:200px;padding:18px 8px;gap:12px;}
  .tt-invite-scratch-reveal .tt-invite-handnote {font-size:21px;}
  .tt-invite-scratch-reveal strong {font-size:25px;}
  .tt-invite-scratch-caption {padding:42px 22px 80px;}
  .tt-invite-scratch-caption strong {font-size:18px;}
}

/* The recipient has a little more room on a computer, while the editor stays true to a phone. */
@media(min-width:541px) {
  .tt-recipient-page #invitation {height:auto;max-height:none;min-height:min(720px,calc(100dvh - 64px));grid-template-rows:64px minmax(0,1fr) auto;}
  .tt-recipient-page #invitation[data-plan="pro"] {grid-template-rows:64px minmax(0,1fr) 18px;}
  .tt-recipient-page .tt-invite-progress {width:min(268px,65%);margin-top:36px;}
  .tt-recipient-page #invitation .tt-invite-content {padding:22px 38px 28px;overflow:visible;}
  .tt-recipient-page #invitation .tt-invite-card {max-width:460px;}
  .tt-recipient-page #invitation .tt-invite-opening-media {max-width:460px;}
  .tt-recipient-page #invitation .tt-invite-card:not(.tt-invite-evenings) {padding:32px 32px 28px;}
  .tt-recipient-page #invitation .tt-invite-card.tt-invite-card-arch:not(.tt-invite-evenings) {padding-top:52px;}
  .tt-recipient-page #invitation[data-template="blush"] .tt-invite-card:not(.tt-invite-personal-note):not(.tt-invite-finale) .tt-invite-title {font-size:28px;}
  .tt-recipient-page #invitation[data-template="nocturne"] .tt-invite-card:not(.tt-invite-personal-note):not(.tt-invite-finale) .tt-invite-title {font-size:26px;}
  .tt-recipient-page #invitation .tt-invite-subtitle {max-width:340px;font-size:14px;}
  .tt-recipient-page #invitation .tt-invite-button {font-size:14px;min-height:52px;}
  .tt-recipient-page #invitation .tt-invite-text {font-size:12px;min-height:38px;}
  .tt-recipient-page #invitation .tt-invite-branding {margin:0 20px 18px;padding:16px 20px;min-height:96px;gap:18px;}
  .tt-recipient-page #invitation .tt-invite-brand-heading>a {font-size:18px;}
  .tt-recipient-page #invitation .tt-invite-branding .tt-invite-brand-mark {flex-basis:30px;width:30px;height:30px;}
  .tt-recipient-page #invitation .tt-invite-brand-copy small {font-size:12px;}
  .tt-recipient-page #invitation .tt-invite-brand-action {font-size:12px;padding:11px 14px;max-width:154px;}
}
@media(min-width:1000px) {
  body.tt-recipient-page::before,body.tt-recipient-page::after {
    content:'';position:fixed;z-index:0;pointer-events:none;
    --petal:color-mix(in srgb,var(--invite-accent,#d12f70) 12%,var(--recipient-page-bg));
    background:radial-gradient(circle at 50% 50%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 50% 24%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 76% 44%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 65% 75%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 33% 75%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 23% 44%,var(--petal) 0 23%,transparent 24%);
  }
  body.tt-recipient-page::before {
    width:112px;height:112px;left:calc(50% - 480px);top:23%;transform:rotate(-18deg);
    --recipient-flower-angle:-18deg;--recipient-flower-drift:12px;--recipient-flower-lift:-18px;--recipient-flower-turn:9deg;
    animation:tt-recipient-flower-drift 14s ease-in-out -4s infinite;
  }
  body.tt-recipient-page::after {
    width:160px;height:160px;right:calc(50% - 520px);bottom:15%;transform:rotate(24deg);
    --recipient-flower-angle:24deg;--recipient-flower-drift:-16px;--recipient-flower-lift:-24px;--recipient-flower-turn:-11deg;
    animation:tt-recipient-flower-drift 19s ease-in-out -9s infinite;
  }
}

/* The same quiet motion belongs to the invitation in every context. */
.tt-invite:not([data-template="nocturne"]):not([data-template="matcha"]) .tt-invite-atmosphere::before {
  --recipient-flower-angle:-15deg;--recipient-flower-drift:4px;--recipient-flower-lift:-5px;--recipient-flower-turn:8deg;
  animation:tt-recipient-flower-drift 11s ease-in-out -3s infinite;
}
.tt-invite:not([data-template="nocturne"]):not([data-template="matcha"]) .tt-invite-atmosphere::after {
  --recipient-flower-angle:19deg;--recipient-flower-drift:-4px;--recipient-flower-lift:-6px;--recipient-flower-turn:-8deg;
  animation:tt-recipient-flower-drift 17s ease-in-out -7s infinite;
}
.tt-invite[data-template="nocturne"] .tt-invite-atmosphere::before {animation:tt-invite-stars 8s ease-in-out -3s infinite;}
.tt-invite[data-template="nocturne"] .tt-invite-atmosphere::after,
.tt-invite[data-template="matcha"] .tt-invite-atmosphere::before,
.tt-invite[data-template="matcha"] .tt-invite-atmosphere::after {animation:tt-invite-orbit 16s ease-in-out -5s infinite;}
.tt-invite[data-template="matcha"] .tt-invite-atmosphere::after {animation-duration:21s;animation-delay:-11s;}
@keyframes tt-invite-stars {0%,100%{opacity:.45}50%{opacity:.85}}
@keyframes tt-invite-orbit {0%,100%{translate:0 0}50%{translate:3px -9px}}
@keyframes tt-recipient-flower-drift {
  0%,100% {transform:translate3d(0,0,0) rotate(var(--recipient-flower-angle));}
  50% {transform:translate3d(var(--recipient-flower-drift),var(--recipient-flower-lift),0) rotate(calc(var(--recipient-flower-angle) + var(--recipient-flower-turn)));}
}
@media(prefers-reduced-motion:reduce) {
  body.tt-recipient-page::before,body.tt-recipient-page::after {animation:none!important;}
}
/* One selected atmosphere, shared by preview and published invitations. */
.tt-invite .tt-ambient::before,.tt-invite .tt-ambient::after {display:none;}
.tt-invite .tt-ambient {background:none;--ambient-opacity:.48;}
.tt-invite .tt-ambient[data-intensity="noticeable"] {--ambient-opacity:.68;}
.tt-invite .tt-ambient[data-effect="none"] {display:none;}
.tt-ambient-particle {position:absolute;left:var(--particle-x);top:var(--particle-y);width:var(--particle-size);height:var(--particle-size);opacity:var(--ambient-opacity);will-change:transform;}
.tt-ambient-particle i {display:block;width:100%;height:100%;color:var(--invite-accent);}
.tt-ambient[data-effect="flowers"] .tt-ambient-particle,.tt-ambient[data-effect="hearts"] .tt-ambient-particle {top:calc(-1 * var(--particle-size));height:calc(100% + var(--particle-size) * 2);animation:tt-ambient-fall var(--particle-duration) linear var(--particle-delay) infinite;}
.tt-ambient[data-effect="flowers"] .tt-ambient-particle i {height:var(--particle-size);--petal:color-mix(in srgb,var(--invite-accent) 65%,var(--invite-ink));background:radial-gradient(circle at 50% 50%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 50% 24%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 76% 44%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 65% 75%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 33% 75%,var(--petal) 0 23%,transparent 24%),radial-gradient(circle at 23% 44%,var(--petal) 0 23%,transparent 24%);animation:tt-ambient-turn 13s ease-in-out var(--particle-delay) infinite;}
.tt-ambient[data-effect="hearts"] .tt-ambient-particle {animation-direction:reverse;}
.tt-ambient[data-effect="hearts"] .tt-ambient-particle i {height:var(--particle-size);font:400 calc(var(--particle-size) * 1.3)/1 Georgia,serif;animation:tt-ambient-turn 17s ease-in-out var(--particle-delay) infinite;}
.tt-ambient[data-effect="hearts"] .tt-ambient-particle i::before {content:'♡';}
.tt-ambient[data-effect="stars"] .tt-ambient-particle {animation:tt-ambient-twinkle var(--particle-duration) ease-in-out var(--particle-delay) infinite;}
.tt-ambient[data-effect="stars"] .tt-ambient-particle i {background:var(--invite-accent);border-radius:50%;box-shadow:0 0 7px color-mix(in srgb,var(--invite-accent) 40%,transparent);}
.tt-ambient[data-effect="stars"] .tt-ambient-particle:nth-child(3n) i {border-radius:0;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);transform:scale(1.6);}
.tt-ambient-meteor {position:absolute;top:8%;left:25%;width:62px;height:1px;background:linear-gradient(90deg,transparent,var(--invite-accent));opacity:0;transform:rotate(36deg);animation:tt-ambient-shoot 14s linear -5s infinite;}
.tt-ambient-meteor::after {content:'';position:absolute;right:0;top:-1px;width:3px;height:3px;border-radius:50%;background:var(--invite-accent);box-shadow:0 0 5px var(--invite-accent);}
.tt-ambient[data-effect="stars"][data-intensity="noticeable"] {--ambient-opacity:.9;--meteor-color:color-mix(in srgb,var(--invite-accent) 72%,var(--invite-ink));}
.tt-ambient[data-effect="stars"][data-intensity="noticeable"] .tt-ambient-particle i {box-shadow:0 0 9px color-mix(in srgb,var(--invite-accent) 65%,transparent);}
.tt-ambient[data-intensity="noticeable"] .tt-ambient-meteor {width:clamp(78px,24cqw,110px);height:2px;background:linear-gradient(90deg,transparent,var(--meteor-color));filter:drop-shadow(0 0 4px color-mix(in srgb,var(--invite-accent) 65%,transparent));animation-name:tt-ambient-shoot-noticeable;animation-duration:7.2s;}
.tt-ambient[data-intensity="noticeable"] .tt-ambient-meteor::after {top:-1px;width:4px;height:4px;background:var(--meteor-color);box-shadow:0 0 8px var(--invite-accent);}
.tt-ambient[data-effect="fireflies"] .tt-ambient-particle {animation:tt-ambient-float var(--particle-duration) ease-in-out var(--particle-delay) infinite;}
.tt-ambient[data-effect="fireflies"] .tt-ambient-particle i {border-radius:50%;background:color-mix(in srgb,var(--invite-accent) 60%,#ffe9a7);box-shadow:0 0 10px 3px color-mix(in srgb,var(--invite-accent) 28%,transparent);}
body.tt-recipient-page[data-invite-atmosphere]:not([data-invite-atmosphere="flowers"])::before,body.tt-recipient-page[data-invite-atmosphere]:not([data-invite-atmosphere="flowers"])::after {display:none;}
@keyframes tt-ambient-fall {from{transform:translate3d(-6px,0,0)}to{transform:translate3d(8px,100%,0)}}
@keyframes tt-ambient-turn {0%,100%{transform:rotate(-22deg)}50%{transform:rotate(45deg)}}
@keyframes tt-ambient-twinkle {0%,100%{opacity:.12;transform:scale(.7)}50%{opacity:var(--ambient-opacity);transform:scale(1)}}
@keyframes tt-ambient-shoot {0%,84%{opacity:0;transform:translate3d(0,0,0) rotate(36deg)}86%{opacity:.7}94%,100%{opacity:0;transform:translate3d(160px,116px,0) rotate(36deg)}}
@keyframes tt-ambient-shoot-noticeable {0%{opacity:0;transform:translate3d(0,0,0) rotate(36deg)}3%{opacity:.95}18%{opacity:.75}24%,100%{opacity:0;transform:translate3d(160px,116px,0) rotate(36deg)}}
@keyframes tt-ambient-float {0%,100%{opacity:.18;transform:translate3d(-6px,8px,0)}35%{opacity:var(--ambient-opacity);transform:translate3d(9px,-22px,0)}70%{opacity:.3;transform:translate3d(-10px,-8px,0)}}
@media(prefers-reduced-motion:reduce) {
 .tt-invite .tt-ambient-meteor {display:none;}
 .tt-invite .tt-ambient[data-effect="flowers"] .tt-ambient-particle,.tt-invite .tt-ambient[data-effect="hearts"] .tt-ambient-particle {top:var(--particle-y);height:var(--particle-size);transform:none;}
}
/* A small affectionate detail belongs to the primary action, not to refusals. */
.tt-invite-primary {position:relative;isolation:isolate;}
.tt-button-heart {display:inline-block;flex:0 0 auto;width:18px;height:21px;font:400 25px/21px Georgia,serif;pointer-events:none;transform-origin:50% 60%;animation:tt-button-heartbeat 6.5s ease-in-out -2s infinite;}
.tt-button-motes {position:absolute;inset:0;pointer-events:none;}
.tt-button-motes i {position:absolute;left:17%;top:45%;font:400 15px/1 Georgia,serif;font-style:normal;color:var(--invite-accent);opacity:0;}
.tt-button-motes i:nth-child(2) {left:auto;right:17%;top:20%;font-size:12px;--mote-x:7px;--mote-turn:13deg;}
.tt-button-motes i:nth-child(3) {left:60%;top:10%;font-size:10px;--mote-x:-4px;--mote-turn:-9deg;}
.tt-invite[data-button-effect="glow"] .tt-invite-primary:not(:disabled) {animation:tt-button-warmth 6s ease-in-out -2s infinite;}
.tt-invite[data-button-effect="hearts"] .tt-invite-primary:focus-visible .tt-button-motes i,
.tt-invite[data-button-effect="hearts"] .tt-invite-primary:active .tt-button-motes i {animation:tt-button-love .85s ease-out both;}
@media(hover:hover) {
 .tt-invite[data-button-effect]:not([data-button-effect="none"]) .tt-invite-primary:not(:disabled):hover {transform:translateY(-2px);box-shadow:0 7px 17px color-mix(in srgb,var(--invite-accent) 25%,transparent);}
 .tt-invite[data-button-effect="hearts"] .tt-invite-primary:not(:disabled):hover .tt-button-heart {animation:tt-button-heartbeat 1.6s ease-in-out infinite;}
 .tt-invite[data-button-effect="hearts"] .tt-invite-primary:not(:disabled):hover .tt-button-motes i {animation:tt-button-love .85s ease-out both;}
 .tt-invite[data-button-effect="hearts"] .tt-invite-primary:not(:disabled):hover .tt-button-motes i:nth-child(2) {animation-delay:.12s;}
 .tt-invite[data-button-effect="hearts"] .tt-invite-primary:not(:disabled):hover .tt-button-motes i:nth-child(3) {animation-delay:.24s;}
}
.tt-invite[data-button-effect]:not([data-button-effect="none"]) .tt-invite-primary:not(:disabled):active {transform:translateY(1px) scale(.985);}
@keyframes tt-button-heartbeat {0%,65%,100%{transform:rotate(-7deg) scale(1)}73%{transform:rotate(-3deg) scale(1.14)}80%{transform:rotate(-7deg) scale(1)}86%{transform:rotate(-3deg) scale(1.08)}}
@keyframes tt-button-love {0%{opacity:0;transform:translate3d(0,0,0) rotate(-8deg) scale(.6)}25%{opacity:.7}100%{opacity:0;transform:translate3d(var(--mote-x,-6px),-39px,0) rotate(var(--mote-turn,-14deg)) scale(1)}}
@keyframes tt-button-warmth {0%,65%,100%{box-shadow:0 5px 12px color-mix(in srgb,var(--invite-accent) 14%,transparent)}82%{box-shadow:0 0 0 4px color-mix(in srgb,var(--invite-accent) 8%,transparent),0 7px 22px color-mix(in srgb,var(--invite-accent) 24%,transparent)}}
@media(prefers-reduced-motion:reduce) {.tt-button-motes {display:none;}.tt-button-heart {transform:none;}.tt-invite[data-button-effect] .tt-invite-primary:not(:disabled):hover,.tt-invite[data-button-effect] .tt-invite-primary:not(:disabled):active {transform:none;}}
.tt-button-label {display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;}
.tt-invite-button:disabled .tt-button-heart {animation:none;opacity:.6;}
.tt-invite-button:disabled .tt-button-motes {display:none;}
