@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,500;1,9..144,600&family=Bricolage+Grotesque:opsz,wght@12..96,200..800&family=Inter:wght@400;500;600;700&family=Pinyon+Script&family=Manrope:wght@500;600;700;800&display=swap');

:root {
  --paper:   #ffffff;   /* warm paper canvas */
  --bg:      #ffffff;
  --band:    #f5f5f5;   /* alt section band */
  --ink:     #0b0b0c;   /* near-black */
  --ink-2:   #2b2b2d;
  --muted:   #6d6d72;
  --faint:   #a2a09a;
  --line:    #e7e5df;   /* hairline */
  --line-2:  #d9d7cf;
  --inkline: #14141a;

  --r: 4px; --r2: 10px; --pill: 999px;
  --maxw: min(1840px, 95vw); --gut: 28px;

  --display: "Plus Jakarta Sans", "Helvetica Neue", Arial, sans-serif;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --body: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --special: "Bricolage Grotesque", "Plus Jakarta Sans", sans-serif;
  /* tasteful cursive accent (short decorative words only) — matches seller-profile */
  --ed-script: "Pinyon Script", "Snell Roundhand", "Savoye LET", cursive;
}

*, *::before, *::after { box-sizing: border-box; }
body.fp-ed {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
.fp-ed img { max-width: 100%; display: block; }
.fp-ed a { text-decoration: none; }
:where(.fp-ed) a { color: inherit; }
.fp-ed h1, .fp-ed h2, .fp-ed h3, .fp-ed h4 { margin: 0; font-family: var(--display); font-weight: 600; letter-spacing: -0.03em; }
.ed-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.ed-container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gut); }
.ed-section { padding: 92px 0; }
.ed-band { background: var(--band); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ed-rule { height: 1px; background: var(--line); border: 0; margin: 0; }

/* micro label / kicker */
.ed-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink); }
.ed-kicker::before { content: ""; width: 26px; height: 1.5px; background: var(--ink); }
.ed-kicker-muted { color: var(--muted); }
.ed-kicker-muted::before { background: var(--faint); }

/* headings */
.ed-h1 { font-size: clamp(3rem, 6.6vw, 6rem); line-height: 0.98; letter-spacing: -0.045em; color: var(--ink); }
.ed-h2 { font-size: clamp(2rem, 3.8vw, 3.1rem); line-height: 1.04; letter-spacing: -0.04em; color: var(--ink); }
.ed-h3 { font-size: 1.2rem; line-height: 1.25; letter-spacing: -0.02em; color: var(--ink); }
.ed-h1, .ed-h2, .ed-h3 { overflow-wrap: break-word; }
.ed-lead { color: var(--muted); font-size: 1.12rem; line-height: 1.6; }
.ed-em { font-family: var(--special); font-weight: 600; letter-spacing: -0.015em; }

/* section head */
.ed-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding-bottom: 26px; margin-bottom: 40px; border-bottom: 1px solid var(--ink); }
.ed-head-tx { max-width: 640px; }
.ed-head-tx .ed-h2 { margin-top: 16px; }
.ed-head-no { font-family: var(--serif); font-size: 1rem; color: var(--faint); }

/* links / buttons */
.ed-arrow { display: inline-flex; align-items: center; gap: 9px; font-weight: 600; font-size: 0.92rem; color: var(--ink); }
.ed-arrow svg { width: 17px; height: 17px; transition: transform 0.2s ease; }
.ed-arrow:hover svg { transform: translateX(4px); }
.ed-under { background-image: linear-gradient(var(--ink), var(--ink)); background-size: 0% 1.5px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size 0.25s ease; }
.ed-under:hover { background-size: 100% 1.5px; }

.ed-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 52px; padding: 0 24px; border: 1px solid var(--line-2); border-radius: 12px; font-family: inherit; font-size: 0.95rem; font-weight: 600; letter-spacing: -0.01em; cursor: pointer; background: var(--bg); color: var(--ink); transition: transform 0.16s ease, box-shadow 0.18s ease, background 0.16s ease, border-color 0.16s ease, color 0.16s ease; }
.ed-btn:hover { transform: translateY(-2px); background: var(--band); border-color: var(--ink-2); }
.ed-btn:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.ed-btn-line { background: var(--bg); color: var(--ink); border-color: var(--line-2); }
.ed-btn-line:hover { background: var(--band); color: var(--ink); border-color: var(--ink-2); }
.ed-btn-fill { background: linear-gradient(180deg, #2a2a2f, var(--ink)); color: #fff; border-color: var(--ink); box-shadow: 0 14px 28px -14px rgba(18, 22, 30, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.12); }
.ed-btn-fill:hover { background: linear-gradient(180deg, #303036, var(--ink)); color: #fff; border-color: var(--ink); transform: translateY(-2px); box-shadow: 0 22px 42px -18px rgba(18, 22, 30, 0.68), inset 0 1px 0 rgba(255, 255, 255, 0.16); }
.ed-btn-sm { min-height: 44px; padding: 0 18px; font-size: 0.9rem; border-radius: 11px; }

/* tags / chips / filters */
.ed-tag { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--pill); background: var(--bg); color: var(--ink-2); font-size: 0.84rem; font-weight: 500; transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease; }
.ed-tag:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.ed-chip { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--bg); color: var(--ink-2); font-size: 0.8rem; font-weight: 600; }
.ed-filter { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px; border: 1px solid var(--line-2); border-radius: var(--pill); background: var(--bg); color: var(--ink-2); font-family: inherit; font-size: 0.88rem; font-weight: 600; cursor: pointer; transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease; }
.ed-filter:hover { border-color: var(--ink); }
.ed-filter.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }
.ed-filter svg { width: 15px; height: 15px; }

/* stars (mono) */
.ed-stars { display: inline-flex; align-items: center; gap: 6px; font-size: 0.9rem; font-weight: 700; color: var(--ink); }
.ed-stars svg { width: 15px; height: 15px; color: var(--ink); }
.ed-stars small { color: var(--muted); font-weight: 500; }

/* avatar / monogram */
.ed-av { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--ink); color: #fff; font-family: var(--display); font-weight: 600; letter-spacing: -0.02em; flex-shrink: 0; overflow: hidden; }
.ed-av img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.ed-avatar-edit { display: flex; align-items: center; gap: 18px; margin-bottom: 22px; flex-wrap: wrap; }
.ed-avatar-edit-preview { width: 88px; height: 88px; font-size: 1.5rem; }
.ed-avatar-edit-ctl { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.ed-avatar-edit-label { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); }
.ed-avatar-edit-btns { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ed-avatar-edit-remove { border: 0; background: none; padding: 0; font: inherit; font-size: 0.86rem; color: var(--muted); text-decoration: underline; cursor: pointer; }
.ed-avatar-edit-remove:hover { color: var(--ink); }
.ed-avatar-edit-hint { color: var(--faint); font-size: 0.78rem; }
.ed-avatar-edit-status { font-size: 0.82rem; min-height: 1em; }

/* thumbnail mock (monochrome) */
.ed-thumb { position: relative; overflow: hidden; background: linear-gradient(150deg, #ededea, #dcdbd5); }
.ed-thumb-d { background: linear-gradient(150deg, #1a1a1d, #303035); }
.ed-mock { position: absolute; inset: 0; background: var(--band); display: grid; place-items: center; overflow: hidden; }
.ed-mock::after, .ed-mock-card::after, .ed-mock-bars::after { content: none; }
.ed-mock::before, .ed-mock-card::before, .ed-mock-bars::before {
  content: ""; position: static; left: auto; top: auto; width: 42%; max-width: 50px; min-width: 16px; height: auto; aspect-ratio: 1; border-radius: 0; box-shadow: none; background: rgba(11,11,12,0.2);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='8.5' cy='10.5' r='1.6'/%3E%3Cpath d='M4 17l5-4 4 3 3-3 4 4'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='8.5' cy='10.5' r='1.6'/%3E%3Cpath d='M4 17l5-4 4 3 3-3 4 4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ed-thumb-d .ed-mock { background: rgba(255,255,255,0.07); }
.ed-thumb-d .ed-mock::before { background: rgba(255,255,255,0.34); }
.ed-mock-mono { display: flex; align-items: center; justify-content: center; }
.ed-mock-mono span { font-family: var(--serif); font-weight: 500; font-size: 2.7rem; color: rgba(11,11,12,0.22); }
.ed-thumb-d .ed-mock-mono span { color: rgba(255,255,255,0.3); }

.ed-header { position: sticky; top: 0; z-index: 90; background: color-mix(in srgb, var(--paper) 82%, transparent); -webkit-backdrop-filter: saturate(140%) blur(16px); backdrop-filter: saturate(140%) blur(16px); border-bottom: 1px solid var(--ink); }
.ed-nav { display: flex; align-items: center; gap: 18px; min-height: 68px; }
.ed-brand { display: inline-flex; align-items: center; margin-right: auto; font-family: var(--display); font-weight: 500; font-size: 1.3rem; letter-spacing: -0.045em; color: var(--ink); }
.ed-brand b { font-weight: 600; }
.ed-brand .bn-2 { font-weight: 700; }
.ed-brand i { width: 9px; height: 9px; border-radius: 50%; background: var(--ink); margin-right: 9px; flex: none; }
.ed-brand-mk { width: 1.18em; height: 1.18em; flex: none; margin-right: 0.4em; background: var(--ink); border-radius: 0.3em; display: inline-grid; place-items: center; }
.ed-brand-mk svg { width: 58%; height: 58%; display: block; }
.ed-brand-img { height: 28px; width: auto; display: block; }
.ed-footer-brand .ed-brand-img { height: 37px; }
.ed-nav-links { display: flex; align-items: center; gap: 2px; }
.ed-nav-link { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; color: var(--ink-2); font-size: 0.92rem; font-weight: 500; border-radius: var(--r); transition: color 0.16s ease; }
.ed-nav-link:hover { color: var(--ink); }
.ed-nav-actions { display: flex; align-items: center; gap: 10px; }
.ed-nav-signin { font-size: 0.92rem; font-weight: 600; color: var(--ink); }
.ed-nav-join { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1.5px solid var(--ink); border-radius: var(--r); background: var(--ink); color: #fff; font-weight: 600; font-size: 0.92rem; transition: background-color 0.18s ease, color 0.18s ease; }
.ed-nav-join:hover { background: transparent; color: var(--ink); }
.ed-menu { display: none; width: 46px; height: 44px; border: 1px solid var(--ink); border-radius: var(--r); background: transparent; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.ed-menu span { width: 18px; height: 1.5px; background: var(--ink); }

/* breadcrumb */
.ed-crumb { display: flex; align-items: center; gap: 10px; padding: 22px 0; font-size: 0.84rem; color: var(--muted); }
.ed-crumb a:hover { color: var(--ink); }
.ed-crumb span { color: var(--faint); }
.ed-crumb b { color: var(--ink); font-weight: 600; }

.ed-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 28px; }
.ed-card { display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--bg); border-radius: var(--r2); overflow: hidden; transition: transform 0.2s ease, border-color 0.2s ease; }
.ed-card:hover { transform: translateY(-4px); border-color: var(--ink); }
.ed-card-thumb { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.ed-card-thumb .ed-thumb { position: absolute; inset: 0; transition: transform 0.4s ease; }
.ed-card:hover .ed-card-thumb .ed-thumb { transform: scale(1.04); }
.ed-card-tag { position: absolute; top: 13px; left: 13px; z-index: 2; display: inline-flex; align-items: center; min-height: 26px; padding: 0 11px; border-radius: var(--pill); background: var(--bg); border: 1px solid var(--ink); color: var(--ink); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
/* hover-to-play preview video (created lazily by serve-card-video.js) */
.ed-card-video { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.3s ease; background: var(--ink); pointer-events: none; }
.ed-card-video.is-playing { opacity: 1; }
.ed-card-sound { position: absolute; z-index: 3; bottom: 10px; right: 10px; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: rgba(17, 17, 17, 0.68); color: #fff; display: grid; place-items: center; cursor: pointer; opacity: 0; transform: translateY(4px); transition: opacity 0.2s ease, transform 0.2s ease, background 0.2s ease; }
.ed-card-sound svg { width: 17px; height: 17px; display: block; }
.ed-card-thumb:hover .ed-card-sound, .ed-card-sound:focus-visible { opacity: 1; transform: none; }
.ed-card-sound:hover, .ed-card-sound.is-on { background: var(--ink); }
.ed-card[data-serve-video] .ed-card-thumb::after { content: ""; position: absolute; z-index: 2; right: 12px; bottom: 12px; width: 26px; height: 26px; border-radius: 50%; background: rgba(11,11,12,0.72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/13px no-repeat; opacity: 0.92; transition: opacity 0.2s ease; pointer-events: none; }
.ed-card[data-serve-video]:hover .ed-card-thumb::after { opacity: 0; }
.ed-card-body { padding: 18px; display: flex; flex-direction: column; gap: 11px; flex: 1 1 auto; }
.ed-card-body h3 { font-size: 1.08rem; font-weight: 600; line-height: 1.3; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; }
.ed-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ed-card-by { display: inline-flex; align-items: center; gap: 9px; min-width: 0; }
.ed-card-by .ed-av { width: 28px; height: 28px; font-size: 0.66rem; }
.ed-card-by small { color: var(--muted); font-size: 0.86rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-card-honors { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ed-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 13px; border-top: 1px solid var(--line); }
.ed-card-foot small { color: var(--faint); font-size: 0.78rem; }
.ed-card-price { font-size: 1.02rem; font-weight: 700; color: var(--ink); }
.ed-card-price b { font-family: var(--serif); font-weight: 600; }

.ed-hero { padding: 26px 0 0; }
.ed-hero-meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); font-size: 0.74rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.ed-hero-meta b { color: var(--ink); }
.ed-hero-in { padding: 64px 0 52px; text-align: center; max-width: 1000px; margin-inline: auto; }
.ed-hero-in .ed-h1 { margin-top: 22px; }
.ed-hero-in .ed-lead { max-width: 600px; margin: 26px auto 0; }
.ed-search { display: flex; align-items: center; gap: 0; width: min(660px, 100%); margin: 34px auto 0; border: 1.5px solid var(--ink); border-radius: var(--pill); overflow: hidden; background: var(--bg); }
.ed-search svg { width: 20px; height: 20px; color: var(--ink); margin-left: 20px; flex-shrink: 0; }
.ed-search input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font-family: inherit; font-size: 1rem; color: var(--ink); padding: 16px 14px; }
.ed-search input::placeholder { color: var(--faint); }
.ed-search button { flex-shrink: 0; align-self: stretch; padding: 0 28px; border: 0; background: var(--ink); color: #fff; font-family: inherit; font-size: 0.96rem; font-weight: 600; cursor: pointer; transition: background-color 0.18s ease; }
.ed-search button:hover { background: #000; }
.ed-hero-tags { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 9px; margin-top: 22px; }
.ed-hero-tags span { color: var(--faint); font-size: 0.82rem; font-weight: 600; }

/* marquee ticker */
.ed-ticker { overflow: hidden; background: var(--ink); color: #fff; border-top: 1px solid var(--ink); }
.ed-ticker-track { display: inline-flex; white-space: nowrap; will-change: transform; animation: ed-marq 26s linear infinite; }
.ed-ticker-track > span { display: inline-flex; align-items: center; gap: 22px; padding: 13px 22px; font-family: var(--display); font-weight: 600; font-size: 0.84rem; letter-spacing: 0.12em; text-transform: uppercase; }
.ed-ticker-track > span::after { content: "\2736"; color: rgba(255,255,255,0.5); }
@keyframes ed-marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.ed-list { border-top: 1px solid var(--ink); }
.ed-list-row { display: grid; grid-template-columns: 60px 1.4fr 1fr auto; align-items: center; gap: 20px; padding: 22px 14px; border-bottom: 1px solid var(--line); color: var(--ink); transition: background-color 0.2s ease, color 0.2s ease, padding 0.2s ease; }
.ed-list-row:hover { background: var(--ink); color: #fff; padding-left: 24px; padding-right: 4px; }
.ed-list-no { font-family: var(--serif); font-size: 1.1rem; color: var(--faint); }
.ed-list-row:hover .ed-list-no { color: rgba(255,255,255,0.6); }
.ed-list-name { font-family: var(--display); font-weight: 600; font-size: 1.5rem; letter-spacing: -0.03em; }
.ed-list-desc { color: var(--muted); font-size: 0.92rem; }
.ed-list-row:hover .ed-list-desc { color: rgba(255,255,255,0.7); }
.ed-list-go { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid var(--line-2); border-radius: 50%; transition: border-color 0.2s ease, transform 0.2s ease; }
.ed-list-row:hover .ed-list-go { border-color: #fff; transform: translateX(4px); }
.ed-list-go svg { width: 18px; height: 18px; }

/* category cards (categories index) */
.ed-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ed-cat { display: flex; flex-direction: column; gap: 12px; padding: 26px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); color: var(--ink); transition: border-color 0.2s ease, transform 0.2s ease; }
.ed-cat:hover { border-color: var(--ink); transform: translateY(-3px); }
.ed-cat-top { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.ed-cat-top h3 { font-family: var(--display); font-weight: 600; font-size: 1.22rem; letter-spacing: -0.02em; }
.ed-cat-no { font-family: var(--serif); font-size: 1.4rem; color: var(--faint); line-height: 1; }
.ed-cat-desc { color: var(--ink-2); font-size: 0.9rem; line-height: 1.55; }
.ed-cat-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ed-cat-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); font-size: 0.84rem; color: var(--muted); }
.ed-cat-foot b { color: var(--ink); font-weight: 600; }
.ed-cat-go { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); font-weight: 600; white-space: nowrap; }
.ed-cat-go svg { width: 16px; height: 16px; transition: transform 0.2s ease; }
.ed-cat:hover .ed-cat-go svg { transform: translateX(3px); }
@media (max-width: 1000px) { .ed-cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .ed-cat-grid { grid-template-columns: 1fr; } }

.ed-stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.ed-stat { padding: 8px 24px; border-left: 1px solid var(--line); }
.ed-stat:first-child { border-left: 0; padding-left: 0; }
.ed-stat strong { display: block; font-family: var(--serif); font-weight: 500; font-size: clamp(2.6rem, 4.6vw, 4rem); line-height: 1; letter-spacing: -0.02em; color: var(--ink); }
.ed-stat span { display: block; margin-top: 12px; color: var(--muted); font-size: 0.88rem; font-weight: 500; }

.ed-cta { background: var(--ink); color: #fff; }
.ed-cta-in { padding: 96px 0; text-align: center; }
.ed-cta-in .ed-h2 { color: #fff; max-width: 760px; margin-inline: auto; }
.ed-cta-in .ed-em { color: #fff; font-family: var(--serif); font-style: italic; font-weight: 500; }
.ed-cta-in p { max-width: 540px; margin: 18px auto 0; color: rgba(255,255,255,0.72); font-size: 1.06rem; }
.ed-cta-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 32px; }
.ed-cta .ed-btn-fill { background: #fff; color: var(--ink); border-color: #fff; }
.ed-cta .ed-btn-fill:hover { background: transparent; color: #fff; }
.ed-cta .ed-btn-line { background: transparent; border-color: rgba(255,255,255,0.5); color: #fff; }
.ed-cta .ed-btn-line:hover { background: #fff; color: var(--ink); border-color: #fff; }

.ed-footer { border-top: 1px solid var(--ink); background: var(--paper); padding: 70px 0 34px; }
.ed-footer-grid { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 34px; }
.ed-footer-brand .ed-brand { font-size: 1.5rem; margin-bottom: 14px; }
.ed-footer-brand p { max-width: 280px; color: var(--muted); font-size: 0.92rem; line-height: 1.6; }
.ed-footer-col h4 { font-family: var(--body); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); margin: 0 0 16px; }
.ed-footer-col a { display: block; margin-bottom: 11px; color: var(--ink-2); font-size: 0.92rem; }
.ed-footer-col a:hover { color: var(--ink); }
.ed-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--faint); font-size: 0.82rem; }
.ed-footer-bottom nav { display: flex; gap: 18px; }
.ed-footer-bottom a:hover { color: var(--ink); }

.ed-profile { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 50px; align-items: start; padding-top: 8px; }
.ed-profile-id { display: flex; gap: 24px; align-items: flex-start; }
.ed-profile-av { width: 104px; height: 104px; font-size: 2rem; }
.ed-profile-name { display: flex; align-items: center; gap: 10px; }
.ed-profile-name h1 { font-size: clamp(2rem, 3.6vw, 2.8rem); line-height: 1.08; letter-spacing: -0.04em; }
.ed-profile-handle { margin: 2px 0 0; color: var(--muted); font-size: 0.95rem; font-weight: 500; line-height: 1.3; letter-spacing: -0.01em; }
.ed-verified { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border: 1px solid var(--ink); border-radius: var(--pill); font-size: 0.72rem; font-weight: 700; }
.ed-verified svg { width: 13px; height: 13px; }
.ed-profile-role { margin-top: 8px; color: var(--ink-2); font-size: 1.05rem; }
.ed-profile-role .ed-em { font-size: 1.15rem; }
.ed-profile-loc { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; color: var(--muted); font-size: 0.88rem; }
.ed-profile-loc span { display: inline-flex; align-items: center; gap: 6px; }
.ed-profile-loc svg { width: 15px; height: 15px; }
.ed-profile-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.ed-profile-side { border: 1px solid var(--ink); border-radius: var(--r2); padding: 26px; }
.ed-profile-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; }
.ed-profile-stat strong { display: block; font-family: var(--serif); font-weight: 500; font-size: 2rem; line-height: 1; }
.ed-profile-stat span { display: block; margin-top: 6px; color: var(--muted); font-size: 0.82rem; }
.ed-profile-meta { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); display: grid; gap: 12px; }
.ed-profile-meta div { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 0.9rem; }
.ed-profile-meta dt { color: var(--muted); }
.ed-profile-meta dd { margin: 0; font-weight: 600; color: var(--ink); }
.ed-skills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.fp-ed [data-seller-profile] .ed-profile-role { margin-top: 7px; }
.fp-ed [data-seller-profile] .ed-profile-loc { margin-top: 13px; gap: 9px 18px; align-items: center; }
.fp-ed [data-seller-profile] .ed-profile-actions { margin-top: 22px; }
.fp-ed [data-seller-profile] .ed-skills { margin-top: 18px; }
.fp-ed [data-seller-profile] .ed-profile-side { padding: 24px 26px; align-self: start; }
.fp-ed [data-seller-profile] .ed-profile-stats { gap: 20px 18px; }
.fp-ed [data-seller-profile] .ed-profile-meta { margin-top: 22px; padding-top: 20px; gap: 13px; }
.fp-ed[data-public-profile] .ed-section { padding: 38px 0; }
.fp-ed[data-public-profile] .ed-head { padding-bottom: 16px; margin-bottom: 24px; }
.fp-ed[data-public-profile] .ed-head-tx .ed-h2 { margin-top: 8px; }
.fp-ed[data-public-profile] .ed-tabs { margin-bottom: 24px; }
.fp-ed[data-public-profile] .ed-reviews { gap: 20px; }
@media (min-width: 920px) { .fp-ed[data-public-profile] .ed-profile { gap: 40px; } }

/* tabs */
.ed-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--ink); margin-bottom: 38px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.ed-tabs::-webkit-scrollbar { display: none; }
.ed-tab { display: inline-flex; align-items: center; gap: 8px; padding: 14px 18px; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; background: transparent; font-family: inherit; font-size: 0.98rem; font-weight: 600; color: var(--muted); cursor: pointer; transition: color 0.16s ease, border-color 0.16s ease; flex-shrink: 0; white-space: nowrap; }
.ed-tab:hover { color: var(--ink); }
.ed-tab.is-active { color: var(--ink); border-bottom-color: var(--ink); }
.ed-tab small { font-family: var(--display); color: var(--faint); }

/* service rows */
.ed-srows { border-top: 1px solid var(--ink); }
.ed-srow { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 22px; padding: 22px 8px; border-bottom: 1px solid var(--line); transition: background-color 0.18s ease; }
.ed-srow:hover { background: var(--band); }
.ed-srow-no { font-family: var(--serif); color: var(--faint); font-size: 1.05rem; }
.ed-srow-tx h3 { font-size: 1.12rem; font-weight: 600; }
.ed-srow-tx p { margin: 5px 0 0; color: var(--muted); font-size: 0.9rem; }
.ed-srow-del { color: var(--muted); font-size: 0.86rem; white-space: nowrap; }
.ed-srow-price { font-family: var(--serif); font-weight: 600; font-size: 1.3rem; white-space: nowrap; }

/* reviews */
.ed-reviews { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.ed-review { border: 1px solid var(--line); border-radius: var(--r2); padding: 26px; background: var(--bg); }
.ed-review-q { font-family: var(--display); font-size: 1.12rem; line-height: 1.55; color: var(--ink); letter-spacing: -0.01em; }
.ed-review-by { display: flex; align-items: center; gap: 12px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.ed-review-by .ed-av { width: 38px; height: 38px; font-size: 0.78rem; }
.ed-review-by strong { font-size: 0.92rem; font-weight: 600; }
.ed-review-by span { display: block; color: var(--muted); font-size: 0.8rem; }
.ed-review-by .ed-stars { display: inline-flex; color: var(--ink); margin-top: 4px; }
.ed-review-by .ed-stars svg { width: 14px; height: 14px; }
.ed-review-by a { color: inherit; text-decoration: none; }
.ed-review-by a:hover { text-decoration: underline; }
.ed-review-date { display: block; margin-top: 4px; color: var(--muted); font-size: 0.74rem; }
.ed-review-crit { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; }
.ed-review-crit span { position: relative; color: var(--muted); font-size: 0.8rem; }
.ed-review-crit span:not(:last-child)::after { content: "·"; position: absolute; right: -11px; color: var(--line-2); }
.fp-ed .ed-profile-av.is-online { position: relative; }
.fp-ed .ed-profile-av.is-online::after { content: ""; position: absolute; right: 5px; bottom: 5px; width: 17px; height: 17px; border-radius: 50%; background: #1a9b5f; border: 3px solid var(--bg); }
.fp-ed .ed-sp-online { color: #1a9b5f; font-weight: 600; }
.fp-ed .ed-sp-online svg, .fp-ed .ed-sp-seen svg { width: 9px; height: 9px; }
.fp-ed .ed-sp-seen svg { color: var(--line-2); }
.fp-ed [data-seller-profile] .ed-profile-av.is-online::after { display: none; }
.fp-ed [data-seller-profile] .ed-sp-online { color: #1f7a3d; font-weight: 700; background: #e9f7ef; border: 1px solid #c8ebd6; border-radius: 999px; padding: 3px 11px 3px 9px; }
.fp-ed [data-seller-profile] .ed-sp-online svg { color: #1f9d57; width: 8px; height: 8px; }
.fp-ed [data-seller-profile] .ed-sp-seen { color: var(--muted); font-weight: 500; font-size: 0.84rem; opacity: 0.92; }
.fp-ed [data-seller-profile] .ed-sp-seen svg { color: var(--line-2); }
.fp-ed .ed-sp-crit { border: 1px solid var(--line); border-radius: var(--r2); padding: 20px 22px; margin: 18px 0 22px; display: grid; gap: 12px; max-width: 560px; }
.fp-ed .ed-sp-crit-head { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.fp-ed .ed-sp-crit-row { display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 14px; }
.fp-ed .ed-sp-crit-l { font-size: 0.88rem; color: var(--ink-2); }
.fp-ed .ed-sp-crit-bar { height: 7px; border-radius: 99px; background: var(--band); overflow: hidden; }
.fp-ed .ed-sp-crit-bar i { display: block; height: 100%; border-radius: 99px; background: var(--ink); }
.fp-ed .ed-sp-crit-row b { font-family: var(--serif); font-weight: 500; font-size: 1rem; }
@media (max-width: 560px) { .fp-ed .ed-sp-crit-row { grid-template-columns: 104px 1fr auto; gap: 10px; } .fp-ed .ed-sp-crit-l { font-size: 0.8rem; } }

.ed-serve { display: grid; grid-template-columns: 1.5fr 0.85fr; gap: 50px; align-items: start; }
.ed-gallery-main { position: relative; aspect-ratio: 16 / 10; border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; }
.ed-gallery-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 12px; }
.ed-gallery-thumbs .ed-thumb { aspect-ratio: 16 / 11; border: 1px solid var(--line); border-radius: var(--r); cursor: pointer; }
.ed-gallery-thumbs .ed-thumb.is-active { border-color: var(--ink); }
.fp-ed .ed-gallery-thumbs { grid-template-columns: repeat(auto-fill, minmax(72px, 94px)); justify-content: start; }
.ed-gallery-thumbs .ed-sd-thumb { position: relative; aspect-ratio: 16 / 11; border: 1px solid var(--line); border-radius: var(--r); cursor: pointer; overflow: hidden; padding: 0; background: var(--band); }
.ed-gallery-thumbs .ed-sd-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ed-gallery-thumbs .ed-sd-thumb.is-active { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.ed-sd-thumb-play { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(0, 0, 0, 0.3); color: #fff; }
.ed-sd-thumb-play svg { width: 22px; height: 22px; }
.ed-sd-video { position: absolute; inset: 0; background: #000; }
.ed-sd-video video { width: 100%; height: 100%; object-fit: contain; background: #000; display: block; }
.ed-sd-fs { position: absolute; z-index: 2; top: 12px; right: 12px; width: 38px; height: 38px; padding: 0; border: 0; border-radius: var(--r); background: rgba(17, 17, 17, 0.66); color: #fff; display: grid; place-items: center; cursor: pointer; }
.ed-sd-fs svg { width: 18px; height: 18px; display: block; }
.ed-sd-fs:hover { background: var(--ink); }
.ed-serve-title { font-size: clamp(1.8rem, 3.2vw, 2.6rem); line-height: 1.06; letter-spacing: -0.035em; margin-top: 26px; }
.ed-serve-by { display: flex; align-items: center; gap: 14px; margin-top: 20px; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); cursor: pointer; }
.ed-serve-by .ed-av { width: 44px; height: 44px; font-size: 0.9rem; }
.ed-serve-by .ed-sb-main { min-width: 0; }
.ed-serve-by .ed-sb-name { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.ed-serve-by strong { font-size: 0.98rem; font-weight: 600; }
.ed-serve-by .ed-sb-sub { display: block; color: var(--muted); font-size: 0.84rem; margin-top: 2px; }
.ed-serve-by .ed-sb-honors { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.ed-serve-by:hover strong { text-decoration: underline; }
.ed-serve-by .ed-stars { margin-left: auto; align-self: flex-start; }
.ed-prose { margin-top: 30px; }
.ed-prose h2 { font-size: 1.3rem; margin: 0 0 14px; }
.ed-prose p { color: var(--ink-2); font-size: 1rem; line-height: 1.7; margin: 0 0 16px; }
.ed-includes { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 12px; }
.ed-includes li { display: flex; align-items: flex-start; gap: 12px; font-size: 0.96rem; color: var(--ink-2); }
.ed-includes svg { width: 20px; height: 20px; flex-shrink: 0; margin-top: 1px; }

/* package card (sticky) */
.ed-pkg { position: sticky; top: 92px; border: 1.5px solid var(--ink); border-radius: var(--r2); overflow: hidden; background: var(--bg); }
.ed-pkg-body { padding: 24px; }
.ed-pkg-price { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.ed-pkg-price strong { font-family: var(--serif); font-weight: 600; font-size: 2.6rem; line-height: 1; }
.ed-pkg-price span { color: var(--muted); font-size: 0.86rem; }
.ed-pkg-desc { margin: 14px 0 0; color: var(--muted); font-size: 0.92rem; line-height: 1.55; }
.ed-pkg-meta { display: flex; gap: 22px; margin-bottom: 18px; }
.ed-pkg-meta div { display: flex; align-items: center; gap: 8px; font-size: 0.86rem; color: var(--ink-2); font-weight: 600; }
.ed-pkg-meta svg { width: 16px; height: 16px; }
.ed-pkg .ed-btn { width: 100%; }

.ed-searchbar { display: flex; align-items: center; gap: 0; border: 1.5px solid var(--ink); border-radius: var(--pill); overflow: hidden; background: var(--bg); max-width: 720px; }
.ed-searchbar svg { width: 20px; height: 20px; margin-left: 20px; color: var(--ink); flex-shrink: 0; }
.ed-searchbar input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font-family: inherit; font-size: 1rem; padding: 15px 14px; color: var(--ink); }
.ed-searchbar button { padding: 0 26px; align-self: stretch; border: 0; background: var(--ink); color: #fff; font-family: inherit; font-weight: 600; cursor: pointer; }
.ed-results-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin: 30px 0 24px; }
.ed-results-head h1 { font-size: clamp(1.6rem, 3vw, 2.3rem); letter-spacing: -0.035em; }
.ed-results-head p { margin: 8px 0 0; color: var(--muted); font-size: 0.94rem; }
.ed-sort { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 0.88rem; }
.ed-sort select { font-family: inherit; font-size: 0.9rem; font-weight: 600; color: var(--ink); border: 1px solid var(--line-2); border-radius: var(--r); background: var(--bg); padding: 9px 12px; cursor: pointer; }
.ed-filters { display: flex; flex-wrap: wrap; gap: 10px; padding: 18px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); margin-bottom: 36px; }
.ed-search-layout { display: grid; grid-template-columns: 250px 1fr; gap: 44px; align-items: start; }

.ed-filterbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 14px; padding: 16px 0 18px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); margin-bottom: 32px; }
.ed-fb-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ed-fb-field > span { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); padding-left: 2px; }
.ed-fb-select { font-family: inherit; font-size: 0.9rem; font-weight: 600; color: var(--ink); background-color: var(--bg); border: 1px solid var(--line-2); border-radius: var(--pill); padding: 10px 34px 10px 14px; min-height: 44px; cursor: pointer; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236d6d72' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; transition: border-color 0.16s ease, box-shadow 0.16s ease; }
.ed-fb-select:hover { border-color: var(--ink); }
.ed-fb-select:focus-visible { outline: none; border-color: var(--brand, var(--ink)); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14); }
.ed-fb-clear { align-self: flex-end; margin-left: auto; min-height: 44px; padding: 0 14px; border: 0; background: transparent; color: var(--brand, var(--ink)); font-family: inherit; font-size: 0.88rem; font-weight: 700; cursor: pointer; }
.ed-fb-clear:hover { text-decoration: underline; }
@media (max-width: 640px) {
  .ed-filterbar { gap: 10px; }
  .ed-fb-field { flex: 1 1 calc(50% - 5px); }
  .ed-fb-select { width: 100%; }
  .ed-fb-clear { flex: 1 1 100%; margin-left: 0; text-align: left; padding-left: 2px; }
}

/* pagination */
.ed-pager { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 48px; }
.ed-pager a { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: var(--r); font-weight: 600; font-size: 0.9rem; color: var(--ink-2); transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease; }
.ed-pager a:hover { border-color: var(--ink); }
.ed-pager a.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }

.ed-trustline { display: inline-flex; align-items: center; gap: 14px; margin-top: 30px; color: var(--muted); font-size: 0.92rem; }
.ed-trustline b { color: var(--ink); font-weight: 700; }
.ed-avstack { display: inline-flex; }
.ed-avstack .ed-av { width: 34px; height: 34px; font-size: 0.64rem; margin-left: -10px; border: 2px solid var(--paper); }
.ed-avstack .ed-av:first-child { margin-left: 0; }
.ed-trustline svg { width: 15px; height: 15px; vertical-align: -2px; }

/* hero accent underline draw */
.ed-hero-in .ed-em { position: relative; font-family: var(--serif); font-style: italic; font-weight: 500; letter-spacing: -0.01em; font-size: 1.02em; padding: 0 0.06em; }
/* hero accent — bold BRUSH-STROKE underline that paints in left → right (brush SVG mask) */
.ed-hero-in .ed-em::after {
  content: ""; position: absolute; left: 0%; right: -2%; bottom: 0.08em; height: 0.24em; background: var(--ink);
  --ed-brush: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 46' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M8 27 C 60 15 120 31 185 23 C 240 16 290 27 332 19 C 312 36 250 40 170 35 C 112 32 54 37 18 32 C 9 31 3 29 8 27 Z'/%3E%3Cpath fill='%23fff' d='M24 39 C 92 35 182 41 302 36 C 252 42 142 44 62 42 C 42 41 28 41 24 39 Z'/%3E%3C/svg%3E");
  -webkit-mask: var(--ed-brush) center / 100% 100% no-repeat;
  mask: var(--ed-brush) center / 100% 100% no-repeat;
}
@media (prefers-reduced-motion: no-preference) {
  .ed-hero-in .ed-em::after { clip-path: inset(-25% 100% -25% 0); animation: ed-brush-draw 0.74s 0.5s cubic-bezier(0.22, 1, 0.36, 1) both; }
  @keyframes ed-brush-draw { to { clip-path: inset(-25% -2% -25% 0); } }
}

.ed-spot { display: grid; grid-template-columns: 1.5fr 1fr; gap: 44px; align-items: center; }
.ed-spot-media { position: relative; aspect-ratio: 16 / 11; border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; }
.ed-spot-media .ed-thumb { position: absolute; inset: 0; transition: transform 0.5s ease; }
.ed-spot:hover .ed-spot-media .ed-thumb { transform: scale(1.03); }
.ed-spot-no { font-family: var(--serif); color: var(--faint); font-size: 1.02rem; }
.ed-spot-title { font-size: clamp(1.7rem, 2.9vw, 2.7rem); line-height: 1.06; letter-spacing: -0.035em; margin: 14px 0 0; }
.ed-spot-tx p { margin: 16px 0 0; color: var(--muted); font-size: 1.04rem; line-height: 1.6; }
.ed-spot-by { display: flex; align-items: center; gap: 12px; margin: 22px 0; }
.ed-spot-by .ed-av { width: 38px; height: 38px; font-size: 0.78rem; }
.ed-spot-by strong { font-size: 0.94rem; font-weight: 600; }
.ed-spot-by .ed-stars { margin-left: auto; }

.ed-quote { text-align: center; max-width: 980px; margin-inline: auto; }
.ed-quote .ed-kicker { justify-content: center; }
.ed-quote-q { margin: 26px 0 0; font-family: var(--special); font-weight: 500; font-size: clamp(2rem, 4.3vw, 3.5rem); line-height: 1.16; letter-spacing: -0.02em; color: var(--ink); }
.ed-quote-q em { font-style: italic; }
.ed-quote-by { display: inline-flex; align-items: center; gap: 12px; margin-top: 30px; }
.ed-quote-by .ed-av { width: 44px; height: 44px; font-size: 0.84rem; }
.ed-quote-by strong { font-size: 0.94rem; font-weight: 600; }
.ed-quote-by span { display: block; color: var(--muted); font-size: 0.84rem; }

/* ===========  TALENT CARD SIGNALS (avatar online dot + level pill)  == */
.ed-av-wrap { position: relative; display: inline-flex; flex-shrink: 0; }
.ed-av-dot { position: absolute; right: -1px; bottom: -1px; width: 13px; height: 13px; border-radius: 50%; background: #2bb24c; border: 2.5px solid var(--paper); }
.ed-av-dot.is-off { background: #b9b7b0; }
.ed-talent-lvl { display: inline-flex; align-items: center; gap: 5px; min-height: 24px; padding: 0 9px; border-radius: var(--pill); border: 1px solid var(--line-2); background: var(--bg); font-size: 0.72rem; font-weight: 600; color: var(--ink-2); white-space: nowrap; }
.ed-talent-lvl.is-pro { border-color: var(--ink); background: var(--ink); color: #fff; }
.ed-talent-lvl svg { width: 12px; height: 12px; }
.ed-online { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; padding: 0 9px; border-radius: var(--pill); border: 1px solid var(--line-2); font-size: 0.72rem; font-weight: 600; color: var(--muted); white-space: nowrap; }
.ed-online::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--line-2); }
.ed-online.is-on { color: #1a7a38; border-color: rgba(31,122,61,0.32); }
.ed-online.is-on::before { background: #2bb24c; box-shadow: 0 0 0 3px rgba(43,178,76,0.18); }

/* Wide one-per-row agency-style talent card — talents.html ONLY. Built purely
   from REAL public data (profile facts + the seller's public SERVEs as
   portfolio tiles with hover-video via serve-card-video.js). Never any
   private/earnings data. The compact .ed-talent card (homepage) is
   intentionally NOT touched, so the homepage keeps its tidy layout. */
.ed-tpro-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.ed-tpro { min-width: 0; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 24px; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.ed-tpro:hover { border-color: var(--line-2); box-shadow: 0 16px 44px -30px rgba(11,11,12,0.45); }

.ed-tpro-head { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.ed-tpro-person { display: flex; align-items: center; gap: 15px; min-width: 0; flex: 1 1 320px; color: inherit; }
.ed-tpro-person:hover .ed-tpro-name strong { text-decoration: underline; }
.ed-tpro .ed-av-wrap .ed-av { width: 60px; height: 60px; font-size: 1.18rem; }
.ed-tpro .ed-av-dot { width: 15px; height: 15px; }
.ed-tpro-id { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.ed-tpro-name { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.ed-tpro-name strong { font-family: var(--display); font-size: 1.16rem; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.ed-tpro-handle { font-size: 0.84rem; font-weight: 500; color: var(--muted); }
.ed-tpro-badge { display: inline-flex; align-items: center; gap: 5px; min-height: 22px; padding: 0 9px; border-radius: var(--pill); border: 1px solid var(--ink); background: var(--ink); color: #fff; font-size: 0.67rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; white-space: nowrap; }
.ed-tpro-badge svg { width: 11px; height: 11px; }
.ed-tpro-badge.is-soft { border-color: var(--line-2); background: var(--bg); color: var(--ink-2); }
.ed-tpro-sub { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 0.86rem; }
.ed-tpro-sub .ed-stars { display: inline-flex; align-items: center; gap: 5px; font-size: 0.9rem; font-weight: 700; color: var(--ink); }
.ed-tpro-sub .ed-stars svg { width: 15px; height: 15px; color: var(--ink); }
.ed-tpro-sub .ed-stars small { color: var(--muted); font-weight: 500; }
.ed-tpro-sep { color: var(--line-2); }
.ed-tpro-done b { font-weight: 700; color: var(--ink-2); }
.ed-tpro-cta { display: flex; gap: 8px; flex: 0 0 auto; margin-left: auto; }
.ed-tpro-cta .ed-btn { white-space: nowrap; }

.ed-tpro-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 18px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.ed-tpro-meta-item { display: inline-flex; align-items: center; gap: 7px; font-size: 0.86rem; color: var(--muted); white-space: nowrap; }
.ed-tpro-meta-item svg { width: 15px; height: 15px; color: var(--faint); flex-shrink: 0; }
.ed-tpro-meta-item b { color: var(--ink); font-weight: 700; }
.ed-tpro-from { font-family: var(--serif); font-weight: 600; color: var(--ink); font-size: 0.95rem; }
.ed-tpro-rate { font-family: var(--serif); font-weight: 700; color: var(--ink); font-size: 1rem; letter-spacing: -0.01em; }
.ed-tpro-rate small { font-family: var(--body); font-weight: 600; color: var(--muted); font-size: 0.72rem; }

.ed-tpro-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 18px; }
.ed-tpro-tile.ed-card { width: auto; border-radius: var(--r2); }
.ed-tpro-tile .ed-card-thumb { aspect-ratio: 16 / 9; height: auto; background: var(--band); }
.ed-tpro-tile-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ed-tpro-tile .ed-card-tag { top: 10px; left: 10px; font-size: 0.63rem; min-height: 21px; padding: 0 8px; }
.ed-tpro-tile .ed-card-tag.is-portfolio { background: var(--ink); color: #fff; border-color: var(--ink); }
.ed-tpro-tile .ed-card-tag.is-gallery { background: var(--brand); color: #fff; border-color: var(--brand); }

/* Skills chips */
.ed-tpro-skills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.ed-tpro-skill { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: var(--pill); border: 1px solid var(--line); background: var(--paper); font-size: 0.78rem; font-weight: 500; color: var(--ink-2); }
.ed-tpro-skill.is-more { background: transparent; border-style: dashed; color: var(--muted); font-weight: 600; }

@media (max-width: 720px) {
  .ed-tpro { padding: 18px; }
  .ed-tpro-cta { margin-left: 0; width: 100%; flex-direction: column; }
  .ed-tpro-cta .ed-btn { width: 100%; justify-content: center; }
  .ed-tpro-tiles { display: flex; flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; padding-bottom: 6px; scrollbar-width: none; }
  .ed-tpro-tiles::-webkit-scrollbar { display: none; }
  .ed-tpro-tile.ed-card { flex: 0 0 78%; width: 78%; max-width: 320px; scroll-snap-align: start; }
}

.ed-msg-modal { position: fixed; inset: 0; z-index: 220; display: flex; align-items: center; justify-content: center; padding: 18px; }
.ed-msg-modal[hidden] { display: none; }
.ed-msg-backdrop { position: absolute; inset: 0; background: rgba(11, 11, 12, 0.42); }
.ed-msg-dialog { position: relative; z-index: 1; width: 100%; max-width: 460px; background: var(--bg); border: 1px solid var(--line); border-radius: 14px; padding: 26px 24px 22px; box-shadow: 0 30px 70px rgba(0, 0, 0, 0.28); }
.ed-msg-close { position: absolute; top: 10px; right: 14px; border: 0; background: transparent; font-size: 1.6rem; line-height: 1; color: var(--muted); cursor: pointer; }
.ed-msg-close:hover { color: var(--ink); }
.ed-msg-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding-right: 24px; }
.ed-msg-head .ed-av { width: 44px; height: 44px; font-size: 0.9rem; }
.ed-msg-id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ed-msg-id strong { font-family: var(--display); font-size: 1.04rem; font-weight: 700; color: var(--ink); }
.ed-msg-sub { color: var(--muted); font-size: 0.8rem; }
.ed-msg-input { width: 100%; min-height: 112px; resize: vertical; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); font-family: inherit; font-size: 0.92rem; line-height: 1.5; color: var(--ink); }
.ed-msg-input:focus { outline: none; border-color: var(--ink); }
.ed-msg-note { color: var(--ink-2); font-size: 0.92rem; line-height: 1.6; margin: 2px 0 0; }
.ed-msg-ok { color: var(--ink-2); font-size: 0.95rem; line-height: 1.6; margin: 2px 0 0; }
.ed-msg-err { color: #b0241f; font-size: 0.82rem; margin: 8px 0 0; }
.ed-msg-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
body.ed-msg-open { overflow: hidden; }
@media (max-width: 480px) {
  .ed-msg-dialog { padding: 22px 16px 18px; }
  .ed-msg-actions { flex-direction: column-reverse; }
  .ed-msg-actions .ed-btn { width: 100%; justify-content: center; }
}

.ed-up { opacity: 0; transform: translateY(22px); transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.ed-up.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .ed-up { opacity: 1; transform: none; transition: none; } }

@media (max-width: 1000px) {
  .ed-spot { grid-template-columns: 1fr; gap: 26px; }
  .ed-spot-media { aspect-ratio: 16 / 9; }
}
@media (max-width: 640px) {
  .ed-trustline { flex-direction: column; gap: 10px; text-align: center; }
}

@media (prefers-reduced-motion: no-preference) {
  .ed-reveal { animation: ed-rise 0.6s cubic-bezier(0.22,1,0.36,1) both; }
}
@keyframes ed-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1000px) {
  .ed-nav-links { display: none; }
  .ed-menu { display: flex; }
  .ed-header.is-open .ed-nav { flex-wrap: wrap; padding-bottom: 14px; }
  .ed-header.is-open .ed-nav-links { order: 5; display: flex; flex-direction: column; align-items: stretch; width: 100%; gap: 2px; padding-top: 10px; margin-top: 8px; border-top: 1px solid var(--line); }
  .ed-header.is-open .ed-nav-link { min-height: 46px; }
  .ed-section { padding: 70px 0; }
  .ed-profile { grid-template-columns: 1fr; gap: 34px; }
  .ed-serve { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .ed-pkg { position: static; }
  .ed-search-layout { grid-template-columns: 1fr; gap: 28px; }
  .ed-reviews { grid-template-columns: 1fr; }
  .ed-stats { grid-template-columns: 1fr 1fr; gap: 30px 0; }
  .ed-stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .ed-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .ed-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  :root { --gut: 18px; }
  .ed-nav { gap: 12px; }
  .ed-brand { font-size: 1.06rem; white-space: nowrap; }
  .ed-nav-signin { display: none; }
  .ed-nav-join { padding: 0 16px; min-height: 42px; }
  .ed-list-row { grid-template-columns: 36px 1fr auto; }
  .ed-list-desc { display: none; }
  .ed-list-name { font-size: 1.2rem; }
  .ed-srow { grid-template-columns: 1fr auto; gap: 10px; }
  .ed-srow-no, .ed-srow-del { display: none; }
  .ed-stats { grid-template-columns: 1fr 1fr; }
  .ed-profile-id { flex-direction: column; gap: 16px; }
  .ed-gallery-thumbs { grid-template-columns: repeat(4, 1fr); }
  .ed-search input, .ed-searchbar input { font-size: 0.94rem; }
  .ed-footer-grid { grid-template-columns: 1fr; }
  .ed-footer-bottom { flex-direction: column; align-items: flex-start; }
  .ed-cta-actions .ed-btn { width: 100%; }
}

body.fp-ed .workspace-public-navbar,
body.fp-ed .seller-workspace-navbar,
body.fp-ed .buyer-workspace-navbar {
  position: sticky; top: 0; z-index: 90;
}
body.fp-ed .workspace-public-navbar > .site-header,
body.fp-ed .seller-workspace-navbar > .site-header,
body.fp-ed .buyer-workspace-navbar > .site-header { position: static; }

body.fp-ed .site-header {
  position: sticky; top: 0; z-index: 90;
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  -webkit-backdrop-filter: saturate(140%) blur(16px);
  backdrop-filter: saturate(140%) blur(16px);
  border-bottom: 1px solid var(--ink);
}
body.fp-ed .navbar {
  display: flex; align-items: center; gap: 18px;
  width: 100%; max-width: var(--maxw); margin-inline: auto;
  min-height: 68px; padding: 0 var(--gut);
}
body.fp-ed .brand { display: inline-flex; align-items: center; gap: 9px; margin-right: auto; text-decoration: none; color: var(--ink); }
body.fp-ed .brand-mark-image-shell { display: inline-flex; align-items: center; flex: none; }
body.fp-ed .brand-mark-image { width: 36px; height: 36px; object-fit: contain; display: none; }
body.fp-ed .brand-mark-image-light { display: block; }
body.fp-ed .brand-text { display: inline-flex; flex-direction: column; line-height: 1; }
body.fp-ed .brand-text strong { font-family: var(--display); font-weight: 500; font-size: 1.28rem; letter-spacing: -0.04em; color: var(--ink); }
body.fp-ed .brand-text strong .bn-2 { font-weight: 700; }
body.fp-ed .brand-text small { display: none; }
body.fp-ed .brand-mark-tile { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--ink); border-radius: 10px; flex: none; }
body.fp-ed .brand-mark-tile svg { width: 58%; height: 58%; display: block; }
body.fp-ed .brand-wm { display: inline-block; font-family: var(--display); font-size: 1.22rem; letter-spacing: -0.04em; line-height: 1; color: var(--ink); white-space: nowrap; }
body.fp-ed .brand-wm .bn-1 { font-weight: 500; }
body.fp-ed .brand-wm .bn-2 { font-weight: 700; }
body.fp-ed .brand-wm .bn-g { height: 0.72em; width: auto; display: inline-block; vertical-align: baseline; }
body.fp-ed .brand-wm .bn-rule { display: block; width: 100%; height: 0.42em; margin-top: 0.02em; }
body.fp-ed .brand-img-link { gap: 0; }
body.fp-ed .brand-mono-img, body.fp-ed .brand-lockup-img { height: 46px; width: auto; display: block; }
body.fp-ed .brand-sub { display: none; }
@media (max-width: 560px) { body.fp-ed .brand-mono-img, body.fp-ed .brand-lockup-img { height: 40px; } }
body.fp-ed .bn-1 { color: #1d4ed8; }
body.fp-ed .bn-2 { color: var(--ink); }

.fp-megabar .nav-link, .fp-megabar .join-button, .fp-megabar .nav-link-secondary,
.fp-megabar .fp-nav-trigger, .fp-megabar .fp-drop-link, .fp-megabar .fp-rail-item,
.fp-megabar .fp-mega-head, .fp-megabar .fp-mega-seeall, .fp-megabar .fp-sub { font-family: var(--body); }
.fp-megabar .nav-links { display: flex; align-items: center; gap: 2px; width: 100%; }
.fp-megabar .brand { margin-right: 20px; }
.fp-megabar .navigation { flex: 1; }
body.fp-ed .fp-megabar .fp-langsel-slot { margin-left: auto; }
body.fp-ed .fp-megabar .nav-link-secondary { margin-left: 2px; }
@media (max-width: 900px) { body.fp-ed .fp-megabar .brand { margin-right: 0; } body.fp-ed .fp-megabar .nav-link-secondary { margin-left: 0; } body.fp-ed .fp-megabar .fp-langsel-slot { margin-left: 0; } }
.fp-nav-item { position: relative; display: inline-flex; align-items: center; }
.fp-nav-trigger { background: none; border: 0; cursor: pointer; font-weight: 600; font-size: 0.95rem; color: var(--ink); padding: 9px 13px; border-radius: 9px; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.fp-nav-trigger:hover { background: rgba(0,0,0,.045); }
.fp-cv { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-top: -3px; opacity: .55; transition: transform .2s ease; }
.fp-nav-item:hover > .fp-nav-trigger, .fp-nav-item.fp-open > .fp-nav-trigger { background: rgba(0,38,120,.07); color: var(--purple, #1d4ed8); }
.fp-nav-item:hover > .fp-nav-trigger .fp-cv, .fp-nav-item.fp-open > .fp-nav-trigger .fp-cv { transform: rotate(225deg); margin-top: 2px; opacity: 1; }
/* panels */
.fp-mega, .fp-drop { position: absolute; left: 0; top: 100%; display: none; z-index: 80; }
.fp-nav-item:hover > .fp-mega, .fp-nav-item:hover > .fp-drop, .fp-nav-item.fp-open > .fp-mega, .fp-nav-item.fp-open > .fp-drop { display: block; }
.fp-drop-wrap { display: block; }
.fp-drop-card { margin-top: 10px; background: #fff; border: 1px solid var(--line, #e7e2d5); border-radius: 16px; box-shadow: 0 28px 64px -22px rgba(20,36,70,.30); padding: 14px; min-width: 300px; }
.fp-drop-card.fp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px; min-width: 560px; }
.fp-col-label { font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted, #8a8578); padding: 8px 12px 6px; }
.fp-drop-link { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 9px; font-weight: 600; font-size: .92rem; color: var(--ink-2, #3a3a3e); text-decoration: none; padding: 9px 12px; border-radius: 10px; }
.fp-drop-link:hover { background: rgba(0,38,120,.05); color: var(--purple, #1d4ed8); }
.fp-drop-link small { flex: 0 0 100%; font-family: var(--body); font-weight: 400; font-size: .74rem; color: var(--muted, #8a8578); margin-top: 0; }
.fp-drop-link.fp-soon { color: #9a96a0; }
/* mega (categories) */
.fp-mega-card { width: min(1040px, calc(100vw - 140px)); margin: 10px 0 0; background: #fff; border: 1px solid var(--line, #e7e2d5); border-radius: 18px; box-shadow: 0 30px 70px -20px rgba(20,36,70,.28); display: grid; grid-template-columns: 252px 1fr; overflow: hidden; }
.fp-rail { padding: 16px 11px; border-right: 1px solid var(--line, #e7e2d5); background: #fcfbf9; max-height: 72vh; overflow: auto; }
.fp-rail-label, .fp-mega-label { font-size: .64rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted, #8a8578); padding: 0 12px; margin-bottom: 9px; }
.fp-rail-item { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; font-weight: 600; font-size: .9rem; color: var(--ink-2, #3a3a3e); background: none; border: 0; text-align: left; text-decoration: none; padding: 11px 12px; border-radius: 11px; cursor: pointer; transition: background .16s ease, box-shadow .16s ease, color .16s ease; margin-bottom: 1px; }
.fp-rail-item .fp-chip { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.fp-rail-item .fp-ch2 { width: 7px; height: 7px; border-right: 2px solid #c4bfb1; border-bottom: 2px solid #c4bfb1; transform: rotate(-45deg); }
.fp-rail-item:hover { background: rgba(0,38,120,.05); }
.fp-rail-item.active { background: linear-gradient(135deg, rgba(0,38,120,.10), rgba(0,38,120,.04)); color: var(--purple, #1d4ed8); font-weight: 700; box-shadow: inset 0 0 0 1px rgba(0,38,120,.16); }
.fp-rail-item.active .fp-chip { background: var(--purple, #1d4ed8); }
.fp-rail-item.active .fp-chip .fp-ch2 { border-color: #fff; width: 6px; height: 6px; margin-right: 2px; }
.fp-mega-panel { padding: 20px 26px; }
.fp-mega-head { font-weight: 700; font-size: 1.02rem; color: var(--ink); margin: 2px 0 14px; }
.fp-mega-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px 24px; }
.fp-sub { font-size: .88rem; font-weight: 500; color: var(--ink-2, #3a3a3e); text-decoration: none; padding: 8px 6px; border-radius: 7px; display: block; }
.fp-sub:hover { color: var(--purple, #1d4ed8); background: rgba(0,38,120,.05); }
.fp-mega-seeall { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .88rem; color: var(--purple, #1d4ed8); text-decoration: none; margin-top: 16px; padding-left: 6px; }
/* mobile: dropdowns collapse into the stacked menu */
@media (max-width: 900px) {
  .fp-megabar .nav-links { display: block; }
  .fp-nav-item { display: block; }
  .fp-nav-trigger { width: 100%; justify-content: space-between; }
  .fp-mega, .fp-drop { position: static; display: block; padding: 0 0 6px 12px; }
  .fp-mega-card, .fp-drop-card { box-shadow: none; border: 0; border-radius: 0; margin: 0; max-width: none; width: auto; min-width: 0; display: block; padding: 0; }
  .fp-mega-card { grid-template-columns: 1fr; }
  .fp-rail { border: 0; background: none; padding: 0; max-height: none; }
  .fp-mega-panel { display: none; }
  .fp-drop-card.fp-cols { grid-template-columns: 1fr; }
}
body.fp-ed .navigation { display: flex; align-items: center; }
body.fp-ed .nav-links { display: flex; align-items: center; gap: 2px; }
body.fp-ed .nav-link, body.fp-ed .dropdown-toggle {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 13px;
  border: 0; background: transparent; color: var(--ink);
  font-family: inherit; font-size: 0.92rem; font-weight: 600; border-radius: var(--r); cursor: pointer;
  transition: color 0.16s ease;
}
body.fp-ed .nav-link:hover, body.fp-ed .dropdown-toggle:hover, body.fp-ed .dropdown-toggle[aria-expanded="true"] { color: var(--ink); }
body.fp-ed .dropdown { position: relative; }
body.fp-ed .dropdown-icon { width: 12px; height: 12px; transition: transform 0.18s ease; }
body.fp-ed .dropdown-toggle[aria-expanded="true"] .dropdown-icon { transform: rotate(180deg); }
body.fp-ed .dropdown-menu {
  position: absolute; top: calc(100% + 10px); left: 0; z-index: 60;
  display: grid; gap: 2px; width: 320px; padding: 8px;
  border: 1px solid var(--ink); background: var(--bg); box-shadow: 6px 6px 0 rgba(11, 11, 12, 0.06);
}
body.fp-ed .dropdown-menu[hidden] { display: none; }
body.fp-ed .dropdown-item { display: grid; gap: 2px; padding: 10px 12px; border-radius: var(--r); text-decoration: none; color: var(--ink); transition: background-color 0.16s ease; }
body.fp-ed .dropdown-item:hover { background: var(--band); }
body.fp-ed .dropdown-item strong { font-size: 0.9rem; font-weight: 600; }
body.fp-ed .dropdown-item span { font-size: 0.8rem; color: var(--muted); line-height: 1.4; }
body.fp-ed .nav-link-secondary { margin-left: 4px; color: var(--ink); font-weight: 600; }
body.fp-ed .join-button {
  display: inline-flex; align-items: center; min-height: 44px; margin-left: 6px; padding: 0 20px;
  border: 1.5px solid var(--ink); border-radius: var(--r); background: var(--ink); color: #fff;
  font-weight: 600; font-size: 0.92rem; text-decoration: none; transition: background-color 0.18s ease, color 0.18s ease;
}
body.fp-ed .join-button:hover { background: transparent; color: var(--ink); }

body.fp-ed .seller-quick-actions { display: inline-flex; align-items: center; gap: 8px; margin-left: 10px; }
body.fp-ed .seller-site-header .seller-quick-actions { margin-left: auto; }
body.fp-ed .seller-site-header .fp-nav-trigger.is-active,
body.fp-ed .seller-site-header .nav-link.is-active { color: var(--purple, #1d4ed8); }
body.fp-ed .seller-notification-shell, body.fp-ed .seller-help-shell { position: relative; }
body.fp-ed .seller-icon-button { position: relative; width: 40px; height: 40px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--ink); display: grid; place-items: center; cursor: pointer; font-weight: 700; font-size: 1rem; transition: background-color 0.16s ease, border-color 0.16s ease; }
body.fp-ed .seller-icon-button:hover { background: var(--band); border-color: var(--line-2); }
body.fp-ed .seller-icon-button svg { width: 19px; height: 19px; }
body.fp-ed .seller-notification-badge { position: absolute; top: -3px; right: -3px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--ink); color: var(--paper); font-size: 0.62rem; font-weight: 700; display: grid; place-items: center; }
body.fp-ed .seller-notification-badge:empty { display: none; }
body.fp-ed .seller-profile-menu { position: relative; margin-left: 4px; }
body.fp-ed .seller-profile-button { display: inline-flex; align-items: center; gap: 9px; max-width: 230px; padding: 4px 10px 4px 4px; border: 1px solid var(--line); border-radius: var(--pill); background: var(--paper); cursor: pointer; }
body.fp-ed .seller-profile-button:hover { border-color: var(--line-2); background: var(--band); }
body.fp-ed .seller-profile-avatar { width: 36px; height: 36px; flex: none; border-radius: 50%; overflow: hidden; background: var(--band); color: var(--ink); display: grid; place-items: center; font-size: 0.78rem; font-weight: 700; letter-spacing: 0; }
body.fp-ed .seller-profile-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.fp-ed .seller-profile-copy { display: flex; flex-direction: column; line-height: 1.18; min-width: 0; text-align: left; }
body.fp-ed .seller-profile-copy strong { font-size: 0.85rem; font-weight: 600; max-width: 130px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.fp-ed .seller-profile-copy small { font-size: 0.72rem; color: var(--muted); max-width: 130px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.fp-ed .seller-profile-chevron { width: 12px; height: 12px; flex: none; color: var(--muted); }
body.fp-ed .seller-profile-dropdown, body.fp-ed .seller-notification-menu, body.fp-ed .seller-help-menu { position: absolute; right: 0; top: calc(100% + 8px); background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); box-shadow: 0 18px 44px rgba(0, 0, 0, 0.12); padding: 8px; z-index: 70; }
body.fp-ed .seller-profile-dropdown { min-width: 248px; }
body.fp-ed .seller-help-menu { min-width: 200px; }
body.fp-ed .seller-notification-menu { width: 330px; max-width: 86vw; padding: 0; }
body.fp-ed .seller-profile-dropdown[hidden], body.fp-ed .seller-notification-menu[hidden], body.fp-ed .seller-help-menu[hidden] { display: none; }
body.fp-ed .seller-profile-menu-item, body.fp-ed .seller-switch-buyer-card { display: block; padding: 9px 12px; border-radius: var(--r); color: var(--ink); text-decoration: none; }
body.fp-ed .seller-profile-menu-item span, body.fp-ed .seller-switch-buyer-card span { display: block; font-weight: 600; font-size: 0.87rem; }
body.fp-ed .seller-profile-menu-item small, body.fp-ed .seller-switch-buyer-card small { display: block; font-size: 0.74rem; color: var(--muted); margin-top: 1px; }
body.fp-ed .seller-profile-menu-item:hover, body.fp-ed .seller-switch-buyer-card:hover, body.fp-ed .seller-help-menu-item:hover { background: var(--band); }
body.fp-ed .seller-switch-buyer-card { border: 1px solid var(--line); margin-bottom: 6px; background: var(--bg); }
body.fp-ed .seller-profile-menu-item-muted span { color: var(--muted); }
body.fp-ed .seller-help-menu-item { display: block; padding: 9px 12px; border-radius: var(--r); color: var(--ink); text-decoration: none; font-size: 0.86rem; }
body.fp-ed .seller-notification-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
body.fp-ed .seller-notification-head strong { display: block; font-size: 0.9rem; }
body.fp-ed .seller-notification-head span { display: block; font-size: 0.74rem; color: var(--muted); }
body.fp-ed .seller-notification-head button { border: 0; background: none; color: var(--ink); font-size: 0.76rem; font-weight: 600; cursor: pointer; text-decoration: underline; }
body.fp-ed .seller-notification-list { max-height: 372px; overflow-y: auto; padding: 6px; }
body.fp-ed .seller-notification-empty { padding: 26px 16px; text-align: center; color: var(--muted); font-size: 0.86rem; }
body.fp-ed .seller-notification-item {
  display: flex; align-items: flex-start; gap: 11px; width: 100%; text-align: left; border: 0; background: transparent;
  padding: 11px 12px; border-radius: var(--r); position: relative; cursor: pointer; font-family: inherit;
  transition: background 0.16s ease;
}
body.fp-ed .seller-notification-item:hover { background: var(--band); }
body.fp-ed .seller-notification-ic {
  flex-shrink: 0; width: 36px; height: 36px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--brand) 12%, transparent); color: var(--brand);
}
body.fp-ed .seller-notification-ic svg { width: 18px; height: 18px; }
body.fp-ed .seller-notification-ic--payment { background: rgba(13, 155, 102, 0.12); color: #0d9b66; }
body.fp-ed .seller-notification-ic--review { background: rgba(185, 119, 10, 0.13); color: #b9770a; }
body.fp-ed .seller-notification-ic--shield, body.fp-ed .seller-notification-ic--alert { background: rgba(217, 45, 32, 0.1); color: #d92d20; }
body.fp-ed .seller-notification-body { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
body.fp-ed .seller-notification-top { display: flex; align-items: center; gap: 8px; }
body.fp-ed .seller-notification-tag {
  font-size: 0.64rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--brand);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
body.fp-ed .seller-notification-time { margin-left: auto; flex-shrink: 0; font-size: 0.7rem; color: var(--muted); white-space: nowrap; }
body.fp-ed .seller-notification-item strong { display: block; font-size: 0.86rem; font-weight: 600; color: var(--ink); line-height: 1.3; }
body.fp-ed .seller-notification-item p {
  margin: 0; font-size: 0.81rem; color: var(--muted); line-height: 1.4;
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
body.fp-ed .seller-notification-item.is-unread { background: color-mix(in srgb, var(--brand) 5%, transparent); }
body.fp-ed .seller-notification-item.is-unread::after {
  content: ""; position: absolute; right: 10px; top: 14px; width: 7px; height: 7px; border-radius: 50%; background: var(--brand);
}
body.fp-ed .seller-notification-item.is-unread .seller-notification-time { margin-right: 12px; }
body.fp-ed .seller-notification-item.is-unread strong { font-weight: 700; }
body.fp-ed .seller-notification-foot { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-top: 1px solid var(--line); }
body.fp-ed .seller-notification-foot-link {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 34px; border-radius: var(--r);
  font-size: 0.78rem; font-weight: 600; text-decoration: none; color: var(--brand); background: color-mix(in srgb, var(--brand) 9%, transparent);
  transition: background 0.16s ease;
}
body.fp-ed .seller-notification-foot-link:hover { background: color-mix(in srgb, var(--brand) 16%, transparent); }
body.fp-ed .seller-notification-foot-link.is-secondary { color: var(--ink-2, var(--ink)); background: var(--band); }
body.fp-ed .seller-notification-foot-link.is-secondary:hover { background: var(--line); }
body.fp-ed .seller-notification-foot-link svg { width: 15px; height: 15px; }

.notification-detail-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 18px; }
.notification-detail-modal[hidden] { display: none; }
.notification-detail-backdrop { position: absolute; inset: 0; background: rgba(11, 11, 12, 0.42); }
.notification-detail-dialog {
  position: relative; z-index: 1; width: 460px; max-width: 100%; background: #ffffff;
  border: 1px solid #e7e5df; border-radius: 14px; padding: 28px 26px 24px; box-shadow: 0 30px 70px rgba(0, 0, 0, 0.28);
}
.notification-detail-close { position: absolute; top: 12px; right: 14px; border: 0; background: transparent; font-size: 1.6rem; line-height: 1; color: #6d6d72; cursor: pointer; }
.notification-detail-dialog .seller-dashboard-kicker, .notification-detail-dialog [data-notification-detail-category] {
  font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: #6d6d72; font-weight: 600;
}
.notification-detail-dialog h2 { margin: 10px 0 12px; font-family: var(--display); font-size: 1.32rem; line-height: 1.2; color: #0b0b0c; }
.notification-detail-dialog p { margin: 0; color: #0b0b0c; font-size: 0.96rem; line-height: 1.65; white-space: pre-line; }
.notification-detail-dialog small { display: block; margin-top: 18px; color: #6d6d72; font-size: 0.8rem; }
body.notification-detail-open { overflow: hidden; }
@media (max-width: 480px) { .notification-detail-dialog { padding: 24px 18px 20px; } }

body.fp-ed .menu-toggle {
  display: none; width: 46px; height: 44px; border: 1px solid var(--ink); border-radius: var(--r);
  background: transparent; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
}
body.fp-ed .menu-toggle span { display: block; width: 18px; height: 1.5px; background: var(--ink); }

/* search-suggestions dropdown (main.js: shell.is-open + suggestions[hidden]) */
body.fp-ed .search-suggestions {
  position: absolute; top: calc(100% + 10px); left: 0; right: 0; z-index: 40;
  padding: 8px; border: 1px solid var(--line-2); border-radius: 18px; background: var(--bg);
  box-shadow: 0 2px 6px rgba(18, 22, 30, 0.05), 0 30px 60px -30px rgba(18, 22, 30, 0.45);
  text-align: left;
  max-height: min(72vh, 480px); overflow-y: auto; overscroll-behavior: contain;
}
body.fp-ed .search-suggestions::-webkit-scrollbar { width: 8px; }
body.fp-ed .search-suggestions::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 999px; border: 2px solid var(--bg); }
body.fp-ed .search-suggestions[hidden] { display: none; }
/* flip above the bar when there isn't room below (main.js toggles .is-flip-up) */
body.fp-ed .search-suggestions.is-flip-up { top: auto; bottom: calc(100% + 10px); }
body.fp-ed .search-suggestions-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 10px 8px; }
body.fp-ed .search-suggestions-top strong { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.fp-ed .search-suggestions-top span { font-size: 0.72rem; color: var(--faint); white-space: nowrap; flex-shrink: 0; }
body.fp-ed .search-suggestions-list { display: flex; flex-direction: column; gap: 2px; }

/* one suggestion row: [icon chip] [copy] [type pill] */
body.fp-ed .search-suggestions a,
body.fp-ed .search-suggestion-item {
  display: flex; width: 100%; align-items: center; gap: 11px; padding: 8px 10px; border: 0; border-radius: 12px;
  background: transparent; font-family: inherit; font-size: 0.92rem; color: var(--ink); text-align: left; text-decoration: none; cursor: pointer;
  transition: background-color 0.16s ease;
}
body.fp-ed .search-suggestion-item:hover,
body.fp-ed .search-suggestion-item:focus-visible { background: var(--band); outline: none; }

body.fp-ed .search-suggestion-ic {
  flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 10px; background: var(--band); color: var(--muted);
  transition: background-color 0.16s ease, color 0.16s ease;
}
body.fp-ed .search-suggestion-ic svg { width: 17px; height: 17px; }
body.fp-ed .search-suggestion-item:hover .search-suggestion-ic { background: var(--bg); }

body.fp-ed .search-suggestion-copy { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1; }
body.fp-ed .search-suggestion-copy strong { font-weight: 600; font-size: 0.93rem; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.fp-ed .search-suggestion-copy > span { font-size: 0.75rem; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.fp-ed .search-suggestion-copy strong mark { background: transparent; color: var(--brand, #1d4ed8); font-weight: 800; }

body.fp-ed .search-suggestion-tag {
  flex-shrink: 0; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase;
  color: var(--muted); background: var(--band); border: 1px solid var(--line-2); border-radius: 999px; padding: 3px 9px;
}

/* tag-type rows wear the brand accent so autocomplete tags read as the primary suggestion */
body.fp-ed .search-suggestion-item.is-tag .search-suggestion-ic { background: rgba(37, 99, 235, 0.1); color: var(--brand, #1d4ed8); }
body.fp-ed .search-suggestion-item.is-tag:hover .search-suggestion-ic { background: rgba(37, 99, 235, 0.16); }
body.fp-ed .search-suggestion-item.is-tag .search-suggestion-tag { color: var(--brand, #1d4ed8); background: rgba(37, 99, 235, 0.08); border-color: rgba(37, 99, 235, 0.22); }

body.fp-ed .search-suggestion-empty { padding: 16px 12px; font-size: 0.85rem; color: var(--muted); text-align: center; }

/* homepage hero search bar — brand focus ring while typing */
body.fp-ed .ed-home-search:focus-within {
  border-color: var(--brand, #1d4ed8);
  box-shadow: 0 24px 50px -28px rgba(18, 22, 30, 0.4), 0 0 0 4px rgba(37, 99, 235, 0.12);
}

@media (max-width: 1000px) {
  body.fp-ed .menu-toggle { display: flex; }
  body.fp-ed .navigation {
    position: absolute; top: 100%; left: 0; right: 0; display: none;
    background: var(--bg); border-bottom: 1px solid var(--ink); box-shadow: 0 16px 30px -18px rgba(11, 11, 12, 0.3);
  }
  body.fp-ed .navigation.is-open { display: block; }
  body.fp-ed .nav-links { flex-direction: column; align-items: stretch; gap: 2px; width: 100%; max-width: var(--maxw); margin-inline: auto; padding: 14px var(--gut) 22px; }
  body.fp-ed .nav-link, body.fp-ed .dropdown-toggle { min-height: 46px; justify-content: space-between; width: 100%; }
  body.fp-ed .dropdown { width: 100%; }
  body.fp-ed .dropdown-menu { position: static; width: 100%; margin-top: 4px; box-shadow: none; background: var(--band); }
  body.fp-ed .nav-link-secondary, body.fp-ed .join-button { width: 100%; justify-content: center; margin: 6px 0 0; min-height: 46px; }
}

body.fp-ed .nav-menu { position: relative; }
body.fp-ed .nav-menu-toggle { gap: 5px; }
body.fp-ed .nav-menu-chevron { width: 11px; height: 11px; color: var(--muted); transition: transform 0.18s ease; }
body.fp-ed .nav-menu-toggle[aria-expanded="true"] { color: var(--ink); }
body.fp-ed .nav-menu-toggle[aria-expanded="true"] .nav-menu-chevron { transform: rotate(180deg); }
body.fp-ed .nav-menu-panel { width: 300px; }
body.fp-ed .seller-reports-head { padding: 8px 12px 6px; }
body.fp-ed .seller-reports-head strong { display: block; font-size: 0.82rem; font-weight: 700; }
body.fp-ed .seller-reports-head span { display: block; font-size: 0.72rem; color: var(--muted); }
body.fp-ed .seller-report-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: var(--r); color: var(--ink); text-decoration: none; font-size: 0.88rem; font-weight: 500; }
body.fp-ed .seller-report-item:hover { background: var(--band); }
body.fp-ed .seller-report-item b { min-width: 26px; height: 22px; padding: 0 7px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--band); color: var(--ink); font-size: 0.78rem; font-weight: 700; }
body.fp-ed .seller-report-item:hover b { background: var(--paper); }
body.fp-ed .seller-report-primary { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 0 4px; padding: 11px 12px; border-radius: var(--r); border: 1px solid var(--line-2); background: var(--band); color: var(--ink); text-decoration: none; }
body.fp-ed .seller-report-primary:hover { border-color: var(--ink); background: var(--paper); }
body.fp-ed .seller-report-primary-tx { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
body.fp-ed .seller-report-primary-tx strong { font-size: 0.88rem; font-weight: 700; }
body.fp-ed .seller-report-primary-tx small { font-size: 0.72rem; color: var(--muted); }
body.fp-ed .seller-report-primary svg { flex-shrink: 0; color: var(--muted); transition: transform 0.16s ease; }
body.fp-ed .seller-report-primary:hover svg { color: var(--ink); transform: translateX(2px); }
body.fp-ed .seller-reports-sub { padding: 6px 12px 2px; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); }

/* Inbox quick-view (Fiverr-style) */
body.fp-ed .seller-inbox-shell { position: relative; }
body.fp-ed .seller-inbox-button { display: inline-flex; align-items: center; width: auto; height: 40px; gap: 7px; padding: 0 14px 0 12px; border-radius: var(--pill); }
body.fp-ed .seller-inbox-text { font-size: 0.9rem; font-weight: 500; }
body.fp-ed .seller-inbox-badge { top: -4px; right: 4px; }
body.fp-ed .seller-inbox-menu { position: absolute; right: 0; top: calc(100% + 8px); width: 344px; max-width: 86vw; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); box-shadow: 0 18px 44px rgba(0, 0, 0, 0.12); z-index: 70; overflow: hidden; }
body.fp-ed .seller-inbox-menu[hidden] { display: none; }
body.fp-ed .seller-inbox-list { max-height: 372px; overflow-y: auto; padding: 4px; }
body.fp-ed .seller-inbox-empty { padding: 26px 16px; text-align: center; color: var(--muted); font-size: 0.86rem; }
body.fp-ed .seller-inbox-empty a { color: var(--ink); font-weight: 600; }
body.fp-ed .seller-inbox-item { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: var(--r); color: var(--ink); text-decoration: none; }
body.fp-ed .seller-inbox-item + .seller-inbox-item { border-top: 1px solid var(--line); border-radius: 0; }
body.fp-ed .seller-inbox-item:hover { background: var(--band); border-radius: var(--r); }
body.fp-ed .seller-inbox-av { width: 38px; height: 38px; flex: none; border-radius: 50%; overflow: hidden; background: var(--band); display: grid; place-items: center; font-size: 0.76rem; font-weight: 700; color: var(--ink); }
body.fp-ed .seller-inbox-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.fp-ed .seller-inbox-body { min-width: 0; flex: 1; }
body.fp-ed .seller-inbox-row1 { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
body.fp-ed .seller-inbox-row1 strong { font-size: 0.86rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.fp-ed .seller-inbox-row1 em { font-size: 0.72rem; color: var(--muted); font-style: normal; flex: none; }
body.fp-ed .seller-inbox-preview { display: block; font-size: 0.82rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
body.fp-ed .seller-inbox-item.is-unread strong { font-weight: 700; }
body.fp-ed .seller-inbox-item.is-unread .seller-inbox-preview { color: var(--ink-2); }
body.fp-ed .seller-inbox-dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--ink); }
body.fp-ed .seller-inbox-foot { display: block; padding: 12px; text-align: center; border-top: 1px solid var(--line); color: var(--ink); font-weight: 600; font-size: 0.86rem; text-decoration: none; }
body.fp-ed .seller-inbox-foot:hover { background: var(--band); }

body.fp-ed .seller-inbox-menu { width: 360px; border-radius: 18px; border-color: color-mix(in srgb, var(--line) 80%, transparent); box-shadow: 0 24px 60px -22px rgba(13, 18, 30, 0.5), 0 4px 14px -8px rgba(13, 18, 30, 0.3); background: var(--paper); }
body.fp-ed .seller-inbox-menu .seller-notification-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 14px 16px 12px; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); background: var(--paper); }
body.fp-ed .seller-inbox-menu .seller-notification-head strong { font-size: 0.98rem; letter-spacing: -0.01em; }
body.fp-ed .seller-inbox-menu .seller-notification-head span { color: var(--muted); font-size: 0.78rem; }
body.fp-ed .seller-inbox-list { padding: 6px; }
body.fp-ed .seller-inbox-item { position: relative; gap: 12px; padding: 11px 12px 11px 13px; border-radius: 13px; transition: background 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease; }
body.fp-ed .seller-inbox-item + .seller-inbox-item { border-top: 0; }
body.fp-ed .seller-inbox-item:hover { background: var(--band); transform: translateY(-1px); box-shadow: 0 8px 20px -16px rgba(13, 18, 30, 0.55); border-radius: 13px; }
body.fp-ed .seller-inbox-item.is-unread { background: color-mix(in srgb, var(--brand) 7%, transparent); }
body.fp-ed .seller-inbox-item.is-unread::before { content: ""; position: absolute; left: 4px; top: 12px; bottom: 12px; width: 3px; border-radius: 3px; background: var(--brand); }
body.fp-ed .seller-inbox-item.is-unread:hover { background: color-mix(in srgb, var(--brand) 12%, transparent); }
body.fp-ed .seller-inbox-av { width: 42px; height: 42px; box-shadow: 0 0 0 1px color-mix(in srgb, var(--line) 60%, transparent); }
body.fp-ed .seller-inbox-row1 strong { font-size: 0.88rem; }
body.fp-ed .seller-inbox-item.is-unread .seller-inbox-row1 em { color: var(--brand); font-weight: 600; }
body.fp-ed .seller-inbox-dot { width: 9px; height: 9px; background: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent); }
body.fp-ed .seller-inbox-foot { padding: 13px; color: var(--brand); border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent); transition: background 0.16s ease; }
body.fp-ed .seller-inbox-foot:hover { background: color-mix(in srgb, var(--brand) 8%, transparent); }

/* Inbox dropdown skeleton loading */
body.fp-ed .seller-inbox-skel { display: flex; align-items: center; gap: 12px; padding: 11px 12px 11px 13px; }
body.fp-ed .seller-inbox-skel-body { flex: 1; display: flex; flex-direction: column; gap: 8px; }
body.fp-ed .seller-inbox-skel-av { width: 42px; height: 42px; border-radius: 50%; flex: none; }
body.fp-ed .seller-inbox-skel-line { height: 11px; border-radius: 6px; }
body.fp-ed .seller-inbox-skel-line.is-short { width: 52%; }
body.fp-ed .seller-inbox-skel-av,
body.fp-ed .seller-inbox-skel-line { background: linear-gradient(90deg, var(--band) 25%, #e9e9e9 37%, var(--band) 63%); background-size: 200% 100%; animation: ed-skel 1.5s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
  body.fp-ed .seller-inbox-skel-av,
  body.fp-ed .seller-inbox-skel-line { animation: none !important; }
}

/* coming-soon toast (Business Overview, etc.) */
.fp-nav-toast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(12px); z-index: 300; max-width: 90vw; padding: 11px 18px; border-radius: 999px; background: #0b0b0c; color: #fff; font-family: var(--body); font-size: 0.86rem; font-weight: 500; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28); opacity: 0; pointer-events: none; transition: opacity 0.2s ease, transform 0.2s ease; }
.fp-nav-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }

@media (max-width: 1000px) {
  body.fp-ed .nav-menu { width: 100%; }
  body.fp-ed .nav-menu-panel { width: 100%; }
  body.fp-ed .seller-quick-actions { flex-wrap: wrap; width: 100%; }
  body.fp-ed .seller-inbox-shell { flex: 1 1 100%; position: static; margin-top: 4px; }
  body.fp-ed .seller-inbox-button { width: 100%; justify-content: flex-start; min-height: 46px; border-radius: var(--r); }
  body.fp-ed .seller-inbox-menu { position: static; width: 100%; max-width: none; margin-top: 6px; box-shadow: none; }
}

.ed-card-thumb-link { position: relative; display: block; }
.ed-save {
  position: absolute; top: 12px; right: 12px; z-index: 3;
  width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; border: 1px solid var(--line); background: var(--bg); color: var(--ink);
  cursor: pointer; opacity: 0; transform: translateY(-4px);
  transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.18s ease, color 0.18s ease;
}
.ed-card:hover .ed-save, .ed-save.is-saved, .ed-save:focus-visible { opacity: 1; transform: none; }
.ed-save svg { width: 17px; height: 17px; }
.ed-save.is-saved { background: var(--ink); color: #fff; border-color: var(--ink); }
.ed-tpro, .ed-job-card { position: relative; }
.ed-tpro:hover .ed-save, .ed-job-card:hover .ed-save { opacity: 1; transform: none; }
.ed-tpro .ed-save, .ed-job-card .ed-save { top: 14px; right: 14px; }
/* Saved / Wishlist page */
.ed-saved-head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; justify-content: space-between; margin-bottom: 18px; }
.ed-saved-count { font-family: var(--body); font-size: 0.78rem; font-weight: 700; color: var(--brand); background: rgba(37, 99, 235, 0.08); border-radius: var(--pill); padding: 2px 9px; margin-left: 6px; }
.ed-saved-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.ed-saved-grid.is-wide { grid-template-columns: minmax(0, 1fr); }
.ed-empty { text-align: center; padding: 60px 20px; border: 1px dashed var(--line-2); border-radius: var(--r2); }
.ed-empty h3 { font-size: 1.2rem; }
.ed-empty p { margin: 8px 0 0; color: var(--muted); }
.ed-skeleton { opacity: 0.5; pointer-events: none; }

.ed-rc-head { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 18px; justify-content: space-between; margin-bottom: 20px; }
.ed-rc-head-cta { display: inline-flex; gap: 10px; flex-wrap: wrap; }
.ed-rc-shell { display: grid; grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) minmax(290px, 340px); gap: 18px; align-items: start; }

.ed-rc-list { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ed-rc-search { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line-2); border-radius: var(--pill); padding: 8px 14px; background: var(--paper); }
.ed-rc-search svg { flex: none; color: var(--muted); }
.ed-rc-search input { border: 0; outline: 0; background: transparent; width: 100%; font: inherit; font-size: 0.9rem; color: var(--ink); }
.ed-rc-cards { display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 240px); overflow-y: auto; padding-right: 2px; }
.ed-rc-card { text-align: left; width: 100%; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); padding: 13px 14px; cursor: pointer; display: grid; gap: 9px; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.ed-rc-card:hover { border-color: var(--ink); box-shadow: 0 8px 22px -16px rgba(11,11,12,0.5); }
.ed-rc-card.is-active { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.ed-rc-card-top { display: flex; align-items: center; gap: 9px; min-width: 0; }
.ed-rc-card-top .ed-av { width: 32px; height: 32px; font-size: 0.72rem; flex: none; }
.ed-rc-card-id { min-width: 0; display: grid; flex: 1; }
.ed-rc-card-nm { font-weight: 700; font-size: 0.9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-rc-card-hd { font-size: 0.72rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-rc-card-title { font-size: 0.84rem; color: var(--ink-2); line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ed-rc-card-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; justify-content: space-between; }
.ed-rc-card-foot .ed-rc-card-money { font-weight: 700; font-size: 0.82rem; color: #1f7a3d; }
.ed-rc-chips { display: inline-flex; flex-wrap: wrap; gap: 4px 10px; }
.ed-rc-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 0.68rem; font-weight: 600; color: var(--muted); }
.ed-rc-chip svg { width: 12px; height: 12px; flex: none; }
.ed-rc-chip.is-alert { color: #9a6a00; }

.ed-rc-detail { min-width: 0; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); overflow: hidden; }
.ed-rc-back { display: none; align-items: center; gap: 6px; background: var(--bg); border: 1px solid var(--line-2); color: var(--ink-2); font: inherit; font-size: 0.82rem; font-weight: 600; cursor: pointer; padding: 7px 13px; border-radius: var(--pill); margin: 14px 16px 0; }
.ed-rc-back:hover { border-color: var(--ink); }
.ed-rc-back svg { width: 14px; height: 14px; flex: none; }
.ed-rc-detail-body { padding: 18px 20px 22px; display: grid; gap: 18px; flex: 1; align-content: center; }
.ed-rc-dhead { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: flex-start; justify-content: space-between; }
.ed-rc-dhead h2 { font-family: var(--display); font-weight: 600; font-size: 1.18rem; line-height: 1.2; margin: 4px 0 0; }
.ed-rc-dnote { font-size: 0.82rem; line-height: 1.45; color: var(--ink-2); display: flex; align-items: flex-start; gap: 9px; background: #eef3fc; border: 1px solid #cdddf6; border-radius: var(--r2); padding: 11px 13px; }
.ed-rc-dnote svg { flex: none; color: #2456b8; margin-top: 1px; }
.ed-rc-context { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 12px 16px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 13px 15px; }
.ed-rc-context > div { display: grid; gap: 2px; min-width: 0; }
.ed-rc-context dt { font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); display: flex; align-items: center; gap: 5px; }
.ed-rc-context dt svg { width: 12px; height: 12px; flex: none; opacity: 0.85; }
.ed-rc-context dd { margin: 0; font-weight: 700; font-size: 0.9rem; overflow: hidden; text-overflow: ellipsis; }
.ed-rc-context dd.is-money { color: #1f7a3d; }
.ed-rc-context a.ed-rc-ctx-link { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; font-size: 0.82rem; font-weight: 600; }
.ed-rc-sec { display: grid; gap: 10px; }
.ed-rc-sec > h3 { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin: 0; }

/* evidence */
.ed-rc-evi { display: grid; gap: 10px; }
.ed-rc-evi-item { border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 11px 13px; display: grid; gap: 7px; }
.ed-rc-evi-head { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; flex-wrap: wrap; }
.ed-rc-evi-head strong { font-weight: 700; }
.ed-rc-evi-head .ed-rc-evi-when { color: var(--muted); font-size: 0.72rem; }
.ed-rc-evi-note { font-size: 0.86rem; line-height: 1.45; }
.ed-rc-evi-up { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 0 0; }
.ed-rc-evi-names { font-size: 0.76rem; color: var(--muted); }

/* raise-a-dispute picker (in modal) */
.ed-rc-raise-list { display: grid; gap: 8px; max-height: 300px; overflow-y: auto; margin: 4px 0 2px; }
.ed-rc-raise-opt { text-align: left; width: 100%; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); padding: 10px 12px; cursor: pointer; display: grid; gap: 3px; }
.ed-rc-raise-opt:hover, .ed-rc-raise-opt.is-on { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.ed-rc-raise-opt b { font-size: 0.88rem; }
.ed-rc-raise-opt span { font-size: 0.76rem; color: var(--muted); }

.ed-rc-empty { text-align: center; padding: 56px 22px; color: var(--muted); }
.ed-rc-empty svg { color: var(--line-2); margin-bottom: 10px; }
.ed-rc-empty h3 { font-size: 1.05rem; color: var(--ink); margin: 0 0 4px; }
.ed-rc-empty p { margin: 0; }

/* activity timeline */
.ed-rc-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.ed-rc-timeline li { display: flex; gap: 10px; align-items: flex-start; }
.ed-rc-tl-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--brand); margin-top: 5px; flex: none; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); }
.ed-rc-timeline strong { display: block; font-size: 0.84rem; font-weight: 600; }
.ed-rc-timeline span { font-size: 0.72rem; color: var(--muted); }
.ed-rc-range { width: 100%; accent-color: var(--brand); }

/* self-contained modal (raise / propose / accept / confirm) */
.ed-rc-modal { position: fixed; inset: 0; z-index: 200; background: rgba(11, 11, 12, 0.5); display: flex; align-items: center; justify-content: center; padding: 18px; }
.ed-rc-dialog { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); box-shadow: 0 30px 80px -30px rgba(11, 11, 12, 0.6); width: min(460px, 94vw); max-height: 88vh; display: flex; flex-direction: column; overflow: hidden; }
.ed-rc-mhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; border-bottom: 1px solid var(--line); }
.ed-rc-mhead strong { font-size: 1rem; }
.ed-rc-mx { background: none; border: 0; font-size: 1.5rem; line-height: 1; color: var(--muted); cursor: pointer; padding: 0 2px; }
.ed-rc-mbody { padding: 16px 18px; overflow-y: auto; display: grid; gap: 13px; }
.ed-rc-mfoot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 18px; border-top: 1px solid var(--line); }
.ed-rc-mstatus { font-size: 0.78rem; color: var(--muted); }
.ed-rc-macts { display: inline-flex; gap: 8px; }
.ed-rc-mhead-t { display: inline-flex; align-items: center; gap: 8px; }
.ed-rc-mhead-t svg { width: 17px; height: 17px; flex: none; color: var(--brand); }
.ed-rc-mhead-t strong { font-size: 1rem; }
.ed-rc-slider-scale { display: flex; justify-content: space-between; font-size: 0.7rem; color: var(--muted); margin-top: 3px; }

/* header summary stats (Open · Pending settlement · Resolved) */
.ed-rc-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0 0 22px; }
.ed-rc-stat { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); padding: 13px 15px; transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease; }
.ed-rc-stat:hover { border-color: var(--line); box-shadow: 0 14px 30px -24px rgba(11,11,12,0.55); transform: translateY(-2px); }
.ed-rc-stat-ic { width: 40px; height: 40px; flex: none; border-radius: 12px; display: grid; place-items: center; background: var(--band); color: var(--ink); }
.ed-rc-stat-ic svg { width: 19px; height: 19px; }
.ed-rc-stat.is-open .ed-rc-stat-ic { background: rgba(37,99,235,0.09); color: var(--brand); }
.ed-rc-stat.is-warn .ed-rc-stat-ic { background: rgba(154,106,0,0.1); color: #9a6a00; }
.ed-rc-stat.is-done .ed-rc-stat-ic { background: rgba(31,122,61,0.1); color: #1f7a3d; }
.ed-rc-stat-body { display: grid; gap: 1px; min-width: 0; }
.ed-rc-stat-v { font-family: var(--display); font-weight: 600; font-size: 1.4rem; line-height: 1.05; letter-spacing: -0.02em; }
.ed-rc-stat-l { font-size: 0.74rem; color: var(--muted); font-weight: 600; }

/* section header with leading icon */
.ed-rc-sec-head { display: flex; align-items: center; gap: 8px; }
.ed-rc-sec-head svg { width: 15px; height: 15px; flex: none; color: var(--muted); }
.ed-rc-sec-head h3 { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin: 0; }

/* dispute-id chip + header meta row */
.ed-rc-idchip { display: inline-flex; align-items: center; gap: 5px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.03em; color: var(--muted); background: var(--bg); border: 1px solid var(--line); border-radius: var(--pill); padding: 3px 9px; }
.ed-rc-idchip svg { width: 11px; height: 11px; flex: none; }
.ed-rc-dhead-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 9px; margin-top: 7px; font-size: 0.8rem; color: var(--muted); }
.ed-rc-dhead-meta svg { width: 12px; height: 12px; flex: none; opacity: 0.8; vertical-align: -1px; }

/* evidence empty */
.ed-rc-evi-empty { display: flex; align-items: center; gap: 9px; font-size: 0.84rem; color: var(--muted); border: 1px dashed var(--line-2); border-radius: var(--r2); padding: 13px 14px; }
.ed-rc-evi-empty svg { flex: none; color: var(--line-2); }

/* center: chat column (counterpart header + scrollable thread + pinned composer) */
.ed-rc-chat { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.ed-rc-chat-head { flex: none; display: flex; align-items: center; gap: 11px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.ed-rc-av { position: relative; flex: none; display: inline-flex; }
.ed-rc-av-dot { position: absolute; right: -1px; bottom: -1px; width: 11px; height: 11px; border-radius: 50%; background: #1a9b5f; border: 2px solid var(--paper); }
.ed-rc-chat-head .ed-av { width: 42px; height: 42px; font-size: 0.82rem; }
.ed-rc-chat-head-id { display: grid; gap: 2px; min-width: 0; flex: 1; }
.ed-rc-chat-head-nm { font-weight: 700; font-size: 0.95rem; display: flex; align-items: center; gap: 7px; min-width: 0; }
.ed-rc-chat-head-nm > span:first-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-rc-handle { font-weight: 500; font-size: 0.78rem; color: var(--muted); flex: none; }
.ed-rc-chat-head-sub { font-size: 0.75rem; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ed-rc-on { display: inline-flex; align-items: center; gap: 5px; }
.ed-rc-on .ed-rc-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); flex: none; }
.ed-rc-on.is-online { color: #1a9b5f; }
.ed-rc-on.is-online .ed-rc-dot { background: #1a9b5f; }
.ed-rc-chat-head > .ed-pill { margin-left: auto; flex: none; align-self: flex-start; }
.ed-rc-chat-thread { flex: 1; min-height: 0; overflow-y: auto; padding: 15px 16px; display: grid; gap: 12px; align-content: start; }
.ed-rc-chat-foot { flex: none; border-top: 1px solid var(--line); padding: 11px 13px; display: grid; gap: 10px; }
.ed-rc-chat-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ed-rc-chat-act { flex: 1 1 140px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; font: inherit; font-size: 0.82rem; font-weight: 600; cursor: pointer; padding: 9px 12px; border-radius: var(--r2); border: 1px solid var(--line-2); background: var(--paper); color: var(--ink); transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; }
.ed-rc-chat-act svg { width: 14px; height: 14px; flex: none; }
.ed-rc-chat-act.is-propose:hover { border-color: var(--brand); color: var(--brand); }
.ed-rc-chat-act.is-close { border-color: #b3261e; background: rgba(179,38,30,0.06); color: #b3261e; font-weight: 700; }
.ed-rc-chat-act.is-close:hover { background: #b3261e; color: #fff; box-shadow: 0 8px 20px -14px rgba(179,38,30,0.7); }
.ed-rc-composer { display: flex; align-items: flex-end; gap: 9px; }
.ed-rc-composer textarea { flex: 1; resize: none; border: 1px solid var(--line-2); border-radius: var(--r2); padding: 9px 12px; font: inherit; font-size: 0.88rem; background: var(--paper); color: var(--ink); max-height: 120px; min-height: 40px; line-height: 1.4; }
.ed-rc-composer textarea:focus { outline: 0; border-color: var(--ink); }
.ed-rc-composer .ed-btn { flex: none; }
.ed-rc-closed-note { flex: none; font-size: 0.8rem; color: var(--muted); text-align: center; padding: 13px 14px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: center; gap: 7px; }
.ed-rc-closed-note svg { width: 14px; height: 14px; flex: none; }

/* right: info column (dispute summary + order + about + settlement + evidence + timeline) */
.ed-rc-side { min-width: 0; display: grid; gap: 15px; align-content: start; }
.ed-rc-side-top { border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); padding: 14px 15px; display: grid; gap: 11px; }
.ed-rc-side-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ed-rc-side-head h2 { font-family: var(--display); font-weight: 600; font-size: 1.02rem; line-height: 1.25; margin: 0; flex: 1 1 auto; min-width: 0; }
.ed-rc-side-sec { display: grid; gap: 10px; }

/* about-the-counterpart card */
.ed-rc-about { border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 13px 14px; display: grid; gap: 13px; }
.ed-rc-about-head { display: flex; align-items: center; gap: 11px; }
.ed-rc-about-head .ed-av { width: 44px; height: 44px; font-size: 0.85rem; }
.ed-rc-about-head .ed-rc-av-dot { border-color: var(--bg); }
.ed-rc-about-id { display: grid; gap: 2px; min-width: 0; }
.ed-rc-about-id strong { font-size: 0.92rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-rc-about-id span { font-size: 0.76rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-rc-about-facts { display: grid; gap: 11px; }
.ed-rc-about-fact { display: flex; align-items: flex-start; gap: 9px; }
.ed-rc-about-fact > svg { width: 14px; height: 14px; flex: none; color: var(--muted); margin-top: 2px; }
.ed-rc-about-fb { display: grid; gap: 1px; min-width: 0; }
.ed-rc-about-fb strong { font-size: 0.83rem; font-weight: 600; word-break: break-word; }
.ed-rc-about-fb span { font-size: 0.72rem; color: var(--muted); }
.ed-rc-about-foot .ed-btn { width: 100%; }

/* highlighted "Close this dispute" button (sits after Settlement) */
.ed-rc-closebtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; font: inherit; font-size: 0.86rem; font-weight: 700; cursor: pointer; padding: 12px 16px; border-radius: var(--r2); border: 1.5px solid #b3261e; background: rgba(179,38,30,0.06); color: #b3261e; transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease; }
.ed-rc-closebtn svg { width: 15px; height: 15px; flex: none; }
.ed-rc-closebtn:hover { background: #b3261e; color: #fff; box-shadow: 0 10px 24px -14px rgba(179,38,30,0.7); }
.ed-rc-closebtn:active { transform: translateY(1px); }

/* evidence — per-item green tick + nicer "Add evidence" + green "uploaded" feedback */
.ed-rc-evi-tick { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: rgba(31,122,61,0.13); color: #1f7a3d; flex: none; }
.ed-rc-evi-tick svg { width: 11px; height: 11px; }
.ed-rc-evi-add { display: inline-flex; align-items: center; gap: 7px; font: inherit; font-size: 0.82rem; font-weight: 600; cursor: pointer; padding: 9px 14px; border-radius: var(--pill); border: 1.5px dashed var(--line-2); background: var(--bg); color: var(--ink); transition: border-color 0.15s ease, background 0.15s ease; }
.ed-rc-evi-add svg { width: 15px; height: 15px; flex: none; }
.ed-rc-evi-add:hover:not(:disabled) { border-color: var(--ink); }
.ed-rc-evi-add:disabled { opacity: 0.55; cursor: default; }
.ed-rc-evi-hint { margin: 8px 0 0; font-size: 0.72rem; color: var(--muted); line-height: 1.45; }
.ed-rc-evi-names.is-up { color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.ed-rc-evi-names.is-ok { color: #1f7a3d; font-weight: 700; display: inline-flex; align-items: center; gap: 5px; }
.ed-rc-evi-names.is-ok svg { width: 14px; height: 14px; flex: none; }
.ed-rc-evi-spin { width: 13px; height: 13px; border-radius: 50%; border: 2px solid var(--line-2); border-top-color: var(--ink); animation: ed-rc-spin 0.7s linear infinite; flex: none; }
@keyframes ed-rc-spin { to { transform: rotate(360deg); } }

/* advanced "Propose a settlement" modal — headline % + live split bar + presets + colored amount rows */
.ed-rc-prop { display: grid; gap: 14px; }
.ed-rc-prop-intro { margin: 0; font-size: 0.85rem; line-height: 1.5; color: var(--ink-2); }
.ed-rc-prop-intro strong { color: #1f7a3d; }
.ed-rc-prop-split { display: flex; align-items: center; justify-content: center; gap: 14px; }
.ed-rc-prop-big { display: grid; gap: 3px; text-align: center; min-width: 96px; padding: 11px 10px; border-radius: var(--r2); border: 1px solid var(--line); background: rgba(37,99,235,0.05); }
.ed-rc-prop-big.is-alt { background: rgba(31,122,61,0.08); }
.ed-rc-prop-big span { font-family: var(--display); font-weight: 600; font-size: 1.55rem; line-height: 1; letter-spacing: -0.02em; color: var(--brand); }
.ed-rc-prop-big.is-alt span { color: #1f7a3d; }
.ed-rc-prop-big small { font-size: 0.66rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.ed-rc-prop-arrow { color: var(--muted); flex: none; }
.ed-rc-split-bar { display: flex; height: 14px; border-radius: var(--pill); overflow: hidden; background: var(--band); border: 1px solid var(--line); }
.ed-rc-split-seg { height: 100%; min-width: 0; transition: width 0.2s ease; }
.ed-rc-split-seg.is-buyer { background: var(--brand); }
.ed-rc-split-seg.is-seller { background: #1f7a3d; }
.ed-rc-split-seg.is-plat { background: var(--muted); }
.ed-rc-prop-presets { display: flex; gap: 7px; flex-wrap: wrap; }
.ed-rc-preset { font: inherit; font-size: 0.76rem; font-weight: 600; cursor: pointer; padding: 6px 12px; border-radius: var(--pill); border: 1px solid var(--line-2); background: var(--paper); color: var(--ink-2); transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease; }
.ed-rc-preset:hover { border-color: var(--ink); }
.ed-rc-preset.is-on { background: var(--brand); border-color: var(--brand); color: #fff; }
.ed-rc-amts { display: grid; gap: 9px; }
.ed-rc-amt-row { display: flex; align-items: center; gap: 9px; font-size: 0.86rem; }
.ed-rc-amt-row strong { margin-left: auto; font-weight: 700; }
.ed-rc-amt-l { color: var(--ink-2); }
.ed-rc-amt-dot { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.ed-rc-amt-dot.is-buyer { background: var(--brand); }
.ed-rc-amt-dot.is-seller { background: #1f7a3d; }
.ed-rc-amt-dot.is-plat { background: var(--muted); }

/* in-chat settlement OFFER card (pending = amber / settled = green) — recipient acts here */
.ed-rc-offer { flex: none; margin: 4px 14px 2px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 13px 14px; display: grid; gap: 12px; }
.ed-rc-offer.is-pending { border-color: rgba(154,106,0,0.4); background: rgba(154,106,0,0.05); }
.ed-rc-offer.is-settled { border-color: rgba(31,122,61,0.4); background: rgba(31,122,61,0.06); }
.ed-rc-offer-head { display: flex; align-items: center; gap: 10px; }
.ed-rc-offer-ic { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 9px; background: rgba(154,106,0,0.13); color: #9a6a00; flex: none; }
.ed-rc-offer-ic.is-done { background: rgba(31,122,61,0.13); color: #1f7a3d; }
.ed-rc-offer-ht { display: grid; gap: 1px; flex: 1; min-width: 0; }
.ed-rc-offer-ht strong { font-size: 0.9rem; font-weight: 700; }
.ed-rc-offer-ht span { font-size: 0.74rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-rc-offer-head > .ed-pill { flex: none; }
.ed-rc-offer-note { margin: 0; font-size: 0.82rem; line-height: 1.45; color: var(--ink-2); background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: 9px 11px; }
.ed-rc-offer-acts { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ed-rc-offer-acts .ed-btn { flex: 1 1 auto; }
.ed-rc-offer-wait { font-size: 0.78rem; color: var(--muted); flex: 1 1 100%; margin-bottom: 2px; }

/* desktop ≥961px: three independent sticky full-height columns */
@media (min-width: 961px) {
  .ed-rc-list, .ed-rc-detail, .ed-rc-side { position: sticky; top: 84px; }
  .ed-rc-list { max-height: calc(100vh - 104px); }
  .ed-rc-side { max-height: calc(100vh - 104px); overflow-y: auto; padding-right: 2px; }
  .ed-rc-detail { height: calc(100vh - 104px); min-height: 460px; display: flex; flex-direction: column; }
}

/* ≤1180px: info column drops below the chat (list | [chat / side]) */
@media (min-width: 961px) and (max-width: 1180px) {
  .ed-rc-shell { grid-template-columns: minmax(248px, 300px) minmax(0, 1fr); }
  .ed-rc-list { grid-column: 1; grid-row: 1 / span 2; }
  .ed-rc-detail { grid-column: 2; grid-row: 1; position: static; top: auto; height: auto; min-height: 420px; }
  .ed-rc-side { grid-column: 2; grid-row: 2; position: static; top: auto; max-height: none; overflow: visible; }
  .ed-rc-chat-thread { max-height: 56vh; }
}

@media (max-width: 560px) {
  .ed-rc-stats { gap: 8px; }
  .ed-rc-stat { flex-direction: column; align-items: flex-start; gap: 8px; padding: 11px 12px; }
  .ed-rc-stat-ic { width: 34px; height: 34px; }
  .ed-rc-stat-ic svg { width: 17px; height: 17px; }
  .ed-rc-stat-v { font-size: 1.2rem; }
}

@media (max-width: 960px) {
  .ed-rc-shell { grid-template-columns: 1fr; }
  .ed-rc-list, .ed-rc-side { position: static; top: auto; max-height: none; overflow: visible; }
  .ed-rc-list, .ed-rc-detail, .ed-rc-side { grid-column: auto; grid-row: auto; }
  .ed-rc-detail { position: static; top: auto; height: auto; }
  .ed-rc-shell .ed-rc-detail, .ed-rc-shell .ed-rc-side { display: none; }
  .ed-rc-shell.is-detail .ed-rc-list { display: none; }
  .ed-rc-shell.is-detail .ed-rc-detail { display: flex; }
  .ed-rc-shell.is-detail .ed-rc-side { display: grid; }
  .ed-rc-shell.is-detail .ed-rc-back { display: inline-flex; }
  .ed-rc-cards { max-height: none; }
  .ed-rc-detail { min-height: 0; }
  .ed-rc-chat-thread { max-height: 62vh; }
}

.ed-auth { display: grid; grid-template-columns: 1.05fr 0.95fr; min-height: calc(100vh - 73px); }
.ed-auth-aside { position: relative; background: var(--ink); color: #fff; padding: 60px 56px; display: flex; flex-direction: column; gap: 38px; justify-content: center; overflow: hidden; }
.ed-auth-akick { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.ed-auth-aside h1 { font-family: var(--display); font-weight: 600; font-size: clamp(2rem, 3.3vw, 2.9rem); line-height: 1.05; letter-spacing: -0.04em; margin-top: 16px; max-width: 16ch; }
.ed-auth-aside h1 em { font-family: var(--special); font-weight: 600; }
.ed-auth-lead { color: rgba(255,255,255,0.72); font-size: 1.02rem; line-height: 1.6; margin-top: 18px; max-width: 44ch; }
.ed-auth-points { display: grid; gap: 20px; }
.ed-auth-point { display: flex; gap: 14px; align-items: flex-start; }
.ed-auth-point svg { width: 22px; height: 22px; flex-shrink: 0; margin-top: 1px; color: #fff; }
.ed-auth-point strong { display: block; font-size: 0.96rem; font-weight: 600; }
.ed-auth-point p { margin: 4px 0 0; color: rgba(255,255,255,0.6); font-size: 0.86rem; line-height: 1.5; }
.ed-auth-afoot { color: rgba(255,255,255,0.5); font-size: 0.82rem; }
.ed-auth-panel { display: flex; align-items: center; justify-content: center; padding: 56px 24px; }
.ed-auth-card { width: 100%; max-width: 432px; }
.ed-auth-card h2 { font-family: var(--display); font-weight: 600; font-size: 1.72rem; letter-spacing: -0.03em; margin-top: 12px; }
.ed-auth-card > p { color: var(--muted); margin-top: 10px; font-size: 0.94rem; line-height: 1.5; }
.ed-auth-form { margin-top: 26px; display: grid; gap: 16px; }
.ed-field { display: grid; gap: 7px; }
.ed-field > span { font-size: 0.82rem; font-weight: 600; color: var(--ink-2); }
.ed-auth-form input:not([type="checkbox"]):not([type="radio"]), .ed-auth-form select, .ed-auth-form textarea,
.ed-field input:not([type="checkbox"]):not([type="radio"]), .ed-field select, .ed-field textarea {
  width: 100%; min-height: 50px; padding: 13px 15px; border: 1px solid var(--line-2); border-radius: var(--r);
  background: var(--bg); font-family: inherit; font-size: 0.95rem; color: var(--ink); transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.ed-auth-form textarea, .ed-field textarea { min-height: 96px; resize: vertical; line-height: 1.5; }
.ed-auth-form input:focus, .ed-auth-form select:focus, .ed-auth-form textarea:focus,
.ed-field input:focus, .ed-field select:focus, .ed-field textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11,11,12,0.06); }
.ed-auth-form input::placeholder, .ed-auth-form textarea::placeholder, .ed-field input::placeholder, .ed-field textarea::placeholder { color: var(--faint); }
.ed-pass { position: relative; display: flex; }
.ed-pass input { padding-right: 72px; }
.ed-pass-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); height: 36px; padding: 0 12px; border: 0; border-radius: var(--r); background: transparent; font-family: inherit; font-size: 0.82rem; font-weight: 600; color: var(--ink-2); cursor: pointer; }
.ed-pass-toggle:hover { color: var(--ink); }
.ed-auth-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ed-check { display: inline-flex; align-items: flex-start; gap: 9px; font-size: 0.86rem; color: var(--ink-2); cursor: pointer; line-height: 1.45; }
.ed-check input { width: 17px; height: 17px; margin-top: 1px; accent-color: var(--ink); flex-shrink: 0; }
.ed-check a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.ed-auth-link { color: var(--ink); font-weight: 600; font-size: 0.86rem; text-decoration: underline; text-underline-offset: 2px; }
.ed-auth-submit { width: 100%; min-height: 52px; margin-top: 4px; }
.ed-auth-status { min-height: 18px; margin: 2px 0 0; font-size: 0.86rem; color: #b4231f; }
.ed-auth-status:empty { display: none; }
.ed-auth-foot { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); text-align: center; font-size: 0.9rem; color: var(--muted); }
.ed-auth-foot a { color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.ed-auth-demo { margin-top: 22px; padding-top: 20px; border-top: 1px dashed var(--line-2); }
.ed-auth-demo-label { display: block; margin-bottom: 12px; font-size: 0.82rem; color: var(--muted); text-align: center; }
.ed-auth-demo-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ed-auth-demo-row .ed-btn { width: 100%; min-height: 46px; font-size: 0.92rem; }
@media (max-width: 420px) { .ed-auth-demo-row { grid-template-columns: 1fr; } }

.fp-ed .ed-cs-steps { list-style: none; margin: 18px 0 0; padding: 14px 0; display: flex; flex-wrap: wrap; gap: 8px 18px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.fp-ed .ed-cs-step { display: inline-flex; align-items: center; gap: 9px; cursor: pointer; color: var(--muted); font-size: 0.9rem; background: none; border: 0; }
.fp-ed .ed-cs-step b { width: 26px; height: 26px; flex: none; border-radius: 50%; border: 1px solid var(--line-2); display: grid; place-items: center; font-size: 0.82rem; font-weight: 700; background: var(--paper); color: var(--ink); transition: background 0.15s, color 0.15s, border-color 0.15s; }
.fp-ed .ed-cs-step span { font-weight: 500; }
.fp-ed .ed-cs-step.is-active { color: var(--ink); }
.fp-ed .ed-cs-step.is-active b { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.fp-ed .ed-cs-step.is-done b { background: var(--band); border-color: var(--line-2); }
.fp-ed .ed-cs-panel { animation: edCsFade 0.25s ease; }
@keyframes edCsFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.fp-ed .ed-cs-help { color: var(--muted); font-size: 0.92rem; margin: 6px 0 16px; }
.fp-ed .ed-cs-hint { display: block; margin-top: 5px; color: var(--muted); font-size: 0.78rem; }
.fp-ed .ed-set-rate { display: flex; align-items: stretch; border: 1px solid var(--line-2); border-radius: 12px; overflow: hidden; background: var(--bg); }
.fp-ed .ed-set-rate:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11, 11, 12, 0.06); }
.fp-ed .ed-set-rate-cur, .fp-ed .ed-set-rate-unit { display: inline-flex; align-items: center; padding: 0 13px; background: var(--band); color: var(--muted); font-size: 0.9rem; font-weight: 600; }
.fp-ed .ed-set-rate input { flex: 1; min-width: 0; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent; }
.fp-ed .ed-cs-tagentry { display: flex; gap: 10px; align-items: stretch; }
.fp-ed .ed-cs-tagentry input { flex: 1; min-width: 0; }
.fp-ed .ed-cs-tagentry .ed-btn-sm { flex: none; white-space: nowrap; }
.fp-ed .ed-cs-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.fp-ed .ed-cs-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 6px 6px 12px; border: 1px solid var(--line-2); border-radius: var(--pill); font-size: 0.84rem; background: var(--band); }
.fp-ed .ed-cs-chip button { width: 20px; height: 20px; border: 0; border-radius: 50%; background: var(--ink); color: var(--paper); font-size: 0.9rem; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.fp-ed .ed-cs-pkg { border: 1px solid var(--line); border-radius: var(--r2); padding: 18px; min-width: 0; }
.fp-ed .ed-cs-pkg legend { font-weight: 700; padding: 0 6px; }
.fp-ed .ed-cs-subhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 22px 0 12px; flex-wrap: wrap; }
.fp-ed .ed-cs-subtitle { font-family: var(--display); font-size: 1.02rem; font-weight: 600; margin: 0; }
.fp-ed .ed-cs-optional { font-family: var(--body); font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); border: 1px solid var(--line-2); border-radius: var(--pill); padding: 2px 8px; margin-left: 6px; vertical-align: middle; }
.fp-ed .ed-cs-required { font-family: var(--body); font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--brand); background: rgba(37, 99, 235, 0.08); border: 1px solid var(--brand); border-radius: var(--pill); padding: 2px 8px; margin-left: 6px; vertical-align: middle; }
.fp-ed .ed-cs-rows { display: grid; gap: 12px; }
.fp-ed .ed-cs-row { border: 1px solid var(--line); border-radius: var(--r2); padding: 16px; }
.fp-ed .ed-cs-row-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.fp-ed .ed-cs-row-head b { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.fp-ed .ed-cs-row-del { background: none; border: 0; color: #b4231f; font-size: 0.84rem; font-weight: 600; cursor: pointer; padding: 2px 4px; }
.fp-ed .ed-set-empty { margin: 6px 0 0; font-size: 0.86rem; color: var(--muted); }
.fp-ed .ed-panel-private { background: var(--band); }
.fp-ed .ed-panel-private .ed-kicker { color: #9a6a00; }
.fp-ed .ed-lang-row { grid-template-columns: 1.4fr 1fr; }
@media (max-width: 560px) { .fp-ed .ed-lang-row { grid-template-columns: 1fr; } }
.fp-ed .ed-cs-empty { color: var(--muted); font-size: 0.86rem; margin: 12px 0 0; }
.fp-ed .ed-cs-media { border: 1px solid var(--line); border-radius: var(--r2); padding: 18px; margin-top: 16px; }
.fp-ed .ed-cs-media-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; margin-bottom: 4px; }
.fp-ed .ed-cs-limit { color: var(--muted); font-size: 0.78rem; }
.fp-ed .ed-cs-drop { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 10px; }
.fp-ed .ed-cs-drop-cta { display: inline-flex; cursor: pointer; }
.fp-ed .ed-cs-thumb-preview { position: relative; width: 220px; max-width: 100%; }
.fp-ed .ed-cs-thumb-preview img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r2); border: 1px solid var(--line); display: block; }
.fp-ed .ed-cs-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.fp-ed .ed-cs-gthumb { position: relative; margin: 0; }
.fp-ed .ed-cs-gthumb img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--r); border: 1px solid var(--line); display: block; }
.fp-ed .ed-cs-media-del { position: absolute; top: 6px; right: 6px; border: 0; border-radius: var(--pill); background: rgba(17, 17, 17, 0.82); color: #fff; font-size: 0.74rem; font-weight: 600; padding: 4px 9px; cursor: pointer; }
.fp-ed .ed-cs-thumb-preview .ed-cs-media-del { position: static; margin-top: 8px; display: inline-block; background: var(--ink); }
.fp-ed .ed-cs-video { margin: 4px 0 10px; }
.fp-ed .ed-cs-video video { width: auto; max-width: min(480px, 100%); max-height: 420px; border-radius: var(--r2); border: 1px solid var(--line); background: #000; display: block; }
.fp-ed .ed-cs-video .ed-cs-media-del { position: static; margin-top: 8px; display: inline-block; background: var(--ink); }
.fp-ed .ed-cs-uploadstatus:empty, .fp-ed .ed-cs-stepstatus:empty { display: none; }
.fp-ed .ed-cs-uploadstatus, .fp-ed .ed-cs-stepstatus { font-size: 0.86rem; margin: 12px 0 0; min-height: 18px; }
.fp-ed .ed-cs-review { border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; }
.fp-ed .ed-cs-review-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 16px; border-bottom: 1px solid var(--line); font-size: 0.9rem; }
.fp-ed .ed-cs-review-row:last-child { border-bottom: 0; }
.fp-ed .ed-cs-review-row span { color: var(--muted); }
.fp-ed .ed-cs-review-row b { text-align: right; }
.fp-ed .ed-cs-nav { display: flex; align-items: center; gap: 14px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.fp-ed .ed-cs-progress { color: var(--muted); font-size: 0.85rem; margin-left: auto; }
.fp-ed .ed-cs-nav .ed-btn { min-height: 48px; }
.fp-ed .ed-cs-nav .ed-btn[hidden] { display: none !important; }
.fp-ed .ed-cs-nav [data-cs-next], .fp-ed .ed-cs-nav [data-cs-submit] { order: 3; }
@media (max-width: 560px) {
  .fp-ed .ed-cs-step span { display: none; }
  .fp-ed .ed-cs-steps { gap: 8px 10px; }
  .fp-ed [data-cs-pkgs] { grid-template-columns: 1fr !important; }
  .fp-ed .ed-cs-nav { flex-wrap: wrap; }
  .fp-ed .ed-cs-progress { order: -1; width: 100%; margin: 0 0 4px; text-align: center; }
}
.ed-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ed-seg label { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid var(--line-2); border-radius: var(--r); cursor: pointer; transition: border-color 0.18s ease, background-color 0.18s ease; }
.ed-seg label:hover { border-color: var(--ink); }
.ed-seg input { position: absolute; opacity: 0; pointer-events: none; }
.ed-seg strong { font-size: 0.92rem; font-weight: 600; color: var(--ink); }
.ed-seg span { font-size: 0.78rem; color: var(--muted); }
.ed-seg label:has(input:checked) { border-color: var(--ink); background: var(--band); box-shadow: inset 0 0 0 1px var(--ink); }
.ed-otp { display: flex; gap: 10px; justify-content: space-between; }
.ed-otp input { width: 100%; aspect-ratio: 1 / 1; max-width: 58px; padding: 0; text-align: center; font-family: var(--serif); font-size: 1.5rem; font-weight: 500; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--bg); color: var(--ink); }
.ed-otp input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11,11,12,0.06); }
.ed-auth-badge { width: 64px; height: 64px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--ink); color: #fff; }
.ed-auth-badge svg { width: 30px; height: 30px; }
/* onboarding (centered, wider, multi-field) */
.ed-onb { display: flex; align-items: flex-start; justify-content: center; padding: 48px 24px 80px; min-height: calc(100vh - 73px); }
.ed-onb-card { width: 100%; max-width: 640px; }
.ed-onb-step { display: inline-flex; align-items: center; gap: 8px; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.ed-onb-step b { color: var(--ink); }
.ed-frow { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ed-radio-list { display: grid; gap: 10px; }
.ed-radio-list label { position: relative; display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; border: 1px solid var(--line-2); border-radius: var(--r); cursor: pointer; transition: border-color 0.18s ease, background-color 0.18s ease; }
.ed-radio-list label:hover { border-color: var(--ink); }
.ed-radio-list input { position: absolute; opacity: 0; pointer-events: none; }
.ed-radio-list strong { font-size: 0.92rem; font-weight: 600; color: var(--ink); }
.ed-radio-list span { font-size: 0.8rem; color: var(--muted); }
.ed-radio-list label:has(input:checked) { border-color: var(--ink); background: var(--band); box-shadow: inset 0 0 0 1px var(--ink); }
.ed-onb-tip { margin-top: 4px; padding: 16px 18px; border: 1px dashed var(--line-2); border-radius: var(--r); background: var(--band); }
.ed-onb-tip strong { font-size: 0.86rem; }
.ed-onb-tip ul { margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: 0.84rem; line-height: 1.6; }
.ed-onb-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 880px) {
  .ed-auth { grid-template-columns: 1fr; min-height: 0; }
  .ed-auth-aside { display: none; }
  .ed-auth-panel { padding: 40px 20px 64px; }
}
@media (max-width: 560px) { .ed-frow { grid-template-columns: 1fr; } }

.ed-ws-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 14px 0 8px; }
.ed-ws-head p { color: var(--muted); margin-top: 8px; }
.ed-metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ed-metric { padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); }
.ed-metric strong { display: block; font-family: var(--serif); font-weight: 500; font-size: 2.2rem; line-height: 1; letter-spacing: -0.01em; }
.ed-metric span { display: block; margin-top: 10px; color: var(--muted); font-size: 0.82rem; }
.ed-metric small { display: block; margin-top: 4px; color: var(--faint); font-size: 0.76rem; }
.ed-quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ed-quick { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border: 1px solid var(--line-2); border-radius: var(--r); color: var(--ink); transition: border-color 0.18s ease, transform 0.18s ease; }
.ed-quick:hover { border-color: var(--ink); transform: translateY(-2px); }
.ed-quick svg { width: 22px; height: 22px; flex-shrink: 0; }
.ed-quick strong { display: block; font-size: 0.94rem; font-weight: 600; }
.ed-quick span { display: block; color: var(--muted); font-size: 0.78rem; }
.ed-ws-list { border-top: 1px solid var(--line); }
.ed-ws-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto auto; align-items: start; gap: 14px; padding: 15px 8px; border-bottom: 1px solid var(--line); color: var(--ink); transition: background-color 0.16s ease, padding 0.16s ease; }
.ed-ws-row:hover { background: var(--band); padding-left: 14px; }
.ed-ws-thumb { width: 44px; height: 44px; border-radius: 10px; overflow: hidden; background: var(--band); display: flex; align-items: center; justify-content: center; flex: none; margin-top: 1px; }
.ed-ws-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ed-ws-thumb .ed-mock { position: static; width: 100%; height: 100%; }
.ed-ws-main { min-width: 0; }
.ed-ws-main strong { display: block; font-size: 0.95rem; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
.ed-ws-main > span { display: block; margin-top: 2px; color: var(--muted); font-size: 0.8rem; line-height: 1.45; }
.ed-ws-row > .ed-pill { align-self: center; }
.ed-ws-amount { font-family: var(--serif); font-size: 1.05rem; white-space: nowrap; text-align: right; align-self: center; }
.ed-pill { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 11px; border-radius: var(--pill); border: 1px solid var(--line-2); font-size: 0.76rem; font-weight: 600; white-space: nowrap; color: var(--ink-2); background: var(--bg); }
.ed-pill.is-active { border-color: var(--ink); color: #fff; background: var(--ink); }
.ed-pill.is-done { border-color: #1f7a3d; color: #1f7a3d; background: rgba(31,122,61,0.08); }
.ed-pill.is-warn { border-color: #9a6a00; color: #9a6a00; background: rgba(154,106,0,0.08); }
.ed-pill.is-muted { color: var(--muted); }
.ed-note-row { display: flex; gap: 14px; align-items: flex-start; padding: 16px 6px; border-bottom: 1px solid var(--line); }
.ed-note-row.is-unread { box-shadow: inset 2px 0 0 var(--ink); }
.ed-note-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ink); margin-top: 6px; flex-shrink: 0; }
.ed-note-row.is-read .ed-note-dot { background: var(--line-2); }
.ed-note-row p { font-size: 0.92rem; line-height: 1.5; }
.ed-note-row time { display: block; margin-top: 4px; color: var(--faint); font-size: 0.78rem; }
.fp-ed .ed-bd-activity { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 6px; box-shadow: 0 18px 42px -34px rgba(12,21,40,0.42); }
.fp-ed .ed-bd-activity .ed-note-row { display: flex; align-items: center; gap: 13px; padding: 12px; border-bottom: 1px solid var(--line); border-radius: 12px; box-shadow: none; transition: background 0.15s ease; }
.fp-ed .ed-bd-activity .ed-note-row:last-child { border-bottom: 0; }
.fp-ed .ed-bd-activity a.ed-note-row { cursor: pointer; }
.fp-ed .ed-bd-activity a.ed-note-row:hover { background: var(--band); }
.fp-ed .ed-bd-activity .ed-note-ic { width: 38px; height: 38px; border-radius: 11px; flex: none; display: inline-flex; align-items: center; justify-content: center; background: #ebeff8; color: var(--brand, #1d4ed8); }
.fp-ed .ed-bd-activity .ed-note-ic svg { width: 18px; height: 18px; }
.fp-ed .ed-bd-activity .ed-note-ic.is-pay { background: #e6f5ec; color: #15803d; }
.fp-ed .ed-bd-activity .ed-note-ic.is-alert { background: #fcebec; color: #c5303a; }
.fp-ed .ed-bd-activity .ed-note-bd { min-width: 0; flex: 1; }
.fp-ed .ed-bd-activity .ed-note-row p { margin: 0; font-size: 0.9rem; line-height: 1.45; color: var(--ink); overflow-wrap: anywhere; word-break: break-word; }
.fp-ed .ed-bd-activity .ed-note-row.is-read p { color: var(--muted); }
.fp-ed .ed-bd-activity .ed-note-row time { display: block; margin-top: 3px; color: var(--faint); font-size: 0.76rem; }
.fp-ed .ed-bd-activity .ed-note-new { width: 7px; height: 7px; border-radius: 50%; background: var(--brand, #1d4ed8); flex: none; }
.fp-ed .ed-bd-activity .ed-note-row.is-read .ed-note-new { display: none; }
.fp-ed .ed-bd-activity-empty { text-align: center; padding: 30px 20px 34px; }
.fp-ed .ed-bd-activity-empty .ed-note-ic { width: 46px; height: 46px; border-radius: 13px; margin: 0 auto 12px; background: #ebeff8; color: var(--brand, #1d4ed8); display: inline-flex; align-items: center; justify-content: center; }
.fp-ed .ed-bd-activity-empty .ed-note-ic svg { width: 22px; height: 22px; }
.fp-ed .ed-bd-activity-empty h4 { font-family: var(--display); font-weight: 700; font-size: 1rem; color: var(--ink); margin: 0 0 4px; }
.fp-ed .ed-bd-activity-empty p { font-size: 0.86rem; color: var(--muted); margin: 0 auto 16px; max-width: 38ch; line-height: 1.5; }
/* advanced activity feed (seller dashboard recent activity) — scrollable, capped height */
.ed-actfeed-head { display: flex; align-items: center; justify-content: flex-end; margin-bottom: 8px; }
.ed-actfeed-count { font-size: 0.7rem; letter-spacing: 0.05em; text-transform: uppercase; font-weight: 600; color: #1f7a3d; background: #e9f7ef; border: 1px solid #cdeed9; border-radius: 999px; padding: 3px 10px; }
.ed-actfeed { max-height: min(360px, 68vh); overflow-y: auto; overflow-x: hidden; padding: 1px 8px 1px 1px; margin-right: -4px; scrollbar-width: thin; scrollbar-color: var(--line-2) transparent; }
.ed-actfeed::-webkit-scrollbar { width: 8px; }
.ed-actfeed::-webkit-scrollbar-track { background: transparent; }
.ed-actfeed::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 999px; border: 2px solid var(--bg); }
.ed-actfeed::-webkit-scrollbar-thumb:hover { background: var(--muted); }
.ed-actrow { display: flex; gap: 11px; align-items: flex-start; position: relative; padding: 10px 13px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); margin-bottom: 6px; transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease; }
.ed-actrow:last-child { margin-bottom: 1px; }
a.ed-actrow { cursor: pointer; }
a.ed-actrow:hover { border-color: var(--line-2); box-shadow: 0 6px 18px rgba(15, 15, 20, 0.06); transform: translateY(-1px); }
a.ed-actrow:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.ed-actrow.is-unread { background: var(--paper); border-color: var(--line-2); }
.ed-actrow.is-unread::before { content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ink); }
.ed-actrow-ic { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--band); border: 1px solid var(--line-2); color: var(--ink-2); margin-top: 1px; }
.ed-actrow-ic svg { width: 16px; height: 16px; }
.ed-actrow-ic.is-contract { background: #eef4fc; border-color: #d8e6f8; color: #1f5fae; }
.ed-actrow-ic.is-payment { background: #e9f7ef; border-color: #cdeed9; color: #1f7a3d; }
.ed-actrow-ic.is-review { background: #fcf6e3; border-color: #f1e6bf; color: #a9810c; }
.ed-actrow-ic.is-dispute { background: #fdecea; border-color: #f7d4ce; color: #c0392b; }
.ed-actrow-ic.is-message { background: #ecf1fb; border-color: #d8e2f6; color: #4b6eb8; }
.ed-actrow-ic.is-trust { background: #fbf1e3; border-color: #f3ddc0; color: #b4690e; }
.ed-actrow-ic.is-sub { background: #eaf0ff; border-color: #d6e0fb; color: #3a4fb8; }
.ed-actrow-ic.is-serve { background: #eef4fc; border-color: #d8e6f8; color: #1f5fae; }
.ed-actrow-ic.is-support { background: #e7f6f6; border-color: #c8eaea; color: #157a78; }
.ed-actrow-ic.is-announce { background: #fdeef0; border-color: #f6d6dc; color: #b23a55; }
.ed-actrow-ic.is-account { background: var(--band); border-color: var(--line-2); color: var(--ink-2); }
.ed-actrow-bd { flex: 1; min-width: 0; }
.ed-actrow-top { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; row-gap: 2px; }
.ed-actrow-top strong { font-size: 0.9rem; font-weight: 600; color: var(--ink); line-height: 1.3; }
.ed-actrow-cat { flex: none; font-size: 0.62rem; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 600; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 1px 7px; white-space: nowrap; }
.ed-actrow-tx { font-size: 0.84rem; line-height: 1.4; color: var(--ink-2); margin: 2px 0 0; word-break: break-word; }
.ed-actrow-time { display: inline-block; margin-top: 3px; font-size: 0.74rem; color: var(--faint); }
.ed-actrow-go { flex: none; align-self: center; color: var(--line-2); transition: color 0.15s ease, transform 0.15s ease; }
.ed-actrow-go svg { width: 16px; height: 16px; display: block; }
a.ed-actrow:hover .ed-actrow-go { color: var(--muted); transform: translateX(2px); }
@media (max-width: 460px) {
  .ed-actrow { padding: 9px 11px; gap: 10px; margin-bottom: 5px; }
  .ed-actrow-ic { width: 32px; height: 32px; margin-top: 0; }
  .ed-actrow-ic svg { width: 15px; height: 15px; }
  .ed-actrow-tx { font-size: 0.83rem; }
  .ed-actrow-go { display: none; }
}
/* settings toggle rows + switch */
.ed-set-group { border-top: 1px solid var(--ink); margin-top: 30px; }
.ed-set-group > h2 { font-size: 1.05rem; font-weight: 700; margin: 22px 0 4px; }
.ed-set-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.ed-set-row strong { display: block; font-size: 0.94rem; font-weight: 600; }
.ed-set-row p { margin: 3px 0 0; color: var(--muted); font-size: 0.84rem; line-height: 1.45; }
.ed-switch { position: relative; flex-shrink: 0; width: 46px; height: 26px; }
.ed-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.ed-switch-tr { position: absolute; inset: 0; border-radius: 999px; background: var(--line-2); transition: background-color 0.2s ease; pointer-events: none; }
.ed-switch-tr::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform 0.2s ease; box-shadow: 0 1px 3px rgba(0,0,0,0.22); }
.ed-switch input:checked + .ed-switch-tr { background: var(--ink); }
.ed-switch input:checked + .ed-switch-tr::after { transform: translateX(20px); }
.ed-switch input:focus-visible + .ed-switch-tr { box-shadow: 0 0 0 3px rgba(11,11,12,0.16); }
@media (max-width: 900px) { .ed-metric-grid, .ed-quick-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) {
  .ed-quick-grid { grid-template-columns: 1fr; }
  .ed-ws-row { grid-template-columns: 40px 1fr auto; }
  .ed-ws-row .ed-ws-amount { display: none; }
}

.ed-co-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 30px; align-items: start; margin-top: 28px; }
.ed-co-card { border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 26px; }
.ed-co-card + .ed-co-card { margin-top: 20px; }
.ed-co-step { display: flex; gap: 14px; align-items: baseline; margin-bottom: 18px; }
.ed-co-step > b { font-family: var(--serif); font-size: 1.4rem; line-height: 1; color: var(--faint); font-variant-numeric: tabular-nums; min-width: 32px; }
.ed-co-step h2 { font-family: var(--display); font-size: 1.12rem; letter-spacing: -0.02em; }
.ed-co-step p { margin: 4px 0 0; color: var(--muted); font-size: 0.88rem; line-height: 1.45; }
.ed-co-preview { display: grid; grid-template-columns: 76px 1fr; gap: 16px; align-items: start; padding: 16px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); }
.ed-co-art { width: 76px; height: 76px; border-radius: var(--r2); background: var(--ink); color: #fff; display: grid; place-items: center; font-family: var(--display); font-weight: 700; letter-spacing: 0.04em; font-size: 1.1rem; }
.ed-co-meta { display: flex; flex-wrap: wrap; gap: 10px; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.13em; color: var(--muted); }
.ed-co-preview h3 { font-family: var(--serif); font-weight: 500; font-size: 1.02rem; line-height: 1.3; margin: 8px 0; letter-spacing: -0.01em; }
.ed-co-seller { display: flex; gap: 10px; align-items: center; }
.ed-co-av { width: 30px; height: 30px; border-radius: var(--pill); background: var(--band); display: grid; place-items: center; font-size: 0.7rem; font-weight: 700; border: 1px solid var(--line); flex-shrink: 0; }
.ed-co-seller strong { display: block; font-size: 0.86rem; }
.ed-co-seller small { color: var(--muted); font-size: 0.76rem; }
.ed-co-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.ed-co-tags span { font-size: 0.72rem; padding: 4px 11px; border: 1px solid var(--line); border-radius: var(--pill); color: var(--ink-2); }
.ed-co-divider { height: 1px; background: var(--line); margin: 24px 0; }
.ed-co-count { display: block; margin-top: 6px; color: var(--faint); font-size: 0.78rem; }
.ed-co-upload { display: grid; gap: 8px; margin-top: 16px; padding: 16px; border: 1px dashed var(--line-2); border-radius: var(--r2); background: var(--paper); }
.ed-co-upload strong { font-size: 0.9rem; }
.ed-co-upload .note { color: var(--muted); font-size: 0.8rem; }
.ed-co-upload input[type="file"] { font-size: 0.82rem; color: var(--ink-2); }
.ed-co-upload .is-error { color: #a3201b; }
.ed-co-files { display: flex; flex-wrap: wrap; gap: 8px; }
.ed-co-file { display: inline-flex; gap: 8px; align-items: baseline; font-size: 0.76rem; padding: 5px 10px; border: 1px solid var(--line); border-radius: var(--pill); }
.ed-co-file small { color: var(--muted); }
.ed-co-pay { display: grid; gap: 10px; }
.ed-co-pay-opt { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r2); cursor: pointer; transition: border-color 0.18s ease; }
.ed-co-pay-opt.is-active { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.ed-co-pay-opt input { margin-top: 3px; accent-color: var(--ink); }
.ed-co-pay-opt strong { display: block; font-size: 0.9rem; }
.ed-co-pay-opt small { color: var(--muted); font-size: 0.8rem; }
.ed-co-status { margin: 14px 0 0; font-size: 0.86rem; color: var(--ink-2); min-height: 1.1em; }

.ed-co-aside { position: sticky; top: 96px; border: 1.5px solid var(--ink); border-radius: var(--r2); background: var(--bg); padding: 24px; }
.ed-co-aside h2 { font-family: var(--display); font-size: 1.22rem; margin: 10px 0 6px; }
.ed-co-aside > p { color: var(--muted); font-size: 0.85rem; margin: 0 0 16px; line-height: 1.45; }
.ed-co-pkg { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-bottom: 18px; }
.ed-co-pkg button { display: grid; gap: 3px; padding: 11px 8px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); cursor: pointer; font-family: inherit; text-align: center; transition: border-color 0.18s ease, background 0.18s ease; }
.ed-co-pkg button strong { font-size: 0.82rem; }
.ed-co-pkg button span { font-family: var(--serif); font-size: 0.9rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.ed-co-pkg button.is-active { border-color: var(--ink); background: var(--ink); color: #fff; }
.ed-co-pkg button.is-active span { color: #fff; }
.ed-co-custom { border: 1px solid var(--line); border-radius: var(--r2); padding: 14px; margin-bottom: 16px; background: var(--paper); }
.ed-co-custom > span { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.13em; color: var(--muted); }
.ed-co-custom strong { display: block; font-family: var(--serif); font-size: 1rem; margin: 4px 0; }
.ed-co-custom p { font-size: 0.82rem; color: var(--muted); margin: 0 0 10px; }
.ed-co-custom > div { display: flex; justify-content: space-between; font-size: 0.82rem; }
.ed-co-lines { display: grid; gap: 11px; padding: 16px 0; border-top: 1px solid var(--line); }
.ed-co-lines > div { display: flex; justify-content: space-between; align-items: baseline; font-size: 0.9rem; }
.ed-co-lines > div span { color: var(--muted); }
.ed-co-lines > div strong { font-family: var(--serif); font-variant-numeric: tabular-nums; }
.ed-co-promo { display: flex; gap: 8px; margin: 4px 0 8px; }
.ed-co-promo input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r); font-family: inherit; text-transform: uppercase; letter-spacing: 0.07em; font-size: 0.82rem; background: var(--bg); color: var(--ink); }
.ed-co-promo input:focus-visible { outline: none; border-color: var(--ink); }
.ed-co-promo button { height: 44px; padding: 0 16px; border: 1.5px solid var(--ink); border-radius: var(--r); background: var(--bg); font-family: inherit; font-weight: 600; font-size: 0.82rem; cursor: pointer; transition: background 0.18s ease, color 0.18s ease; }
.ed-co-promo button:hover { background: var(--ink); color: #fff; }
.ed-co-promo button:disabled { opacity: 0.5; cursor: default; }
.ed-co-promo-note { font-size: 0.78rem; color: var(--muted); margin: 0 0 16px; min-height: 1.1em; }
.ed-co-total { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0; border-top: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink); }
.ed-co-total span { font-weight: 600; }
.ed-co-total strong { font-family: var(--serif); font-size: 1.7rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.ed-co-pay-btn { width: 100%; margin-top: 16px; }
.ed-co-safe { display: grid; gap: 10px; margin-top: 18px; }
.ed-co-safe div { display: grid; grid-template-columns: 18px 1fr; gap: 9px; font-size: 0.8rem; color: var(--muted); line-height: 1.4; }
.ed-co-safe svg { width: 16px; height: 16px; margin-top: 2px; }
.ed-co-trust { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; margin-top: 22px; }
.ed-co-trust > div { padding: 14px 16px; }
.ed-co-trust > div + div { border-left: 1px solid var(--line); }
.ed-co-trust strong { display: block; font-size: 0.82rem; }
.ed-co-trust span { font-size: 0.76rem; color: var(--muted); }

@media (max-width: 900px) {
  .ed-co-grid { grid-template-columns: 1fr; }
  .ed-co-aside { position: static; }
}
@media (max-width: 560px) {
  .ed-co-preview { grid-template-columns: 1fr; }
  .ed-co-art { width: 60px; height: 60px; }
  .ed-co-pkg { grid-template-columns: 1fr; }
  .ed-co-trust { grid-template-columns: 1fr; }
  .ed-co-trust > div + div { border-left: 0; border-top: 1px solid var(--line); }
}

.fp-ed.ed-sys-page { min-height: 100vh; display: flex; flex-direction: column; }
.ed-sys-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px var(--gut); border-bottom: 1px solid var(--line); }
.ed-sys-links { display: flex; gap: 20px; font-size: 0.86rem; }
.ed-sys-links a { color: var(--muted); }
.ed-sys-links a:hover { color: var(--ink); }
.ed-sys-wrap { flex: 1; display: grid; place-items: center; padding: 56px var(--gut); }
.ed-sys-card { width: 100%; max-width: 560px; text-align: center; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 48px 40px; }
.ed-sys-card .ed-kicker { justify-content: center; }
.ed-sys-card h1 { font-size: clamp(1.7rem, 4vw, 2.4rem); line-height: 1.08; letter-spacing: -0.035em; margin: 14px 0 10px; }
.ed-sys-card > p { color: var(--muted); font-size: 0.98rem; line-height: 1.55; margin: 0 auto; max-width: 46ch; }
.ed-sys-visual { width: 74px; height: 74px; margin: 0 auto 6px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--ink); }
.ed-sys-visual.is-fail { border-color: var(--line-2); color: var(--muted); }
.ed-sys-visual svg { width: 34px; height: 34px; }
.ed-sys-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 24px 0 4px; }
.ed-sys-grid span { font-size: 0.74rem; padding: 6px 13px; border: 1px solid var(--line); border-radius: var(--pill); color: var(--ink-2); font-variant-numeric: tabular-nums; }
.ed-sys-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 26px; }
.ed-sys-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px var(--gut); border-top: 1px solid var(--line); font-size: 0.82rem; color: var(--muted); }
.ed-sys-foot a:hover { color: var(--ink); }
@media (max-width: 480px) {
  .ed-sys-card { padding: 36px 22px; }
  .ed-sys-actions { flex-direction: column; }
  .ed-sys-actions .ed-btn { width: 100%; }
  /* system-page header/footer are space-between flex rows (brand + quick-links);
     at 360 they don't fit on one line → wrap instead of spilling ~3px past the edge */
  .ed-sys-head, .ed-sys-foot { flex-wrap: wrap; row-gap: 10px; }
}

.ed-faq { border-bottom: 1px solid var(--line); }
.ed-faq summary { list-style: none; cursor: pointer; padding: 16px 0; font-weight: 600; font-size: 0.98rem; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ed-faq summary::-webkit-details-marker { display: none; }
.ed-faq summary::after { content: "+"; font-family: var(--serif); font-size: 1.3rem; line-height: 1; color: var(--muted); }
.ed-faq[open] summary::after { content: "\2212"; }
.ed-faq summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: var(--r); }
.ed-faq p { margin: 0 0 16px; color: var(--ink-2); font-size: 0.94rem; line-height: 1.6; max-width: 64ch; }
@media (max-width: 760px) {
  .ed-contact-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 860px) {
  .fp-ed [data-bd-cols], .fp-ed [data-sd-cols] { grid-template-columns: 1fr !important; gap: 28px !important; }
  .fp-ed .fp-fw-hero { overflow-x: clip; }
}
@media (max-width: 760px) {
  .fp-ed [data-cs-pkgs] { grid-template-columns: 1fr !important; }
  .fp-ed .ed-grid[style*="repeat(3"] { grid-template-columns: 1fr !important; }
  .fp-ed .ed-an-grid2 { grid-template-columns: 1fr !important; }
  .fp-ed .ed-an-grid2 > .ed-panel { min-width: 0; overflow-x: clip; }
}
@media (max-width: 620px) {
  .fp-ed [data-wallet-actions], .fp-ed [data-earn-cols] { grid-template-columns: 1fr !important; }
}

.fp-ed.messages-page { height: 100vh; overflow: hidden; display: flex; flex-direction: column; }
.fp-ed .messages-app-background { display: none; }
.fp-ed .messages-toast-stack { position: fixed; top: 20px; right: 20px; z-index: 120; display: grid; gap: 10px; width: min(344px, calc(100vw - 32px)); pointer-events: none; }
.fp-ed .messages-toast {
  pointer-events: auto;
  display: flex; align-items: flex-start; gap: 12px;
  padding: 13px 16px 13px 13px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(255,255,255,0.97) 0%, rgba(251,250,248,0.95) 100%);
  -webkit-backdrop-filter: blur(12px) saturate(1.15);
  backdrop-filter: blur(12px) saturate(1.15);
  box-shadow: 0 16px 38px -12px rgba(20,18,15,0.26), 0 3px 10px rgba(20,18,15,0.08);
  transform-origin: top right;
  animation: messagesToastIn 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}
.fp-ed .messages-toast-icon {
  flex: none; width: 36px; height: 36px; border-radius: 11px;
  display: grid; place-items: center;
  background: var(--ink);
  box-shadow: 0 5px 12px rgba(20,18,15,0.22);
}
.fp-ed .messages-toast-icon svg { width: 18px; height: 18px; color: var(--paper); }
.fp-ed .messages-toast-body { display: grid; gap: 2px; min-width: 0; padding-top: 1px; }
.fp-ed .messages-toast-body strong { font-size: 0.83rem; font-weight: 700; color: var(--ink); letter-spacing: -0.01em; line-height: 1.25; }
.fp-ed .messages-toast-body span { font-size: 0.82rem; color: var(--muted); line-height: 1.38; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fp-ed .messages-toast.is-leaving { animation: messagesToastOut 0.3s cubic-bezier(0.4, 0, 1, 1) forwards; }
@keyframes messagesToastIn { from { opacity: 0; transform: translateX(20px) scale(0.95); } to { opacity: 1; transform: translateX(0) scale(1); } }
@keyframes messagesToastOut { from { opacity: 1; transform: translateX(0) scale(1); } to { opacity: 0; transform: translateX(26px) scale(0.96); } }
@media (max-width: 480px) {
  .fp-ed .messages-toast-stack { top: 12px; right: 12px; left: 12px; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-ed .messages-toast, .fp-ed .messages-toast.is-leaving { animation-duration: 0.01ms; }
}
.fp-ed [data-role-navbar].messages-role-navbar { flex: 0 0 auto; }
.fp-ed .messages-app-main { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: 326px minmax(0, 1fr); background: var(--bg); }

/* sidebar */
.fp-ed .messages-sidebar { min-height: 0; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: var(--paper); }
.fp-ed .messages-sidebar-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px 20px 14px; }
.fp-ed .messages-pane-kicker { display: block; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.fp-ed .messages-sidebar-head h1 { font-family: var(--display); font-size: 1.12rem; letter-spacing: -0.02em; }
.fp-ed .messages-search-shell { display: flex; align-items: center; gap: 6px; }
.fp-ed .messages-search-input { width: 140px; height: 36px; border: 1px solid var(--line); border-radius: var(--pill); padding: 0 12px; font-family: inherit; font-size: 0.84rem; background: var(--bg); }
.fp-ed .messages-search-toggle { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); cursor: pointer; flex-shrink: 0; }
.fp-ed .messages-search-toggle svg { width: 17px; height: 17px; }
.fp-ed .messages-sidebar-filters { display: flex; gap: 7px; padding: 0 20px 14px; flex-wrap: wrap; border-bottom: 1px solid var(--line); }
.fp-ed .messages-filter-chip { padding: 6px 13px; border: 1px solid var(--line); border-radius: var(--pill); background: var(--bg); font-family: inherit; font-size: 0.8rem; cursor: pointer; color: var(--muted); }
.fp-ed .messages-filter-chip.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }
.fp-ed .messages-conversation-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 6px; display: flex; flex-direction: column; gap: 2px; }
.fp-ed .messages-conversation-card { display: flex; align-items: center; gap: 6px; padding: 11px 12px; border-radius: var(--r2); border: 1px solid transparent; cursor: pointer; background: none; width: 100%; text-align: left; font-family: inherit; transition: background-color 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, transform 0.12s ease; }
.fp-ed .messages-conversation-card:hover { background: var(--band); }
.fp-ed .messages-conversation-card.is-active { background: var(--bg); border-color: var(--line); box-shadow: 0 8px 20px rgba(11,11,12,0.10); }
.fp-ed .messages-conversation-card.is-active:hover { background: var(--bg); }
.fp-ed .messages-conversation-card.is-active .messages-conversation-top strong { font-weight: 700; }
.fp-ed .messages-conversation-main { flex: 1 1 auto; min-width: 0; display: grid; grid-template-columns: 52px 1fr; gap: 13px; align-items: center; background: none; border: 0; padding: 0; cursor: pointer; text-align: left; font-family: inherit; }
.fp-ed .messages-conversation-avatar { width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(140deg, #2c2c30, #4c4c55); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 1rem; flex: none; position: relative; overflow: visible; }
.fp-ed .messages-conversation-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%; }
.fp-ed .messages-conversation-avatar.is-online::after { content: ""; position: absolute; right: 2px; bottom: 2px; width: 12px; height: 12px; border-radius: 50%; background: #1a9b5f; border: 2.5px solid var(--bg); box-shadow: 0 0 0 1px rgba(11,11,12,0.05); }
.fp-ed .messages-conversation-copy { min-width: 0; }
.fp-ed .messages-conversation-top { display: flex; align-items: center; gap: 0; min-width: 0; }
.fp-ed .messages-conversation-top strong { font-weight: 600; font-size: 0.93rem; letter-spacing: -0.01em; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-ed .messages-conversation-time { font-size: 0.71rem; color: var(--faint); flex: none; white-space: nowrap; margin-left: auto; padding-left: 8px; }
.fp-ed .messages-conversation-top .fp-kyc-tick { top: 0; margin-left: 4px !important; }
.fp-ed .messages-conversation-handle { display: block; margin-top: 1px; font-size: 0.76rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .messages-conversation-copy p { margin: 3px 0 0; font-size: 0.82rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.4; }
.fp-ed .messages-conversation-card.is-unread .messages-conversation-top strong { font-weight: 700; }
.fp-ed .messages-conversation-card.is-unread .messages-conversation-copy p { color: var(--ink); font-weight: 500; }
.fp-ed .messages-conversation-pill { order: 2; flex: none; margin: 0; min-width: 20px; height: 20px; padding: 0 6px; display: inline-flex; align-items: center; justify-content: center; font-size: 0.64rem; font-weight: 700; line-height: 1; border-radius: var(--pill); background: var(--ink); color: #fff; }
.fp-ed .messages-conversation-dot { order: 2; flex: none; min-width: 18px; height: 18px; margin: 0 5px; padding: 0 5px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--pill); background: var(--ink); color: #fff; font-size: 0.62rem; font-weight: 700; line-height: 1; }
.fp-ed .messages-star-button { order: 3; flex: none; background: none; border: 0; cursor: pointer; color: var(--line-2); font-size: 1.02rem; line-height: 1; padding: 4px; border-radius: 50%; opacity: 0; transition: color 0.15s ease, opacity 0.15s ease, transform 0.1s ease; }
.fp-ed .messages-conversation-card:hover .messages-star-button, .fp-ed .messages-star-button.is-starred, .fp-ed .messages-star-button.is-active { opacity: 1; }
.fp-ed .messages-star-button:hover { transform: scale(1.12); color: var(--ink); }
.fp-ed .messages-star-button.is-starred, .fp-ed .messages-star-button.is-active { color: #e0a106; }

/* thread */
.fp-ed .messages-thread-pane { position: relative; min-height: 0; display: flex; flex-direction: column; background: var(--bg); }
.fp-ed .messages-thread-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 22px; border-bottom: 1px solid var(--line); }
.fp-ed .messages-thread-user { display: flex; align-items: center; gap: 12px; }
.fp-ed .messages-thread-avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; font-weight: 700; }
.fp-ed .messages-thread-user > div { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.fp-ed .messages-thread-user strong { display: block; font-family: var(--display); font-size: 0.98rem; line-height: 1.12; }
.fp-ed .messages-thread-user span, .fp-ed .messages-thread-status { font-size: 0.78rem; color: var(--muted); display: flex; align-items: center; gap: 6px; line-height: 1.18; }
.fp-ed .messages-thread-handle { margin-top: -1px; }
.fp-ed .messages-thread-user [data-thread-status] { margin-top: 3px; }
.fp-ed .messages-thread-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.fp-ed .messages-thread-user[data-thread-profile] { border-radius: 12px; padding: 4px; margin: -4px; }
.fp-ed .messages-thread-user[data-thread-profile].is-clickable { cursor: pointer; }
.fp-ed .messages-thread-user[data-thread-profile].is-clickable:hover strong { text-decoration: underline; text-underline-offset: 2px; }
.fp-ed .messages-thread-user[data-thread-profile]:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.fp-ed .messages-thread-status-dot { width: 7px; height: 7px; border-radius: 50%; background: #1a9b5f; display: inline-block; }
.fp-ed .messages-thread-tools { display: flex; gap: 8px; flex-wrap: wrap; }
.fp-ed .messages-tool-button { padding: 8px 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg); font-family: inherit; font-size: 0.82rem; font-weight: 600; cursor: pointer; color: var(--ink); }
.fp-ed .messages-tool-button:hover { border-color: var(--ink); }
.fp-ed .messages-tool-button-primary { background: var(--ink); color: #fff; border-color: var(--ink); }
.fp-ed .messages-tool-button-danger { color: #a3201b; border-color: #e7c9c5; }
.fp-ed .messages-thread-notice { display: flex; align-items: center; gap: 10px; margin: 14px 22px 0; padding: 10px 14px; background: var(--band); border: 1px solid var(--line); border-radius: var(--r); font-size: 0.8rem; color: var(--muted); }
.fp-ed .messages-thread-notice[hidden] { display: none; }
.fp-ed .messages-thread-notice-icon { width: 18px; height: 18px; flex-shrink: 0; color: var(--ink); opacity: 0.7; }
.fp-ed .messages-thread-notice > span { flex: 1 1 auto; min-width: 0; line-height: 1.45; }
.fp-ed .messages-thread-notice-close { flex-shrink: 0; width: 26px; height: 26px; border: 0; border-radius: 50%; background: none; color: var(--muted); display: grid; place-items: center; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; }
.fp-ed .messages-thread-notice-close:hover { background: var(--bg); color: var(--ink); }
.fp-ed .messages-thread-notice-close svg { width: 14px; height: 14px; }
.fp-ed .messages-thread-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 18px 22px; }
.fp-ed .messages-thread-flow { display: grid; gap: 12px; }
.fp-ed .messages-day-marker { text-align: center; font-size: 0.72rem; color: var(--faint); text-transform: uppercase; letter-spacing: 0.1em; margin: 8px 0; }
.fp-ed .messages-row { display: flex; }
.fp-ed .messages-row.is-me { justify-content: flex-end; }
.fp-ed .messages-row.is-other { justify-content: flex-start; }
.fp-ed .messages-message { max-width: 76%; border: 1px solid var(--line); border-radius: 20px; padding: 11px 15px; background: #ffffff; box-shadow: 0 1px 2px rgba(20,18,15,0.05); }
.fp-ed .messages-row.is-other .messages-message { background: #ffffff; border-color: #ebe8e1; border-bottom-left-radius: 7px; }
.fp-ed .messages-row.is-me .messages-message { background: linear-gradient(135deg, #f4f9ff 0%, #d3e4fb 100%); color: var(--ink); border-color: #cfe0f7; border-bottom-right-radius: 7px; box-shadow: 0 4px 14px rgba(43,93,170,0.10); }
.fp-ed .messages-message-author { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 0.76rem; font-weight: 700; margin-bottom: 5px; }
.fp-ed .messages-message-author button { background: none; border: 0; color: inherit; opacity: 0.6; font-size: 0.74rem; cursor: pointer; font-family: inherit; }
.fp-ed .messages-message-author button:hover { opacity: 1; }
.fp-ed .messages-message p { margin: 0; font-size: 0.9rem; line-height: 1.5; white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; }
.fp-ed .messages-message-time { display: block; margin-top: 6px; font-size: 0.7rem; opacity: 0.6; }
.fp-ed .messages-message-service { display: flex; gap: 10px; margin-top: 10px; padding: 10px; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg); }
.fp-ed .messages-row.is-me .messages-message-service { background: rgba(31,80,160,0.06); border-color: rgba(31,80,160,0.18); }
.fp-ed .messages-message-service img { width: 46px; height: 46px; border-radius: var(--r); object-fit: cover; }
.fp-ed .messages-message-service strong { display: block; font-size: 0.82rem; }
.fp-ed .messages-message-service span { font-size: 0.76rem; opacity: 0.7; }
.fp-ed .messages-reply-quote { border-left: 2px solid currentColor; padding-left: 8px; margin-bottom: 6px; font-size: 0.8rem; opacity: 0.7; }
.fp-ed .messages-message-offer { width: 480px; max-width: 100%; }
.fp-ed .messages-row.is-me .messages-message-offer, .fp-ed .messages-row.is-other .messages-message-offer { background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; color: var(--ink); }
.fp-ed .messages-message-offer .messages-message-author { padding: 0 2px; }
.fp-ed .messages-message-offer > p { margin: 4px 0 0; padding: 0 2px; color: var(--ink); }
.fp-ed .messages-message-offer .messages-message-meta { padding: 5px 2px 0; }
.fp-ed .messages-contract-card { margin-top: 9px; border: 1px solid var(--line); border-radius: 14px; padding: 0; background: var(--bg); color: var(--ink); overflow: hidden; box-shadow: 0 2px 10px rgba(20,18,15,0.05); }
.fp-ed .messages-contract-eyebrow { display: flex; align-items: center; gap: 7px; padding: 13px 15px 0; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; color: var(--muted); }
.fp-ed .messages-contract-eyebrow svg { width: 14px; height: 14px; flex: none; }
.fp-ed .messages-contract-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; padding: 8px 15px 0; }
.fp-ed .messages-contract-head > div { min-width: 0; }
.fp-ed .messages-contract-head strong { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.98rem; letter-spacing: -0.01em; line-height: 1.3; }
.fp-ed .messages-contract-head > div > span { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 4px; font-size: 0.82rem; color: var(--muted); line-height: 1.5; word-break: break-word; overflow-wrap: anywhere; }
.fp-ed .messages-contract-status { flex: none; font-size: 0.58rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding: 4px 9px; border-radius: var(--pill); border: 1px solid transparent; white-space: nowrap; }
.fp-ed .messages-contract-status.is-pending { background: #fdf3e3; color: #97600f; border-color: #f1d9a8; }
.fp-ed .messages-contract-status.is-accepted { background: #e6f6ed; color: #0c7a4e; border-color: #b6e5ca; }
.fp-ed .messages-contract-status.is-declined { background: #fcecea; color: #b3261e; border-color: #f2c7c4; }
.fp-ed .messages-contract-status.is-withdrawn { background: #f0f0f1; color: #6d6d72; border-color: #e1e1e3; }
.fp-ed .messages-contract-metrics { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0 15px; }
.fp-ed .messages-contract-metrics:last-child { padding-bottom: 15px; }
.fp-ed .messages-contract-metric { flex: 1 1 0; min-width: 82px; display: grid; gap: 3px; padding: 10px 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; }
.fp-ed .messages-contract-metric span { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.fp-ed .messages-contract-metric strong { font-family: var(--serif); font-size: 1.02rem; letter-spacing: -0.01em; color: var(--ink); }
.fp-ed .messages-contract-metric.is-price strong { color: var(--ink); }
.fp-ed .messages-contract-hint { display: flex; align-items: center; gap: 6px; padding: 12px 15px 14px; margin: 0; font-size: 0.74rem; color: var(--muted); }
.fp-ed .messages-contract-hint svg { width: 14px; height: 14px; flex: none; opacity: 0.7; }
.fp-ed .messages-contract-actions { display: flex; gap: 9px; padding: 13px 15px 15px; }
.fp-ed .messages-contract-button { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: #ffffff; color: var(--ink); font-family: inherit; font-weight: 700; font-size: 0.82rem; cursor: pointer; text-decoration: none; transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease; }
.fp-ed .messages-contract-button:hover { transform: translateY(-1px); }
.fp-ed .messages-contract-button.is-accept { background: var(--ink); color: #fff; border-color: var(--ink); }
.fp-ed .messages-contract-button.is-accept:hover { background: #000; }
.fp-ed .messages-contract-button.is-decline:hover, .fp-ed .messages-contract-button.is-withdraw:hover { border-color: #e3b4b1; color: #b3261e; background: #fdf2f1; }
.fp-ed .messages-contract-button.is-open { background: var(--ink); color: #fff; border-color: var(--ink); }
.fp-ed .messages-contract-button-primary { background: var(--ink); color: #fff; border-color: var(--ink); }
/* "Show more" affordance on the card (full contract opens in a popup) */
.fp-ed .messages-contract-more { display: flex; align-items: center; gap: 5px; width: fit-content; margin: 10px 15px 0; padding: 0; border: 0; background: none; color: var(--muted); font-family: inherit; font-weight: 700; font-size: 0.74rem; letter-spacing: 0.01em; cursor: pointer; }
.fp-ed .messages-contract-more:last-child { margin-bottom: 14px; }
.fp-ed .messages-contract-more:hover { color: var(--ink); text-decoration: underline; }
.fp-ed .messages-contract-more svg { width: 13px; height: 13px; }
.fp-ed .messages-offer-error { margin: 8px 0 0; padding: 9px 12px; border-radius: 10px; background: #fcecea; border: 1px solid #f2c7c4; color: #b3261e; font-size: 0.82rem; font-weight: 600; line-height: 1.45; }
.fp-ed .messages-offer-error[hidden] { display: none; }
.fp-ed .messages-contract-detail-modal { position: fixed; inset: 0; z-index: 145; display: grid; place-items: center; padding: 20px; }
.fp-ed .messages-contract-detail-modal[hidden] { display: none; }
.fp-ed .messages-contract-detail-backdrop { position: absolute; inset: 0; background: rgba(11,11,12,0.5); }
.fp-ed .messages-contract-detail-dialog { position: relative; z-index: 1; width: 100%; max-width: 480px; max-height: 86vh; overflow-y: auto; background: var(--bg); border: 1px solid var(--line); border-radius: var(--r2); padding: 24px; }
.fp-ed .messages-contract-detail-close { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); color: var(--ink); font-size: 1.15rem; line-height: 1; cursor: pointer; }
.fp-ed .messages-contract-detail-close:hover { background: var(--band); }
.fp-ed .messages-contract-detail-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-right: 38px; }
.fp-ed .messages-contract-detail-eyebrow { display: flex; align-items: center; gap: 7px; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; color: var(--muted); }
.fp-ed .messages-contract-detail-eyebrow svg { width: 15px; height: 15px; }
.fp-ed .messages-contract-detail-title { font-family: var(--display); font-size: 1.18rem; letter-spacing: -0.02em; line-height: 1.25; margin: 13px 0 0; word-break: break-word; }
.fp-ed .messages-contract-detail-desc { margin: 12px 0 0; font-size: 0.9rem; color: var(--muted); line-height: 1.6; white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; }
.fp-ed .messages-contract-detail-grid { display: flex; flex-wrap: wrap; gap: 9px; margin: 16px 0 0; }
.fp-ed .messages-contract-detail-metric { flex: 1 1 0; min-width: 92px; display: grid; gap: 3px; padding: 10px 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; }
.fp-ed .messages-contract-detail-metric span { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.fp-ed .messages-contract-detail-metric strong { font-family: var(--serif); font-size: 1.08rem; letter-spacing: -0.01em; }
.fp-ed .messages-contract-detail-metric.is-price strong { color: var(--ink); }
.fp-ed .messages-contract-detail-actions { display: flex; gap: 9px; margin: 18px 0 0; }
.fp-ed .messages-contract-detail-actions:empty { display: none; }
body.messages-contract-detail-open { overflow: hidden; }

/* composer */
.fp-ed .messages-composer { border-top: 1px solid var(--line); padding: 14px 22px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 12px; align-items: end; position: relative; }
.fp-ed .messages-composer-actions { display: flex; gap: 6px; position: relative; align-items: center; height: 44px; }
.fp-ed .messages-mini-action { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); display: grid; place-items: center; cursor: pointer; color: var(--ink); transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease; }
.fp-ed .messages-mini-action:hover { background: var(--band); border-color: var(--ink); }
.fp-ed .messages-mini-action svg { width: 19px; height: 19px; }
.fp-ed .messages-mini-action-attach:hover { color: var(--ink); }
.fp-ed .messages-composer-center { min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; }
.fp-ed .messages-composer-field { display: block; }
.fp-ed .messages-composer-field textarea { display: block; width: 100%; min-height: 44px; max-height: 140px; border: 1px solid var(--line); border-radius: 22px; padding: 11px 16px; font-family: inherit; font-size: 0.9rem; line-height: 1.4; resize: none; background: var(--bg); box-sizing: border-box; }
.fp-ed .messages-composer-field textarea:focus { outline: none; border-color: var(--ink); }
.fp-ed .messages-composer-send { display: flex; align-items: flex-end; height: 100%; }
.fp-ed .messages-edit-bar { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; padding: 7px 10px 7px 12px; border-radius: 12px; background: var(--band); border: 1px solid var(--line); font-size: 0.78rem; color: var(--ink); }
.fp-ed .messages-edit-bar[hidden] { display: none; }
.fp-ed .messages-edit-bar-icon { width: 16px; height: 16px; flex-shrink: 0; opacity: 0.8; }
.fp-ed .messages-edit-bar-label { flex: 1 1 auto; min-width: 0; font-weight: 600; }
.fp-ed .messages-edit-bar-cancel { flex-shrink: 0; width: 24px; height: 24px; border: 0; border-radius: 50%; background: none; color: var(--muted); display: grid; place-items: center; cursor: pointer; }
.fp-ed .messages-edit-bar-cancel:hover { background: var(--bg); color: var(--ink); }
.fp-ed .messages-edit-bar-cancel svg { width: 13px; height: 13px; }
.fp-ed .messages-message.is-editing { box-shadow: 0 0 0 2px var(--ink); }
.fp-ed .messages-row.is-me .messages-message.is-editing { box-shadow: 0 0 0 2px rgba(31,95,191,0.55); }
.fp-ed .messages-reply-preview { font-size: 0.78rem; color: var(--muted); margin-bottom: 6px; }
.fp-ed .messages-typing-indicator { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 8px; animation: messagesTypingIn 0.22s ease both; }
.fp-ed .messages-typing-indicator[hidden] { display: none; }
.fp-ed .messages-typing-bubble { display: inline-flex; align-items: center; gap: 5px; padding: 10px 13px; background: linear-gradient(135deg, #ffffff 0%, #eef3fd 100%); border: 1px solid #e4e8f3; border-radius: 16px; border-bottom-left-radius: 6px; box-shadow: 0 6px 16px rgba(60,80,160,0.12); }
.fp-ed .messages-typing-bubble i { width: 7px; height: 7px; border-radius: 50%; display: block; opacity: 0.45; animation: messagesTypingBounce 1.3s infinite ease-in-out; }
.fp-ed .messages-typing-bubble i:nth-child(1) { background: #5b8def; animation-delay: 0s; }
.fp-ed .messages-typing-bubble i:nth-child(2) { background: #6d96f0; animation-delay: 0.16s; }
.fp-ed .messages-typing-bubble i:nth-child(3) { background: #2bb9a0; animation-delay: 0.32s; }
.fp-ed .messages-typing-text { font-size: 0.74rem; font-weight: 500; color: var(--muted); letter-spacing: 0.01em; }
@keyframes messagesTypingBounce { 0%, 60%, 100% { transform: translateY(0); opacity: 0.4; } 30% { transform: translateY(-5px); opacity: 1; } }
@keyframes messagesTypingIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .fp-ed .messages-typing-indicator { animation: none; }
  .fp-ed .messages-typing-bubble i { animation: none; opacity: 0.7; }
}
.fp-ed .messages-attachments { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.fp-ed .messages-attachments[hidden] { display: none; }
.fp-ed .messages-attachment-chip { font-size: 0.76rem; padding: 5px 10px; border: 1px solid var(--line); border-radius: var(--pill); }
.fp-ed .messages-composer-status { font-size: 0.78rem; color: var(--muted); margin-top: 6px; }
.fp-ed .messages-send-button { width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; cursor: pointer; }
.fp-ed .messages-send-button svg { width: 20px; height: 20px; }
.fp-ed .messages-emoji-panel { position: absolute; bottom: 64px; left: 22px; width: 332px; max-width: calc(100vw - 32px); background: var(--bg); border: 1px solid var(--line); border-radius: var(--r2); padding: 14px; box-shadow: 0 16px 44px rgba(0,0,0,0.16); z-index: 20; }
.fp-ed .messages-emoji-head strong { font-size: 0.86rem; }
.fp-ed .messages-emoji-head span { display: block; font-size: 0.74rem; color: var(--muted); margin-bottom: 10px; }
.fp-ed .messages-emoji-tabs { display: flex; gap: 2px; align-items: center; padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.fp-ed .messages-emoji-tabs::-webkit-scrollbar { display: none; }
.fp-ed .messages-emoji-tab { flex: 0 0 auto; border: 0; background: none; font-size: 1.12rem; line-height: 1; cursor: pointer; padding: 5px 6px; border-radius: var(--r); opacity: 0.62; transition: background 0.15s ease, opacity 0.15s ease; }
.fp-ed .messages-emoji-tab:hover { background: var(--band); opacity: 1; }
.fp-ed .messages-emoji-tab.is-active { background: var(--ink); opacity: 1; box-shadow: inset 0 0 0 1px var(--ink); }
.fp-ed .messages-emoji-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: 2px; max-height: 232px; overflow-y: auto; scrollbar-width: thin; }
.fp-ed .messages-emoji-option { border: 0; background: none; font-size: 1.28rem; line-height: 1; cursor: pointer; padding: 5px 0; border-radius: var(--r); transition: background 0.12s ease; }
.fp-ed .messages-emoji-option:hover { background: var(--band); }

/* details pane */
.fp-ed .messages-details-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 1.2rem; margin: 0 auto 10px; }
.fp-ed .messages-details-card .messages-pane-kicker { margin-bottom: 10px; }
.fp-ed .messages-serve-preview { font-size: 0.82rem; color: var(--muted); }
.fp-ed .messages-empty-state { display: grid; place-items: center; height: 100%; text-align: center; color: var(--muted); padding: 40px; font-size: 0.9rem; }
.fp-ed .messages-notification-item { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 0.84rem; }

/* modals */
.fp-ed .messages-offer-modal, .fp-ed .messages-block-modal { position: fixed; inset: 0; z-index: 130; display: grid; place-items: center; padding: 20px; }
.fp-ed .messages-offer-modal[hidden], .fp-ed .messages-block-modal[hidden] { display: none; }
.fp-ed .messages-offer-backdrop, .fp-ed .messages-block-backdrop { position: absolute; inset: 0; background: rgba(11,11,12,0.45); }
.fp-ed .messages-offer-dialog, .fp-ed .messages-block-dialog { position: relative; z-index: 1; width: 100%; max-width: 512px; max-height: 90vh; overflow-y: auto; background: var(--bg); border-radius: var(--r2); border: 1px solid var(--line); padding: 26px; box-shadow: 0 24px 60px rgba(0,0,0,0.22); }
.fp-ed .messages-offer-head { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; margin-bottom: 18px; }
.fp-ed .messages-offer-head h2 { font-family: var(--display); font-size: 1.2rem; margin: 8px 0 4px; }
.fp-ed .messages-offer-head p { font-size: 0.86rem; color: var(--muted); }
.fp-ed .messages-offer-close { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); cursor: pointer; font-size: 1.2rem; line-height: 1; flex-shrink: 0; }
.fp-ed .messages-offer-form { display: grid; gap: 14px; }
.fp-ed .messages-offer-field { display: grid; gap: 6px; }
.fp-ed .messages-offer-field > span { font-size: 0.8rem; font-weight: 600; }
.fp-ed .messages-offer-req { color: #c0392b; font-weight: 700; }
.fp-ed .messages-offer-optional { color: var(--muted); font-weight: 500; }
.fp-ed .messages-offer-field input, .fp-ed .messages-offer-field textarea, .fp-ed .messages-offer-field select { border: 1px solid var(--line); border-radius: var(--r); padding: 11px 13px; font-family: inherit; font-size: 0.9rem; background: var(--bg); width: 100%; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.fp-ed .messages-offer-field input:focus, .fp-ed .messages-offer-field textarea:focus, .fp-ed .messages-offer-field select:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11,11,12,0.07); }
.fp-ed .messages-offer-field textarea { resize: vertical; min-height: 104px; line-height: 1.5; }
.fp-ed .messages-offer-field small { font-size: 0.74rem; color: var(--muted); }
.fp-ed .currency-input-field:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11,11,12,0.07); }
.fp-ed .messages-offer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fp-ed .messages-offer-foot, .fp-ed .messages-block-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.fp-ed .messages-block-dialog h2 { font-family: var(--display); font-size: 1.15rem; margin: 8px 0; }
.fp-ed .messages-block-dialog p { font-size: 0.88rem; color: var(--muted); }

.fp-ed .messages-offer-field select {
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  padding-right: 42px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d6d72' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 16px;
}
.fp-ed .messages-offer-field select:hover { border-color: var(--ink-2); }
.fp-ed .messages-offer-field select:focus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b0b0c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); }
.fp-ed .messages-offer-field input, .fp-ed .messages-offer-field textarea, .fp-ed .messages-offer-field select { border-radius: var(--r2); padding: 12px 14px; }
.fp-ed .messages-offer-field > span { font-size: 0.82rem; font-weight: 600; color: var(--ink); margin-bottom: 1px; }

.fp-ed .messages-block-dialog { padding: 28px; border-color: var(--line-2); }
.fp-ed .messages-block-dialog .messages-pane-kicker { display: inline-flex; align-items: center; gap: 6px; color: #b4231f; }
.fp-ed .messages-block-dialog .messages-pane-kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #b4231f; flex: none; }
.fp-ed .messages-block-dialog h2 { font-size: 1.25rem; margin: 6px 0 10px; letter-spacing: -0.01em; }
.fp-ed .messages-block-dialog p[data-block-copy] { font-size: 0.9rem; line-height: 1.55; margin: 0 0 18px; }
.fp-ed .messages-block-dialog .messages-offer-form { gap: 16px; }

/* "Also block this user" — a proper toggle row (not a button hack). */
.fp-ed [data-block-also-block-shell] { display: flex; align-items: center; gap: 11px; padding: 13px 15px; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); cursor: pointer; font-size: 0.9rem; font-weight: 500; transition: border-color 0.15s ease, background 0.15s ease; }
.fp-ed [data-block-also-block-shell]:hover { border-color: var(--ink-2); }
.fp-ed [data-block-also-block-shell]:has(input:checked) { border-color: #d99a95; background: #fdf6f5; }
.fp-ed [data-block-also-block-shell] input[type="checkbox"] { width: 18px; height: 18px; accent-color: #b4231f; cursor: pointer; flex: none; margin: 0; }
.fp-ed [data-block-also-block-shell] span { color: var(--ink); font-weight: 600; }

.fp-ed .messages-block-actions { margin-top: 22px; gap: 12px; }
.fp-ed .messages-block-actions .messages-tool-button { padding: 11px 20px; border-radius: var(--r2); font-size: 0.9rem; }
.fp-ed .messages-block-actions .messages-tool-button-danger { background: #b4231f; color: #fff; border-color: #b4231f; }
.fp-ed .messages-block-actions .messages-tool-button-danger:hover { background: #9a1d18; border-color: #9a1d18; }
.fp-ed .currency-input-field { display: flex; align-items: center; gap: 4px; border: 1px solid var(--line); border-radius: var(--r); padding: 0 12px; }
.fp-ed .currency-input-field input { border: 0; padding: 10px 0; }

.fp-ed .messages-upload-modal, .fp-ed .messages-firstnote-modal { position: fixed; inset: 0; z-index: 140; display: grid; place-items: center; padding: 20px; }
.fp-ed .messages-upload-modal[hidden], .fp-ed .messages-firstnote-modal[hidden] { display: none; }
.fp-ed .messages-upload-backdrop, .fp-ed .messages-firstnote-backdrop { position: absolute; inset: 0; background: rgba(11,11,12,0.5); }
.fp-ed .messages-upload-dialog, .fp-ed .messages-firstnote-dialog { position: relative; z-index: 1; width: 100%; max-width: 460px; max-height: 90vh; overflow-y: auto; background: var(--bg); border-radius: var(--r2); border: 1px solid var(--line); padding: 26px; box-shadow: 0 24px 60px rgba(0,0,0,0.22); }
.fp-ed .messages-upload-dialog .messages-offer-close { position: absolute; top: 18px; right: 18px; display: grid; place-items: center; }
.fp-ed .messages-upload-dialog .messages-offer-close svg { width: 16px; height: 16px; }
.fp-ed .messages-upload-dialog h2 { font-family: var(--display); font-size: 1.18rem; margin: 6px 0; }
.fp-ed .messages-upload-sub { font-size: 0.84rem; color: var(--muted); line-height: 1.5; margin-bottom: 16px; }
.fp-ed .messages-upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fp-ed .messages-upload-option { display: flex; align-items: center; gap: 12px; text-align: left; border: 1px solid var(--line); border-radius: var(--r2); padding: 14px; background: var(--bg); cursor: pointer; font-family: inherit; transition: border-color 0.15s ease, background 0.15s ease, transform 0.1s ease; }
.fp-ed .messages-upload-option:hover { border-color: var(--ink); background: var(--band); transform: translateY(-1px); }
.fp-ed .messages-upload-option-icon { width: 40px; height: 40px; flex-shrink: 0; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; color: var(--ink); background: var(--bg); }
.fp-ed .messages-upload-option-icon svg { width: 20px; height: 20px; }
.fp-ed .messages-upload-option-body { display: grid; gap: 2px; min-width: 0; }
.fp-ed .messages-upload-option-body strong { font-size: 0.92rem; }
.fp-ed .messages-upload-option-body span { font-size: 0.72rem; color: var(--muted); line-height: 1.35; }

/* First-message safety popup (MSG-1) */
.fp-ed .messages-firstnote-dialog { max-width: 480px; }
.fp-ed .messages-firstnote-dialog h2 { font-family: var(--display); font-size: 1.22rem; margin: 6px 0 16px; line-height: 1.3; }
.fp-ed .messages-firstnote-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.fp-ed .messages-firstnote-list li { display: flex; gap: 12px; align-items: flex-start; font-size: 0.86rem; color: var(--muted); line-height: 1.5; }
.fp-ed .messages-firstnote-list li strong { color: var(--ink); font-weight: 600; }
.fp-ed .messages-firstnote-list svg { width: 22px; height: 22px; flex-shrink: 0; color: var(--ink); margin-top: 1px; }
.fp-ed .messages-firstnote-ack { display: flex; align-items: center; gap: 8px; margin: 18px 0 4px; font-size: 0.82rem; color: var(--muted); cursor: pointer; }
.fp-ed .messages-firstnote-ack input { width: 16px; height: 16px; }
.fp-ed .messages-firstnote-actions { display: flex; justify-content: flex-end; margin-top: 16px; }
.fp-ed .messages-firstnote-actions .messages-tool-button { padding: 11px 20px; }
body.messages-upload-open, body.messages-firstnote-open { overflow: hidden; }

/* read receipts (delivered / seen) */
.fp-ed .messages-message-meta { display: flex; align-items: center; justify-content: flex-end; gap: 6px; margin-top: 6px; }
.fp-ed .messages-message-time { display: inline-flex; align-items: center; margin-top: 0; font-size: 0.68rem; opacity: 0.6; }
.fp-ed .messages-receipt { display: inline-flex; align-items: center; gap: 3px; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.02em; opacity: 0.7; }
.fp-ed .messages-receipt .messages-receipt-label { line-height: 1; }
.fp-ed .messages-receipt.is-seen { opacity: 1; color: #1a9b5f; }
.fp-ed .messages-tick { width: 15px; height: 11px; flex-shrink: 0; }
.fp-ed .messages-tick-double { width: 18px; }
.fp-ed .messages-row.is-me .messages-message-time { opacity: 0.6; color: var(--muted); }
.fp-ed .messages-row.is-me .messages-receipt { opacity: 0.75; color: var(--muted); }
.fp-ed .messages-row.is-me .messages-receipt.is-seen { opacity: 1; color: #1a8a55; }
.fp-ed .messages-status { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.02em; opacity: 0.7; line-height: 1; }
.fp-ed .messages-status.is-seen { opacity: 1; color: #1a9b5f; }
.fp-ed .messages-status.is-sending { opacity: 0.7; font-style: italic; }
.fp-ed .messages-status.is-failed { opacity: 1; color: #c0392b; }
.fp-ed .messages-row.is-me .messages-status { opacity: 0.78; color: var(--muted); }
.fp-ed .messages-row.is-me .messages-status.is-seen { opacity: 1; color: #1a8a55; }
.fp-ed .messages-row.is-me .messages-status.is-failed { opacity: 1; color: #c0392b; }
.fp-ed .messages-resend { border: 0; background: none; padding: 0; margin-left: 2px; font: inherit; font-size: 0.66rem; font-weight: 700; cursor: pointer; text-decoration: underline; color: inherit; }
.fp-ed .messages-row.is-me .messages-resend { color: #1f5fbf; }
.fp-ed .messages-resend:hover { opacity: 0.8; }
.fp-ed .messages-jump { position: absolute; right: 22px; bottom: 92px; z-index: 8; display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px 7px 10px; border: 1px solid var(--line); border-radius: var(--pill); background: var(--bg); color: var(--ink); font-family: inherit; font-size: 0.76rem; font-weight: 600; cursor: pointer; box-shadow: 0 8px 22px rgba(0,0,0,0.16); }
.fp-ed .messages-jump[hidden] { display: none; }
.fp-ed .messages-jump:hover { background: var(--band); }
.fp-ed .messages-jump svg { width: 15px; height: 15px; }
/* online presence dot on the thread avatar */
.fp-ed .messages-thread-avatar { position: relative; }
.fp-ed .messages-thread-avatar.is-online::after { content: ""; position: absolute; right: -1px; bottom: -1px; width: 11px; height: 11px; border-radius: 50%; background: #1a9b5f; border: 2px solid var(--bg); }
.fp-ed .messages-details-avatar { position: relative; }
.fp-ed .messages-details-avatar.is-online::after { content: ""; position: absolute; right: 2px; bottom: 2px; width: 13px; height: 13px; border-radius: 50%; background: #1a9b5f; border: 2px solid var(--paper); }

/* in-message external links + outside-link safety prompt */
.fp-ed .messages-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; word-break: break-word; }
.fp-ed .messages-row.is-other .messages-link { color: var(--ink); }
.fp-ed .messages-link:hover { opacity: 0.8; }
.fp-ed .messages-linksafe-modal { position: fixed; inset: 0; z-index: 140; display: grid; place-items: center; padding: 20px; }
.fp-ed .messages-linksafe-modal[hidden] { display: none; }
.fp-ed .messages-linksafe-backdrop { position: absolute; inset: 0; background: rgba(11,11,12,0.5); }
.fp-ed .messages-linksafe-dialog { position: relative; z-index: 1; width: 100%; max-width: 460px; background: var(--bg); border: 1px solid var(--line); border-radius: var(--r2); padding: 26px; }
.fp-ed .messages-linksafe-dialog h2 { font-family: var(--display); font-size: 1.18rem; letter-spacing: -0.02em; margin: 10px 0 8px; }
.fp-ed .messages-linksafe-dialog p { font-size: 0.9rem; color: var(--muted); line-height: 1.55; margin: 0; }
.fp-ed .messages-linksafe-url { margin: 14px 0 0; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--r); background: var(--paper); font-family: var(--mono, ui-monospace, monospace); font-size: 0.82rem; color: var(--ink); word-break: break-all; }
.fp-ed .messages-linksafe-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 11px; }
.fp-ed .messages-linksafe-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 0.84rem; color: var(--muted); line-height: 1.5; }
.fp-ed .messages-linksafe-list li strong { color: var(--ink); font-weight: 600; }
.fp-ed .messages-linksafe-list svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--ink); margin-top: 1px; }
.fp-ed .messages-linksafe-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.fp-ed .messages-masked { display: inline-flex; align-items: center; gap: 5px; vertical-align: middle; margin: 0 1px; padding: 1px 9px 1px 7px; border-radius: var(--pill); background: #fbf6e9; border: 1px solid #ecd9a8; color: #8a6300; font-size: 0.76rem; font-weight: 600; letter-spacing: 0.01em; line-height: 1.45; white-space: nowrap; cursor: pointer; transition: background-color 0.15s ease, border-color 0.15s ease; }
.fp-ed .messages-masked svg { width: 13px; height: 13px; flex-shrink: 0; }
.fp-ed .messages-masked:hover { background: #f6edd5; border-color: #ddc079; }
.fp-ed .messages-row.is-me .messages-masked { background: rgba(255,255,255,0.7); border-color: #e0c98f; color: #7a5600; }
.fp-ed .messages-row.is-me .messages-masked:hover { background: #ffffff; border-color: #c79a3e; }
.fp-ed .messages-policy-modal { position: fixed; inset: 0; z-index: 150; display: grid; place-items: center; padding: 20px; }
.fp-ed .messages-policy-modal[hidden] { display: none; }
.fp-ed .messages-policy-backdrop { position: absolute; inset: 0; background: rgba(11,11,12,0.5); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.fp-ed .messages-policy-dialog { position: relative; z-index: 1; width: 100%; max-width: 440px; background: var(--bg); border: 1px solid var(--line); border-radius: var(--r2); padding: 26px; box-shadow: 0 24px 60px rgba(20,18,15,0.22); animation: messagesPolicyIn 0.34s cubic-bezier(0.22, 1, 0.36, 1); }
.fp-ed .messages-policy-icon { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: #fbf6e9; border: 1px solid #ecd9a8; color: #9a6a00; margin-bottom: 14px; }
.fp-ed .messages-policy-icon svg { width: 24px; height: 24px; }
.fp-ed .messages-policy-kicker { display: inline-block; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: #9a6a00; font-weight: 700; }
.fp-ed .messages-policy-icon.is-info { background: var(--band); border-color: var(--line); color: var(--ink); }
.fp-ed .messages-policy-kicker.is-info { color: var(--muted); }
.fp-ed .messages-policy-dialog h2 { font-family: var(--display); font-size: 1.18rem; letter-spacing: -0.02em; margin: 7px 0 8px; color: var(--ink); }
.fp-ed .messages-policy-dialog p { font-size: 0.9rem; color: var(--muted); line-height: 1.55; margin: 0; }
.fp-ed .messages-policy-list { list-style: none; margin: 15px 0 0; padding: 0; display: grid; gap: 11px; }
.fp-ed .messages-policy-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 0.85rem; color: var(--muted); line-height: 1.5; }
.fp-ed .messages-policy-list li strong { color: var(--ink); font-weight: 700; }
.fp-ed .messages-policy-list svg { width: 19px; height: 19px; flex-shrink: 0; color: #9a6a00; margin-top: 1px; }
.fp-ed .messages-policy-dialog .messages-policy-note { margin-top: 15px; padding: 11px 13px; border-radius: var(--r); background: var(--band); border: 1px solid var(--line); font-size: 0.82rem; color: var(--ink); line-height: 1.5; }
.fp-ed .messages-policy-actions { display: flex; justify-content: flex-end; margin-top: 18px; }
@keyframes messagesPolicyIn { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .fp-ed .messages-policy-dialog { animation-duration: 0.01ms; } }

@media (max-width: 1080px) {
  .fp-ed .messages-app-main { grid-template-columns: 300px minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .fp-ed.messages-page { height: auto; overflow: visible; }
  .fp-ed .messages-app-main { grid-template-columns: 1fr; }
  .fp-ed .messages-sidebar { border-right: 0; border-bottom: 1px solid var(--line); max-height: 42vh; }
  .fp-ed .messages-thread-scroll { min-height: 52vh; }
  .fp-ed .messages-emoji-panel { left: 12px; right: 12px; width: auto; }
  .fp-ed .messages-message-offer { width: 100%; }
}

.fp-ed .ed-oc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.fp-ed .ed-oc-parties { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.fp-ed .ed-oc-parties strong { display: block; font-size: 0.96rem; }
.fp-ed .ed-oc-parties span { display: block; font-size: 0.82rem; color: var(--muted); }
.fp-ed .ed-oc-av { width: 46px; height: 46px; flex: none; border-radius: 50%; overflow: hidden; background: var(--band); color: var(--ink); display: grid; place-items: center; font-weight: 700; font-size: 0.92rem; }
.fp-ed .ed-oc-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-ed .ed-oc-head-side { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fp-ed .ed-oc-due { font-size: 0.82rem; font-weight: 600; color: var(--muted); border: 1px solid var(--line); border-radius: var(--pill); padding: 4px 12px; }
.fp-ed .ed-oc-due.is-late { color: #b4231f; border-color: #e6b8b6; }
.fp-ed .ed-oc-card { border: 1px solid var(--line); border-radius: var(--r2); padding: 20px; margin-top: 16px; }
.fp-ed .ed-oc-card:first-child { margin-top: 22px; }
.fp-ed .ed-oc-readonly { display: flex; align-items: flex-start; gap: 12px; margin-top: 22px; padding: 14px 16px; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--band); }
.fp-ed .ed-oc-readonly svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--muted); margin-top: 1px; }
.fp-ed .ed-oc-readonly strong { display: block; font-size: 0.92rem; color: var(--ink); }
.fp-ed .ed-oc-readonly span { display: block; font-size: 0.84rem; color: var(--muted); margin-top: 2px; }
.fp-ed .ed-oc-lock { display: flex; align-items: flex-start; gap: 11px; margin-top: 14px; padding: 13px 15px; border: 1px solid #ecd9a8; border-radius: var(--r2); background: #fbf6e9; }
.fp-ed .ed-oc-lock svg { width: 19px; height: 19px; flex-shrink: 0; color: #9a6a00; margin-top: 1px; }
.fp-ed .ed-oc-lock strong { display: block; font-size: 0.9rem; color: var(--ink); }
.fp-ed .ed-oc-lock span { display: block; font-size: 0.82rem; color: var(--muted); margin-top: 2px; }
.fp-ed .ed-oc-title { font-family: var(--display); font-size: 1.04rem; font-weight: 600; margin: 0 0 12px; }
.fp-ed .ed-oc-prose { font-size: 0.94rem; line-height: 1.6; color: var(--ink); margin: 0; white-space: pre-wrap; }
.fp-ed .ed-oc-muted { font-size: 0.88rem; color: var(--muted); margin: 0; }
.fp-ed .ed-oc-reqs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 0; }
.fp-ed .ed-oc-reqs dt { font-size: 0.82rem; color: var(--muted); margin-bottom: 3px; }
.fp-ed .ed-oc-reqs dd { margin: 0; font-size: 0.94rem; }
.fp-ed .ed-oc-files { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.fp-ed .ed-oc-files a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); transition: background-color 0.15s ease; }
.fp-ed .ed-oc-files a:hover { background: var(--band); }
.fp-ed .ed-oc-file-name { font-weight: 600; font-size: 0.9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.fp-ed .ed-oc-file-meta { font-size: 0.76rem; color: var(--muted); flex: none; }
.fp-ed .ed-oc-timeline { list-style: none; margin: 4px 0 0; padding: 0 6px 0 0; max-height: 360px; overflow-y: auto; }
.fp-ed .ed-oc-timeline li { position: relative; display: grid; grid-template-columns: 28px 1fr; gap: 12px; padding-bottom: 16px; }
.fp-ed .ed-oc-timeline li:last-child { padding-bottom: 0; }
.fp-ed .ed-oc-timeline li::before { content: ""; position: absolute; left: 13px; top: 28px; height: calc(100% - 28px); width: 2px; background: var(--line); }
.fp-ed .ed-oc-timeline li:last-child::before { display: none; }
.fp-ed .ed-oc-tl-node { width: 28px; height: 28px; flex: none; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); display: grid; place-items: center; color: var(--muted); }
.fp-ed .ed-oc-tl-node svg { width: 14px; height: 14px; }
.fp-ed .ed-oc-tl-node.is-dispute { border-color: #e6b8b6; background: #fdf3f2; color: #b4231f; }
.fp-ed .ed-oc-tl-node.is-money { border-color: #bfe3c9; background: #f0faf3; color: #1f7a3d; }
.fp-ed .ed-oc-tl-node.is-request { border-color: #ecd9a8; background: #fbf6e9; color: #9a6a00; }
.fp-ed .ed-oc-tl-node.is-info { border-color: #cdddf6; background: #eef3fc; color: #2456b8; }
.fp-ed .ed-oc-tl-body { min-width: 0; padding-top: 4px; }
.fp-ed .ed-oc-timeline strong { display: block; font-size: 0.9rem; font-weight: 600; }
.fp-ed .ed-oc-tl-time { display: block; font-size: 0.78rem; color: var(--muted); margin-top: 1px; }
.fp-ed .ed-oc-dispute { border-color: #e6b8b6; background: #fdf6f5; }
.fp-ed .ed-oc-dispute-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
/* Mediation note + verified "Official Support" badge (the one intentional official-blue accent, scoped to staff). */
.fp-ed .ed-oc-dispute-note { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 14px; padding: 9px 12px; border: 1px solid #cdddf6; background: #f3f7fe; border-radius: var(--r); font-size: 0.82rem; color: #28508f; }
.fp-ed .ed-oc-dispute-note svg { width: 15px; height: 15px; flex: none; margin-top: 1px; color: #2456b8; }
/* "Open the Resolution Center" jump-link on the active-contract dispute section */
.fp-ed .ed-oc-rc-link { display: flex; align-items: center; gap: 12px; text-decoration: none; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--bg); padding: 12px 14px; margin: 0 0 14px; color: var(--ink); transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.fp-ed .ed-oc-rc-link:hover { border-color: var(--brand); box-shadow: 0 12px 26px -18px rgba(37,99,235,0.5); }
.fp-ed .ed-oc-rc-link-ic { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: none; border-radius: 10px; background: rgba(37,99,235,0.09); color: var(--brand); }
.fp-ed .ed-oc-rc-link-ic svg { width: 19px; height: 19px; }
.fp-ed .ed-oc-rc-link-t { display: grid; gap: 2px; flex: 1; min-width: 0; }
.fp-ed .ed-oc-rc-link-t strong { font-size: 0.9rem; font-weight: 700; }
.fp-ed .ed-oc-rc-link-t small { font-size: 0.76rem; color: var(--muted); line-height: 1.4; }
.fp-ed .ed-oc-rc-link-arrow { flex: none; color: var(--muted); transition: transform 0.15s ease, color 0.15s ease; }
.fp-ed .ed-oc-rc-link-arrow svg { width: 18px; height: 18px; }
.fp-ed .ed-oc-rc-link:hover .ed-oc-rc-link-arrow { color: var(--brand); transform: translateX(2px); }
.fp-ed .ed-staff-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px 2px 6px; border-radius: 999px; background: #eaf0fb; border: 1px solid #c4d6f4; color: #2456b8; font-size: 0.68rem; font-weight: 700; line-height: 1.45; white-space: nowrap; }
.fp-ed .ed-staff-badge svg { width: 12px; height: 12px; flex: none; }
@media (max-width: 480px) { .fp-ed .fp-pro-gate-actions .ed-btn { width: 100%; } }

.fp-ed .ed-job-wrap { padding: 30px 0 70px; }
.fp-ed .ed-job-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 18px; }
.fp-ed .ed-job-toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 0 0 20px; }
.fp-ed .ed-job-search { flex: 1 1 240px; min-width: 0; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: var(--pill); padding: 0 14px; height: 42px; background: var(--bg); }
.fp-ed .ed-job-search input { border: none; outline: none; background: none; width: 100%; font: inherit; font-size: 0.92rem; color: var(--ink); }
.fp-ed .ed-job-search svg { width: 16px; height: 16px; flex: none; color: var(--muted); }
.fp-ed .ed-job-toolbar select { height: 42px; border: 1px solid var(--line); border-radius: var(--pill); padding: 0 14px; font: inherit; font-size: 0.88rem; color: var(--ink-2); background: var(--bg); cursor: pointer; }
/* Job list + cards */
.fp-ed .ed-job-list { display: grid; gap: 16px; }
.fp-ed .ed-job-card { position: relative; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); padding: 20px 22px; transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; }
.fp-ed .ed-job-card:hover { border-color: var(--line-2); box-shadow: 0 14px 34px rgba(0, 0, 0, 0.07); transform: translateY(-2px); }
.fp-ed .ed-job-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.fp-ed .ed-job-title { font-family: var(--display); font-size: 1.16rem; font-weight: 600; line-height: 1.3; color: var(--ink); text-decoration: none; display: inline-block; }
.fp-ed .ed-job-title:hover { text-decoration: underline; }
.fp-ed .ed-job-budget { text-align: right; flex: none; }
.fp-ed .ed-job-budget b { font-family: var(--serif); font-size: 1.18rem; font-weight: 600; color: var(--ink); white-space: nowrap; }
.fp-ed .ed-job-budget span { display: block; font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.fp-ed .ed-job-desc { color: var(--muted); font-size: 0.92rem; line-height: 1.55; margin: 8px 0 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fp-ed .ed-job-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.fp-ed .ed-job-tag { font-size: 0.76rem; font-weight: 500; color: var(--ink-2); background: var(--band); border: 1px solid var(--line); border-radius: var(--pill); padding: 3px 11px; }
.fp-ed .ed-job-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; font-size: 0.82rem; color: var(--muted); }
.fp-ed .ed-job-meta .ed-job-dot::before { content: "·"; margin-right: 14px; color: var(--line-2); }
.fp-ed .ed-job-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); flex-wrap: wrap; }
.fp-ed .ed-job-buyer { display: flex; align-items: center; gap: 9px; min-width: 0; }
.fp-ed .ed-job-buyer .ed-av { width: 30px; height: 30px; font-size: 0.78rem; flex: none; }
.fp-ed .ed-job-buyer-tx { min-width: 0; line-height: 1.3; }
.fp-ed .ed-job-buyer-tx strong { display: block; font-size: 0.86rem; color: var(--ink); font-weight: 600; }
.fp-ed .ed-job-buyer-tx small { font-size: 0.76rem; color: var(--muted); }
/* Detail layout */
.fp-ed .ed-job-detail { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.fp-ed .ed-job-main { min-width: 0; display: grid; gap: 18px; }
.fp-ed .ed-job-panel { border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 22px 24px; }
.fp-ed .ed-job-panel h3 { font-family: var(--display); font-size: 0.95rem; font-weight: 600; margin: 0 0 12px; color: var(--ink); }
.fp-ed .ed-job-prose { color: var(--ink-2); font-size: 0.94rem; line-height: 1.7; white-space: pre-wrap; word-break: break-word; }
.fp-ed .ed-job-side { position: sticky; top: 90px; display: grid; gap: 16px; }
.fp-ed .ed-job-side-card { border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); padding: 20px; }
.fp-ed .ed-job-facts { display: grid; gap: 10px; margin: 0; }
.fp-ed .ed-job-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 0.86rem; }
.fp-ed .ed-job-facts dt { color: var(--muted); }
.fp-ed .ed-job-facts dd { margin: 0; color: var(--ink); font-weight: 600; text-align: right; }
.fp-ed .ed-job-prop { border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 13px 15px; display: flex; align-items: center; gap: 13px; min-width: 0; }
.fp-ed .ed-job-prop.is-hired { border-color: #0e9f6e; background: #f3fbf7; }
.fp-ed .ed-job-prop-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fp-ed .ed-job-prop-bid { font-family: var(--serif); font-size: 1.1rem; font-weight: 600; color: var(--ink); }
.fp-ed .ed-job-prop-cover { color: var(--ink-2); font-size: 0.9rem; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.fp-ed .ed-job-pf { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.fp-ed .ed-job-pf-tile { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--band); }
.fp-ed .ed-job-pf-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #0b0b0c; }
.fp-ed .ed-job-pf-media img, .fp-ed .ed-job-pf-media video, .fp-ed .ed-job-pf-media .fp-vp { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-ed .ed-job-pf-cap { padding: 7px 10px; font-size: 0.76rem; color: var(--ink-2); display: flex; align-items: center; gap: 6px; }
.fp-ed .ed-job-pf-cap .is-vid { font-size: 0.66rem; font-weight: 700; color: #fff; background: #0b0b0c; border-radius: var(--pill); padding: 1px 7px; }
/* Apply form portfolio picker */
.fp-ed .ed-job-pfpick { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.fp-ed .ed-job-pfpick-item { position: relative; border: 2px solid var(--line); border-radius: var(--r); overflow: hidden; cursor: pointer; background: var(--band); transition: border-color 0.15s ease; }
.fp-ed .ed-job-pfpick-item:hover { border-color: var(--line-2); }
.fp-ed .ed-job-pfpick-item.is-sel { border-color: #0b0b0c; }
.fp-ed .ed-job-pfpick-item .ed-job-pf-media { aspect-ratio: 16 / 10; }
.fp-ed .ed-job-pfpick-check { position: absolute; top: 7px; right: 7px; width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,0.92); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; }
.fp-ed .ed-job-pfpick-item.is-sel .ed-job-pfpick-check { background: #0b0b0c; border-color: #0b0b0c; }
.fp-ed .ed-job-pfpick-item.is-sel .ed-job-pfpick-check svg { color: #fff; }
.fp-ed .ed-job-pfpick-check svg { width: 13px; height: 13px; color: transparent; }
.fp-ed .ed-job-steps { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 22px; list-style: none; padding: 0; }
.fp-ed .ed-job-steps > li::marker { content: ""; }
.fp-ed .ed-job-step { display: flex; align-items: center; gap: 9px; font-size: 0.82rem; font-weight: 600; color: var(--muted); cursor: pointer; transition: color 0.18s ease; }
.fp-ed .ed-job-step b { width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--line-2); background: var(--paper); color: var(--muted); display: flex; align-items: center; justify-content: center; font-size: 0.82rem; font-weight: 700; flex: none; transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; }
.fp-ed .ed-job-step.is-active { color: var(--ink); }
.fp-ed .ed-job-step.is-active b { background: var(--ink); color: var(--bg); border-color: var(--ink); transform: scale(1.06); box-shadow: 0 0 0 4px rgba(20, 20, 20, 0.08); }
.fp-ed .ed-job-step.is-done { color: var(--ink); }
.fp-ed .ed-job-step.is-done b { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.fp-ed .ed-job-step-line { flex: 1 1 16px; height: 2px; border-radius: 2px; background: var(--line); min-width: 12px; transition: background 0.22s ease; }
.fp-ed .ed-job-step-line.is-done { background: var(--ink); }
@media (prefers-reduced-motion: reduce) { .fp-ed .ed-job-step b, .fp-ed .ed-job-step-line { transition: none; } .fp-ed .ed-job-step.is-active b { transform: none; } }
/* misc */
.fp-ed .ed-job-empty { border: 1px dashed var(--line-2); border-radius: var(--r2); padding: 44px 20px; text-align: center; color: var(--muted); }
.fp-ed .ed-job-empty h3 { color: var(--ink); margin: 0 0 6px; }
.fp-ed .ed-job-applied { display: inline-flex; align-items: center; gap: 6px; font-size: 0.84rem; color: #0e9f6e; font-weight: 600; }
@media (max-width: 900px) { .fp-ed .ed-job-detail { grid-template-columns: 1fr; } .fp-ed .ed-job-side { position: static; } }
@media (max-width: 600px) { .fp-ed .ed-job-card { padding: 16px; } .fp-ed .ed-job-card-top { flex-direction: column; gap: 6px; } .fp-ed .ed-job-budget { text-align: left; } }

/* Hero header */
.fp-ed .ed-job-hero { background: linear-gradient(180deg, var(--paper), var(--bg)); }
.fp-ed .ed-job-hero-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.fp-ed .ed-job-hero-title { font-family: var(--serif); font-size: 1.62rem; font-weight: 600; line-height: 1.18; letter-spacing: -0.01em; color: var(--ink); margin: 0; min-width: 0; word-break: break-word; }
.fp-ed .ed-job-hero-budget { text-align: right; flex: none; }
.fp-ed .ed-job-hero-budget b { display: block; font-family: var(--serif); font-size: 1.4rem; font-weight: 600; color: var(--ink); white-space: nowrap; }
.fp-ed .ed-job-hero-budget span { font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.fp-ed .ed-job-hero-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 14px 0 0; }
.fp-ed .ed-job-hero .ed-job-meta { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.fp-ed .ed-job-hero .ed-job-tags { margin: 0; }

.fp-ed .ed-job-section-h { font-family: var(--display); font-size: 1.02rem; font-weight: 600; margin: 0; color: var(--ink); }
.fp-ed .ed-job-prop-head-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 4px; }

/* Loading skeleton */
.fp-ed .ed-job-skel { display: grid; gap: 12px; }

/* Side card refinements */
.fp-ed .ed-job-side-label { display: block; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--muted); margin: 0 0 12px; }
.fp-ed .ed-job-buyer-lg { gap: 12px; }
.fp-ed .ed-job-buyer-lg .ed-av { width: 46px; height: 46px; font-size: 1.05rem; }
.fp-ed .ed-job-buyer-lg .ed-job-buyer-tx strong { font-size: 0.96rem; }
.fp-ed .ed-job-buyer-loc { display: flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 0.84rem; color: var(--ink-2); }
.fp-ed .ed-job-buyer-loc svg { width: 15px; height: 15px; flex: none; color: var(--muted); }
.fp-ed .ed-job-buyer-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 10px; font-size: 0.84rem; color: var(--muted); }
.fp-ed .ed-job-buyer-stats b { color: var(--ink); font-weight: 700; }
.fp-ed .ed-job-buyer-stats .ed-job-dot::before { content: "·"; margin-right: 14px; color: var(--line-2); }
.fp-ed .ed-job-buyer-since { margin-top: 8px; font-size: 0.78rem; color: var(--faint); }
.fp-ed .ed-job-owner-ctl { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.fp-ed .ed-btn-block { width: 100%; }

/* Attachments */
.fp-ed .ed-job-attach-list { display: grid; gap: 8px; }
.fp-ed .ed-job-attach { display: flex; align-items: center; gap: 11px; padding: 11px 14px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); text-decoration: none; color: var(--ink); transition: border-color 0.16s ease, background 0.16s ease, transform 0.16s ease; }
.fp-ed .ed-job-attach:hover { border-color: var(--line-2); background: var(--band); transform: translateY(-1px); }
.fp-ed .ed-job-attach-ic { flex: none; width: 20px; height: 20px; color: var(--muted); }
.fp-ed .ed-job-attach-ic svg { width: 20px; height: 20px; display: block; }
.fp-ed .ed-job-attach-name { flex: 1 1 auto; min-width: 0; font-size: 0.88rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-ed .ed-job-attach-dl { flex: none; width: 18px; height: 18px; color: var(--muted); }
.fp-ed .ed-job-attach-dl svg { width: 18px; height: 18px; display: block; }

/* Portfolio-ref caption text */
.fp-ed .ed-job-pf-cap-tx { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-ed .ed-job-pf-tile[data-pf-href] { cursor: pointer; transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease; }
.fp-ed .ed-job-pf-tile[data-pf-href]:hover { border-color: var(--line-2); box-shadow: 0 10px 24px rgba(0,0,0,0.08); transform: translateY(-2px); }

/* Proposals list */
.fp-ed .ed-job-prop-list { display: grid; gap: 10px; }
.fp-ed .ed-job-prop.is-muted { opacity: 0.72; }
.fp-ed .ed-job-prop-seller { display: flex; align-items: center; gap: 11px; min-width: 0; text-decoration: none; color: inherit; }
.fp-ed .ed-job-prop-seller .ed-av { width: 42px; height: 42px; font-size: 0.96rem; flex: none; }
.fp-ed .ed-job-prop-seller-tx { min-width: 0; line-height: 1.3; }
.fp-ed .ed-job-prop-seller-tx strong { display: block; font-size: 0.92rem; color: var(--ink); font-weight: 600; }
.fp-ed .ed-job-prop-seller:hover strong { text-decoration: underline; }
.fp-ed .ed-job-prop-seller-tx small { display: block; font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-job-prop-seller-title { display: block; font-size: 0.78rem; color: var(--ink-2); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 240px; }
.fp-ed .ed-job-prop-bidwrap { text-align: right; flex: none; }
.fp-ed .ed-job-prop-bidtype { font-family: var(--body); font-size: 0.74rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.fp-ed .ed-job-prop-days { font-family: var(--body); font-size: 0.78rem; font-weight: 500; color: var(--muted); }
.fp-ed .ed-job-prop-honors { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 5px; }
.fp-ed .ed-job-prop-lvl { font-size: 0.72rem; font-weight: 600; color: var(--ink-2); background: var(--band); border: 1px solid var(--line); border-radius: var(--pill); padding: 1px 9px; }
.fp-ed .ed-job-prop-star { display: inline-flex; align-items: center; gap: 3px; font-size: 0.8rem; color: var(--ink); }
.fp-ed .ed-job-prop-star svg { width: 13px; height: 13px; color: #e0a106; }
.fp-ed .ed-job-prop-star b { font-weight: 700; }
.fp-ed .ed-job-prop-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 2px; padding-top: 12px; border-top: 1px solid var(--line); }
.fp-ed .ed-job-prop-status-muted { font-size: 0.78rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.fp-ed .ed-job-prop.is-hired .ed-job-prop-foot { border-top-color: #cdeede; }

.fp-ed .ed-pill.is-paused { border-color: #9a6a00; color: #9a6a00; background: rgba(154,106,0,0.08); }

/* Slim clickable proposal card */
.fp-ed .ed-job-prop.is-click { cursor: pointer; transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; }
.fp-ed .ed-job-prop.is-click:hover { border-color: var(--line-2); box-shadow: 0 12px 26px -18px rgba(16,16,24,0.4); transform: translateY(-1px); }
.fp-ed .ed-job-prop.is-click:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.fp-ed .ed-job-prop-av { width: 44px; height: 44px; font-size: 1rem; flex: none; }
.fp-ed .ed-job-prop-main { min-width: 0; flex: 1 1 auto; overflow: hidden; }
.fp-ed .ed-job-prop-line1 { display: flex; align-items: center; gap: 8px; min-width: 0; flex-wrap: wrap; }
.fp-ed .ed-job-prop-line1 strong { font-size: 0.95rem; font-weight: 700; color: var(--ink); white-space: nowrap; }
.fp-ed .ed-job-prop-uname { font-size: 0.78rem; color: var(--muted); white-space: nowrap; }
.fp-ed .ed-job-prop-line1 .ed-job-prop-honors { display: inline-flex; align-items: center; gap: 6px; margin: 0; justify-content: flex-start; }
.fp-ed .ed-job-prop-line2 { margin-top: 3px; font-size: 0.82rem; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .ed-job-prop-line2 i { color: var(--line-2); font-style: normal; margin: 0 4px; }
.fp-ed .ed-job-prop-meta { flex: none; text-align: right; line-height: 1.25; }
.fp-ed .ed-job-prop-meta .ed-job-prop-bid { font-size: 1.02rem; }
.fp-ed .ed-job-prop-meta .ed-job-prop-days { display: block; margin-top: 1px; }
.fp-ed .ed-job-prop-act { flex: none; }
.fp-ed .ed-job-prop-act .ed-btn { white-space: nowrap; }
.fp-ed .ed-job-prop-act .ed-btn svg { width: 15px; height: 15px; }

/* Owner status banner */
.fp-ed .ed-job-statusbar { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-radius: var(--r2); border: 1px solid; font-size: 0.9rem; line-height: 1.5; }
.fp-ed .ed-job-statusbar svg { width: 20px; height: 20px; flex: none; margin-top: 1px; }
.fp-ed .ed-job-statusbar b { font-weight: 700; }
.fp-ed .ed-job-statusbar.is-paused { background: rgba(154,106,0,0.07); border-color: rgba(154,106,0,0.28); color: #7a5400; }
.fp-ed .ed-job-statusbar.is-closed { background: var(--band); border-color: var(--line); color: var(--ink-2); }
.fp-ed .ed-job-statusbar.is-hired { background: rgba(15,159,110,0.08); border-color: rgba(15,159,110,0.30); color: #0a7048; }
.fp-ed .ed-job-statusbar.is-engaged { background: rgba(37,99,235,0.06); border-color: rgba(37,99,235,0.22); color: #1d4ed8; }

.fp-ed .ed-job-hero { position: relative; overflow: hidden; }
.fp-ed .ed-job-hero-kicker { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand, #1d4ed8); margin-bottom: 7px; }
.fp-ed .ed-job-hero-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--line); }
.fp-ed .ed-job-stat { display: inline-flex; align-items: center; gap: 9px; padding: 8px 13px 8px 10px; border: 1px solid var(--line); border-radius: var(--r2, 14px); background: linear-gradient(180deg, var(--bg), var(--band)); }
.fp-ed .ed-job-stat-ic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: none; border-radius: 9px; background: color-mix(in srgb, var(--brand, #1d4ed8) 9%, var(--bg)); color: var(--brand, #1d4ed8); }
.fp-ed .ed-job-stat-ic svg { width: 16px; height: 16px; }
.fp-ed .ed-job-stat-tx { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.fp-ed .ed-job-stat-l { font-size: 0.64rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); }
.fp-ed .ed-job-stat-v { font-size: 0.9rem; font-weight: 600; color: var(--ink); white-space: nowrap; }
@media (min-width: 920px) {
  .fp-ed .ed-job-side { position: sticky; top: 88px; align-self: start; }
}
@media (max-width: 560px) {
  .fp-ed .ed-job-hero-stats { gap: 8px; }
  .fp-ed .ed-job-stat { padding: 7px 11px 7px 8px; }
  .fp-ed .ed-job-stat-v { white-space: normal; }
}

.fp-myjobs .fp-fw-hero { margin-bottom: 26px; }
.fp-myjobs .fp-fw-title { font-size: clamp(1.9rem, 1.2rem + 2.2vw, 2.6rem); }
/* premium stat cards */
.fp-myjobs .fp-fw-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 22px; }
.fp-myjobs .fp-fw-stat { padding: 22px; border: 1px solid color-mix(in srgb, var(--line) 55%, transparent); border-radius: 22px; background: var(--paper); box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 10px 24px -14px rgba(16,16,24,0.10), 0 30px 60px -30px rgba(16,16,24,0.10); transition: transform 0.32s cubic-bezier(0.22,1,0.36,1), box-shadow 0.32s cubic-bezier(0.22,1,0.36,1); }
.fp-myjobs .fp-fw-stat:hover { transform: translateY(-4px); box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 16px 30px -14px rgba(16,16,24,0.14), 0 40px 70px -30px rgba(16,16,24,0.14); }
.fp-myjobs .fp-fw-stat b { display: block; font-family: var(--serif); font-size: 2rem; font-weight: 600; line-height: 1; color: var(--ink); }
.fp-myjobs .fp-fw-stat span { display: block; margin-top: 7px; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
/* premium pill segmented filter */
.fp-ed.fp-myjobs .ed-seg { display: inline-flex; gap: 2px; padding: 4px; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--ink) 7%, var(--band)); grid-template-columns: none; }
.fp-ed.fp-myjobs .ed-seg button { appearance: none; border: 0; background: transparent; color: var(--ink-2); font: inherit; font-size: 0.86rem; font-weight: 600; padding: 9px 20px; border-radius: 999px; cursor: pointer; white-space: nowrap; transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; }
.fp-ed.fp-myjobs .ed-seg button:hover { color: var(--ink); background: transparent; }
.fp-ed.fp-myjobs .ed-seg button.is-active { background: var(--paper); border-color: transparent; color: var(--ink); box-shadow: 0 1px 1px rgba(16,16,24,0.04), 0 4px 10px -4px rgba(16,16,24,0.18); }
.fp-myjobs .fp-fw-bar { margin-bottom: 6px; }
.fp-myjobs .ed-job-list { gap: 20px; }
.fp-myjobs .ed-job-card { padding: 26px 28px; border: 1px solid color-mix(in srgb, var(--line) 50%, transparent); border-radius: 24px; box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 12px 28px -16px rgba(16,16,24,0.10), 0 34px 64px -32px rgba(16,16,24,0.12); transition: transform 0.34s cubic-bezier(0.22,1,0.36,1), box-shadow 0.34s cubic-bezier(0.22,1,0.36,1), border-color 0.34s ease; }
.fp-myjobs .ed-job-card:hover { transform: translateY(-5px); border-color: color-mix(in srgb, var(--line) 80%, transparent); box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 20px 36px -16px rgba(16,16,24,0.14), 0 48px 80px -32px rgba(16,16,24,0.16); }
.fp-myjobs .ed-job-title { font-size: 1.2rem; letter-spacing: -0.01em; }
/* Apple pill action buttons */
.fp-myjobs .ed-job-card-acts .ed-btn, .fp-myjobs .ed-seg + * .ed-btn { border-radius: 999px; }
.fp-myjobs .ed-job-card-foot { margin-top: 18px; padding-top: 18px; }
/* price — NO box, just the number + label, right-aligned */
.fp-myjobs .ed-job-budget { padding: 0; border: 0; background: none; min-width: 0; }
.fp-myjobs .ed-job-budget b { font-size: 1.5rem; }
/* foot: proposals as a soft modern chip */
.fp-myjobs .ed-job-applied { padding: 6px 13px 6px 10px; border-radius: 999px; background: rgba(14,159,110,0.09); border: 1px solid rgba(14,159,110,0.22); }
.fp-myjobs .ed-job-card[data-status="closed"] .ed-job-applied, .fp-myjobs .ed-job-card[data-status="cancelled"] .ed-job-applied { background: var(--band); border-color: var(--line); color: var(--muted); }
@media (max-width: 720px) { .fp-myjobs .fp-fw-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .fp-ed.fp-myjobs .ed-seg { display: flex; width: 100%; overflow-x: auto; }
  .fp-myjobs .ed-job-card { padding-left: 20px; }
}

.fp-ed.fp-jobdetail .ed-job-hero::before { content: none; }
.fp-ed.fp-jobdetail .ed-job-detail { gap: 26px; }
.fp-ed.fp-jobdetail .ed-job-main { gap: 20px; }
/* content panels — clean white Apple card, resting layered shadow (no hover lift) */
.fp-ed.fp-jobdetail .ed-job-panel { padding: 26px 28px; border: 1px solid color-mix(in srgb, var(--line) 50%, transparent); border-radius: 24px; background: var(--paper); box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 12px 28px -16px rgba(16,16,24,0.10), 0 34px 64px -32px rgba(16,16,24,0.12); }
/* hero → flat paper (drop the gradient) so it reads as one clean card; bigger title */
.fp-ed.fp-jobdetail .ed-job-hero { background: var(--paper); }
.fp-ed.fp-jobdetail .ed-job-hero-title { font-size: 1.72rem; letter-spacing: -0.018em; }
/* sticky side cards — slightly softer shadow */
.fp-ed.fp-jobdetail .ed-job-side { gap: 18px; }
.fp-ed.fp-jobdetail .ed-job-side-card { padding: 22px; border: 1px solid color-mix(in srgb, var(--line) 55%, transparent); border-radius: 22px; background: var(--paper); box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 10px 24px -14px rgba(16,16,24,0.10), 0 30px 60px -30px rgba(16,16,24,0.10); }
/* buttons keep the shared modern-polish 14px radius — matches My Jobs exactly */
/* proposal cards — soft radius + gentle Apple hover lift (they're clickable) */
.fp-ed.fp-jobdetail .ed-job-prop { border: 1px solid color-mix(in srgb, var(--line) 60%, transparent); border-radius: 18px; padding: 15px 17px; background: var(--paper); }
.fp-ed.fp-jobdetail .ed-job-prop.is-click { transition: transform 0.3s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s cubic-bezier(0.22,1,0.36,1), border-color 0.3s ease; }
.fp-ed.fp-jobdetail .ed-job-prop.is-click:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--line) 85%, transparent); box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 14px 28px -16px rgba(16,16,24,0.13); }
.fp-ed.fp-jobdetail .ed-job-prop.is-hired { border-color: rgba(15,159,110,0.32); }
/* owner status banner + manage controls → match radius */
.fp-ed.fp-jobdetail .ed-job-statusbar { border-radius: 18px; }
@media (max-width: 560px) {
  .fp-ed.fp-jobdetail .ed-job-panel { padding: 20px; }
  .fp-ed.fp-jobdetail .ed-job-side-card { padding: 18px; }
}
.fp-ed.fp-jobdetail .ed-job-detail .ed-btn-line,
.fp-ed.fp-myjobs .ed-job-card .ed-btn-line {
  color: var(--brand);
  border-color: color-mix(in srgb, var(--brand) 36%, var(--line-2));
  background: color-mix(in srgb, var(--brand) 6%, var(--paper));
}
.fp-ed.fp-jobdetail .ed-job-detail .ed-btn-line:hover,
.fp-ed.fp-myjobs .ed-job-card .ed-btn-line:hover {
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
}

/* Owner manage controls */
.fp-ed .ed-job-owner-ctl-lbl { display: block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin-bottom: 9px; }
.fp-ed .ed-job-owner-ctl-btns { display: flex; gap: 9px; }
.fp-ed .ed-job-owner-ctl-btns .ed-btn { flex: 1 1 0; min-height: 40px; }
.fp-ed .ed-job-owner-ctl-btns .ed-btn svg { width: 15px; height: 15px; }

/* my-jobs card action row */
.fp-ed .ed-job-card-acts { display: inline-flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.fp-ed .ed-job-card-acts .ed-btn { min-height: 36px; }

/* Big proposal popup */
.ed-jpm-back { position: fixed; inset: 0; z-index: 150; display: flex; align-items: flex-start; justify-content: center; padding: 6vh 16px 16px; overflow-y: auto; background: rgba(11,11,12,0.55); opacity: 0; transition: opacity 0.2s ease; }
.ed-jpm-back.is-open { opacity: 1; }
.ed-jpm-dialog { position: relative; width: 100%; max-width: 680px; background: var(--bg, #fff); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 40px 100px -24px rgba(0,0,0,0.45); padding: 26px; font-family: var(--body); transform: translateY(14px) scale(0.985); transition: transform 0.22s cubic-bezier(0.2,0.8,0.2,1); }
.ed-jpm-back.is-open .ed-jpm-dialog { transform: none; }
.ed-jpm-x { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 999px; border: 1px solid var(--line); background: var(--band); color: var(--ink-2); font-size: 1.32rem; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.ed-jpm-x:hover { background: var(--line); }
.ed-jpm-head { display: flex; align-items: center; gap: 15px; padding-right: 40px; }
.ed-jpm-av { width: 60px; height: 60px; font-size: 1.4rem; flex: none; }
.ed-jpm-id { min-width: 0; }
.ed-jpm-name { font-family: var(--display); font-weight: 800; font-size: 1.25rem; margin: 0; color: var(--ink); }
.ed-jpm-uname { font-size: 0.82rem; color: var(--muted); margin-top: 1px; }
.ed-jpm-title { font-size: 0.88rem; color: var(--ink-2); margin-top: 3px; }
.ed-jpm-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.ed-jpm-meta .ed-job-prop-honors { display: inline-flex; gap: 6px; margin: 0; }
.ed-jpm-meta-it { display: inline-flex; align-items: center; gap: 4px; font-size: 0.8rem; color: var(--ink-2); }
.ed-jpm-meta-it svg { width: 14px; height: 14px; color: var(--muted); }
.ed-jpm-bid { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.ed-jpm-bid-it { flex: 1 1 120px; border: 1px solid var(--line); border-radius: var(--r); background: var(--band); padding: 11px 14px; }
.ed-jpm-bid-it dt { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); margin: 0; }
.ed-jpm-bid-it dd { margin: 4px 0 0; font-family: var(--serif); font-size: 1.18rem; font-weight: 600; color: var(--ink); }
.ed-jpm-bid-it dd span { font-family: var(--body); font-size: 0.74rem; font-weight: 600; color: var(--muted); }
.ed-jpm-sec { margin-top: 20px; }
.ed-jpm-sec h4 { font-family: var(--display); font-size: 0.78rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin: 0 0 9px; }
.ed-jpm-sec p { margin: 0; font-size: 0.92rem; line-height: 1.65; color: var(--ink-2); white-space: pre-wrap; word-break: break-word; }
.ed-jpm-foot { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.ed-jpm-foot .ed-btn { min-height: 46px; }
.ed-jpm-foot .ed-jpm-foot-spacer { margin-right: auto; }

@media (max-width: 560px) {
  .fp-ed .ed-job-prop.is-click { flex-wrap: wrap; }
  .fp-ed .ed-job-prop-meta { text-align: left; }
  .fp-ed .ed-job-prop-act { width: 100%; }
  .fp-ed .ed-job-prop-act .ed-btn { width: 100%; }
}
@media (max-width: 480px) {
  .ed-jpm-dialog { padding: 20px; border-radius: 14px; }
  .ed-jpm-head { gap: 12px; }
  .ed-jpm-av { width: 52px; height: 52px; font-size: 1.2rem; }
  .ed-jpm-foot { flex-direction: column-reverse; }
  .ed-jpm-foot .ed-btn { width: 100%; }
  .ed-jpm-foot .ed-jpm-foot-spacer { margin-right: 0; }
}

.fp-ed .ed-job-applied-panel { display: grid; gap: 12px; }
.fp-ed .ed-job-applied-panel.is-hired { border-color: #0e9f6e; background: #f3fbf7; }
.fp-ed .ed-job-applied-lg { font-size: 1.08rem; }
.fp-ed .ed-job-applied-lg svg { width: 19px; height: 19px; }
.fp-ed .ed-job-applied-sub { margin: -4px 0 0; color: var(--ink-2); font-size: 0.9rem; line-height: 1.6; }
.fp-ed .ed-job-applied-bid { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 12px 16px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); }
.fp-ed .ed-job-applied-bid span { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.fp-ed .ed-job-applied-bid b { font-family: var(--serif); font-size: 1.08rem; color: var(--ink); }
.fp-ed .ed-job-applied-foot { display: flex; gap: 10px; flex-wrap: wrap; }
.fp-ed .ed-job-applied-panel .ed-btn { justify-self: start; }
.fp-ed .ed-job-closed-note { display: inline-flex; align-items: center; gap: 8px; }
.fp-ed .ed-job-closed-note { font-size: 0.92rem; font-weight: 500; color: var(--ink-2); }
.fp-ed .ed-job-closed-note svg { width: 18px; height: 18px; flex: none; color: var(--muted); }
.fp-ed .ed-job-progate .ed-job-applied-lg { color: var(--ink); }
.fp-ed .ed-job-progate .ed-job-applied-lg svg { color: var(--muted); }
.fp-ed .ed-job-progate .ed-btn { justify-self: start; }

/* Apply form */
.fp-ed .ed-job-apply { display: grid; gap: 16px; }
.fp-ed .ed-job-apply-intro { margin: -6px 0 0; color: var(--muted); font-size: 0.9rem; line-height: 1.55; }
.fp-ed .ed-job-field { display: grid; gap: 7px; min-width: 0; }
.fp-ed .ed-job-field > label { font-size: 0.84rem; font-weight: 600; color: var(--ink); }
.fp-ed .ed-job-field textarea { width: 100%; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); padding: 12px 14px; font: inherit; font-size: 0.92rem; line-height: 1.6; color: var(--ink); resize: vertical; min-height: 132px; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.fp-ed .ed-job-field textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11,11,12,0.06); }
.fp-ed .ed-job-field textarea::placeholder { color: var(--faint); }
.fp-ed .ed-job-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fp-ed .ed-job-field-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.fp-ed .ed-job-hint { font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-job-hint.is-ok { color: #0e9f6e; }
.fp-ed .ed-job-hint.is-warn { color: #b5791a; }
.fp-ed .ed-job-hint a { color: var(--ink); font-weight: 600; }
.fp-ed .ed-job-count { font-size: 0.74rem; color: var(--faint); font-variant-numeric: tabular-nums; flex: none; }
.fp-ed .ed-job-money-input, .fp-ed .ed-job-days-input { display: flex; align-items: center; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); padding: 0 14px; height: 48px; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.fp-ed .ed-job-money-input:focus-within, .fp-ed .ed-job-days-input:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11,11,12,0.06); }
.fp-ed .ed-job-money-input > span { color: var(--muted); font-weight: 600; margin-right: 4px; }
.fp-ed .ed-job-money-input input, .fp-ed .ed-job-days-input input { border: none; outline: none; background: none; width: 100%; min-width: 0; font: inherit; font-size: 0.96rem; color: var(--ink); }
.fp-ed .ed-job-money-hint, .fp-ed .ed-job-days-input > span { color: var(--muted); font-size: 0.82rem; font-style: normal; flex: none; margin-left: 6px; white-space: nowrap; }
.fp-ed .ed-job-apply-foot { margin-top: 4px; }
.fp-ed .ed-job-apply-foot .ed-btn { min-width: 200px; }
.fp-ed .ed-job-pfpick-hint { margin: 0 0 4px; }
.fp-ed .ed-job-pfpick-loading { grid-column: 1 / -1; padding: 22px 4px; color: var(--muted); font-size: 0.86rem; }
.fp-ed .ed-job-pfpick.is-empty { display: block; }
.fp-ed .ed-job-pfpick-empty { margin: 0; padding: 16px; border: 1px dashed var(--line-2); border-radius: var(--r2); color: var(--muted); font-size: 0.86rem; line-height: 1.55; }
.fp-ed .ed-job-pfpick-empty a { color: var(--ink); font-weight: 600; }
.fp-ed .ed-job-pfpick-vbadge { position: absolute; top: 8px; left: 8px; width: 26px; height: 26px; border-radius: 50%; background: rgba(11,11,12,0.7); display: flex; align-items: center; justify-content: center; pointer-events: none; }
.fp-ed .ed-job-pfpick-vbadge svg { width: 13px; height: 13px; color: #fff; }
.fp-ed .ed-job-pfpick-cap { display: flex; align-items: center; gap: 6px; padding: 7px 9px; font-size: 0.74rem; color: var(--ink-2); }
.fp-ed .ed-job-pfpick-cap span:first-child { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-ed .ed-job-pfpick-cap .is-vid { flex: none; font-size: 0.62rem; font-weight: 700; color: #fff; background: #0b0b0c; border-radius: var(--pill); padding: 1px 7px; }

.fp-ed .ed-job-detail .ed-btn.is-loading { position: relative; color: transparent !important; pointer-events: none; }
.fp-ed .ed-job-detail .ed-btn.is-loading::after { content: ""; position: absolute; width: 16px; height: 16px; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; animation: ed-job-spin 0.7s linear infinite; color: #fff; }
.fp-ed .ed-job-detail .ed-btn-line.is-loading::after { color: var(--ink); }
@keyframes ed-job-spin { to { transform: rotate(360deg); } }

@media (max-width: 560px) {
  .fp-ed .ed-job-hero-title { font-size: 1.34rem; }
  .fp-ed .ed-job-hero-top { flex-direction: column; gap: 8px; }
  .fp-ed .ed-job-hero-budget { text-align: left; }
  .fp-ed .ed-job-field-row { grid-template-columns: 1fr; }
  .fp-ed .ed-job-prop-head { flex-direction: column; align-items: flex-start; }
  .fp-ed .ed-job-prop-bidwrap { text-align: left; }
  .fp-ed .ed-job-prop-honors { justify-content: flex-start; }
  .fp-ed .ed-job-apply-foot .ed-btn, .fp-ed .ed-job-applied-panel .ed-btn { width: 100%; }
}

.fp-ed .fp-fw-hero { position: relative; padding: 6px 0 2px; margin-bottom: 22px; overflow-x: clip; }
.fp-ed .fp-fw-hero::before { content: ""; position: absolute; inset: -40px -10% 0 -10%; z-index: -1; pointer-events: none;
  background: radial-gradient(680px 320px at 12% -10%, rgba(14,159,110,0.10), transparent 70%), radial-gradient(560px 300px at 92% 0%, rgba(36,86,184,0.08), transparent 72%); }
.fp-ed .fp-fw-kicker { display: inline-flex; align-items: center; gap: 7px; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.fp-ed .fp-fw-kicker::before { content: ""; width: 22px; height: 1.5px; background: var(--ink); display: inline-block; }
.fp-ed .fp-fw-title { font-family: var(--serif); font-weight: 600; font-size: clamp(2rem, 4.4vw, 3rem); line-height: 1.05; letter-spacing: -0.015em; color: var(--ink); margin: 12px 0 0; }
.fp-ed .fp-fw-sub { color: var(--muted); font-size: 1.02rem; line-height: 1.5; margin: 10px 0 0; max-width: 560px; }
.fp-ed .fp-fw-stats { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.fp-ed .fp-fw-stat { display: flex; flex-direction: column; gap: 3px; padding: 13px 20px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); min-width: 116px; box-shadow: 0 1px 0 rgba(0,0,0,0.02); }
.fp-ed .fp-fw-stat b { font-family: var(--serif); font-size: 1.42rem; font-weight: 600; color: var(--ink); line-height: 1; }
.fp-ed .fp-fw-stat span { font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
/* Sticky premium toolbar */
.fp-ed .fp-fw-bar { position: sticky; top: 60px; z-index: 40; background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: saturate(1.2) blur(8px); margin: 0 0 4px; padding: 10px 0; border-bottom: 1px solid transparent; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.fp-ed .fp-fw-bar.is-stuck { border-bottom-color: var(--line); box-shadow: 0 8px 22px -16px rgba(0,0,0,0.25); }
.fp-ed .fp-fw-bar .ed-job-toolbar { margin: 0; }
.fp-ed .ed-job-search:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11,11,12,0.06); }
.fp-ed .ed-job-toolbar select:hover { border-color: var(--line-2); }
.fp-ed .ed-job-toolbar select:focus-visible { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11,11,12,0.06); }
.fp-ed .fp-fw-summary { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 12px 0 16px; }
.fp-ed .fp-fw-count { font-size: 0.9rem; color: var(--ink); font-weight: 600; }
.fp-ed .fp-fw-count span { color: var(--muted); font-weight: 400; }
.fp-ed .fp-fw-active { display: inline-flex; gap: 7px; flex-wrap: wrap; align-items: center; }
.fp-ed .fp-fw-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 0.78rem; color: var(--ink-2); background: var(--band); border: 1px solid var(--line); border-radius: var(--pill); padding: 3px 4px 3px 11px; }
.fp-ed .fp-fw-chip button { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border: none; background: none; cursor: pointer; color: var(--muted); border-radius: 50%; padding: 0; }
.fp-ed .fp-fw-chip button:hover { background: rgba(0,0,0,0.08); color: var(--ink); }
.fp-ed .fp-fw-chip button svg { width: 11px; height: 11px; }
.fp-ed .fp-fw-clear { font-size: 0.8rem; color: var(--muted); background: none; border: none; cursor: pointer; padding: 2px 4px; text-decoration: underline; text-underline-offset: 2px; }
.fp-ed .fp-fw-clear:hover { color: var(--ink); }
/* Clickable premium job card */
.fp-ed .ed-job-card.is-click { cursor: pointer; }
.fp-ed .ed-job-card.is-click::before { content: ""; position: absolute; left: 0; top: 16px; bottom: 16px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ink); opacity: 0; transform: scaleY(0.35); transition: opacity 0.2s ease, transform 0.2s ease; }
.fp-ed .ed-job-card.is-click:hover { border-color: var(--ink); box-shadow: 0 18px 44px -22px rgba(0,0,0,0.28); transform: translateY(-3px); }
.fp-ed .ed-job-card.is-click:hover::before { opacity: 1; transform: scaleY(1); }
.fp-ed .ed-job-card.is-click:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.fp-ed .ed-job-card .ed-job-title:hover { text-decoration: none; }
.fp-ed .ed-job-card.is-click:hover .ed-job-title { text-decoration: underline; text-underline-offset: 2px; }
.fp-ed .ed-job-card a, .fp-ed .ed-job-card button { position: relative; z-index: 2; }
.fp-ed .ed-job-budget b { font-size: 1.24rem; }
.fp-ed .ed-job-budget.is-hourly span { color: #2456b8; }
/* Buyer avatar online dot */
.fp-ed .ed-job-buyer .ed-av { position: relative; overflow: visible; }
.fp-ed .ed-job-buyer .ed-av.is-online::after { content: ""; position: absolute; right: -1px; bottom: -1px; width: 9px; height: 9px; border-radius: 50%; background: #0e9f6e; border: 2px solid var(--paper); }
/* "Applied" pill + quick-apply button */
.fp-ed .ed-job-applied { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; font-weight: 600; color: #0e9f6e; background: #f1faf5; border: 1px solid #cdeede; border-radius: var(--pill); padding: 5px 13px; }
.fp-ed .ed-job-card-cta { display: inline-flex; gap: 8px; align-items: center; }
/* Skeleton cards */
.fp-ed .ed-job-skel { border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); padding: 20px 22px; }
.fp-ed .ed-job-skel-top { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.fp-ed .ed-job-skel .ed-skel-line { margin: 0 0 9px; }
.fp-ed .ed-job-skel-foot { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.fp-ed .ed-skel-dot { width: 30px; height: 30px; border-radius: 50%; flex: none; background: linear-gradient(90deg, var(--band) 25%, #efece6 50%, var(--band) 75%); background-size: 200% 100%; animation: ed-skel 1.5s ease-in-out infinite; }
/* .ed-job-skel .ed-skel-line intentionally inherits the canonical .ed-skel-line shimmer — no per-page override. */
/* Premium empty / error state */
.fp-ed .ed-job-empty { display: grid; place-items: center; gap: 4px; }
.fp-ed .ed-job-empty-ic { width: 52px; height: 52px; border-radius: 50%; background: var(--band); display: grid; place-items: center; margin-bottom: 8px; }
.fp-ed .ed-job-empty-ic svg { width: 24px; height: 24px; color: var(--muted); }

.fp-ed .fp-fw-board .fp-fw-hero { padding: 16px 0 8px; margin-bottom: 26px; }
.fp-ed .fp-fw-board .fp-fw-hero::before { inset: -60px -18% 0 -18%;
  background: radial-gradient(740px 380px at 6% -14%, rgba(14,159,110,0.16), transparent 66%), radial-gradient(660px 360px at 98% -8%, rgba(36,86,184,0.13), transparent 68%), radial-gradient(1000px 540px at 50% -44%, rgba(11,11,12,0.045), transparent 70%); }
.fp-ed .fp-fw-board .fp-fw-hero::after { content: ""; position: absolute; inset: -60px -18% auto -18%; height: 360px; z-index: -1; pointer-events: none;
  background-image: radial-gradient(rgba(11,11,12,0.05) 1px, transparent 1.4px); background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(180deg, #000, transparent 74%); mask-image: linear-gradient(180deg, #000, transparent 74%); opacity: 0.55; }
/* live pill */
.fp-ed .fp-fw-board .fp-fw-livepill { display: inline-flex; align-items: center; gap: 8px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: var(--pill); padding: 6px 14px 6px 11px; box-shadow: 0 1px 0 rgba(0,0,0,0.02); }
.fp-ed .fp-fw-board .fp-fw-livepill i { width: 7px; height: 7px; border-radius: 50%; background: #0e9f6e; box-shadow: 0 0 0 0 rgba(14,159,110,0.5); animation: fpFwPulse 2.2s ease-out infinite; }
@keyframes fpFwPulse { 0% { box-shadow: 0 0 0 0 rgba(14,159,110,0.45); } 70% { box-shadow: 0 0 0 7px rgba(14,159,110,0); } 100% { box-shadow: 0 0 0 0 rgba(14,159,110,0); } }
/* title + brush-underline em */
.fp-ed .fp-fw-board .fp-fw-title { font-size: clamp(2.3rem, 5vw, 3.5rem); margin-top: 16px; }
.fp-ed .fp-fw-board .fp-fw-title-em { position: relative; font-style: italic; white-space: nowrap; padding: 0 2px; }
.fp-ed .fp-fw-board .fp-fw-title-em::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0.07em; height: 0.15em; border-radius: 3px; background: linear-gradient(90deg, #0e9f6e, #2456b8); opacity: 0.9; }
.fp-ed .fp-fw-board .fp-fw-sub { font-size: 1.06rem; max-width: 600px; }
/* premium stat cards (icon + number) */
.fp-ed .fp-fw-board .fp-fw-stats { margin-top: 26px; gap: 14px; }
.fp-ed .fp-fw-board .fp-fw-stat { flex-direction: row; align-items: center; gap: 13px; padding: 14px 18px; border-radius: 14px; min-width: 150px; box-shadow: 0 1px 2px rgba(0,0,0,0.03), 0 12px 30px -24px rgba(0,0,0,0.3); transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease; }
.fp-ed .fp-fw-board .fp-fw-stat:hover { transform: translateY(-3px); border-color: var(--line-2); box-shadow: 0 1px 2px rgba(0,0,0,0.03), 0 24px 42px -26px rgba(0,0,0,0.4); }
.fp-ed .fp-fw-board .fp-fw-stat-ic { width: 38px; height: 38px; border-radius: 11px; flex: none; display: grid; place-items: center; background: linear-gradient(155deg, var(--band), var(--paper)); border: 1px solid var(--line); color: var(--ink); }
.fp-ed .fp-fw-board .fp-fw-stat-ic svg { width: 18px; height: 18px; }
.fp-ed .fp-fw-board .fp-fw-stat > div { display: grid; gap: 2px; }
.fp-ed .fp-fw-board .fp-fw-stat b { font-size: 1.55rem; }
/* one-tap category quick chips */
.fp-ed .fp-fw-board .fp-fw-quick { display: flex; gap: 8px; flex-wrap: wrap; margin: 2px 0 16px; }
.fp-ed .fp-fw-board .fp-fw-qchip { font-size: 0.84rem; font-weight: 600; color: var(--ink-2); background: var(--paper); border: 1px solid var(--line); border-radius: var(--pill); padding: 7px 15px; cursor: pointer; white-space: nowrap; transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, transform 0.15s ease; }
.fp-ed .fp-fw-board .fp-fw-qchip:hover { border-color: var(--ink); color: var(--ink); transform: translateY(-1px); }
.fp-ed .fp-fw-board .fp-fw-qchip.is-active { background: var(--ink); color: var(--bg); border-color: var(--ink); }
/* filter bar → floating card */
.fp-ed .fp-fw-board .fp-fw-bar .ed-job-toolbar { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 9px; box-shadow: 0 1px 2px rgba(0,0,0,0.03); transition: box-shadow 0.2s ease; }
.fp-ed .fp-fw-board .fp-fw-bar.is-stuck .ed-job-toolbar { box-shadow: 0 16px 32px -22px rgba(0,0,0,0.45); }
.fp-ed .fp-fw-board .ed-job-card { padding: 22px 24px; border-radius: 16px; overflow: hidden; background: linear-gradient(180deg, color-mix(in srgb, var(--band) 34%, var(--paper)), var(--paper)); box-shadow: 0 1px 2px rgba(0,0,0,0.025), 0 12px 28px -24px rgba(0,0,0,0.22); }
.fp-ed .fp-fw-board .ed-job-card::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0; background: radial-gradient(440px 200px at 0% 0%, rgba(14,159,110,0.07), transparent 70%); transition: opacity 0.2s ease; }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover::after { opacity: 1; }
.fp-ed .fp-fw-board .ed-job-card.is-click::before { display: none; }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover { box-shadow: 0 20px 46px -22px rgba(0,0,0,0.3); }
.fp-ed .fp-fw-board .ed-job-card > * { position: relative; z-index: 1; }
.fp-ed .fp-fw-board .ed-job-card a, .fp-ed .fp-fw-board .ed-job-card button { z-index: 2; }
/* job title — Fraunces editorial (matches the hero), replaces Space Grotesk */
.fp-ed .fp-fw-board .ed-job-title { font-family: var(--serif); font-weight: 600; font-size: 1.3rem; line-height: 1.28; letter-spacing: -0.01em; }
/* category eyebrow + NEW badge */
.fp-ed .fp-fw-board .fp-fw-cardhead { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 9px; }
.fp-ed .fp-fw-board .fp-fw-cat { display: inline-flex; align-items: center; gap: 6px; font-size: 0.71rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); }
.fp-ed .fp-fw-board .fp-fw-cat::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: linear-gradient(135deg, #0e9f6e, #2456b8); }
.fp-ed .fp-fw-board .ed-job-new { display: inline-flex; align-items: center; gap: 4px; font-size: 0.64rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #0e7a55; background: #eafaf2; border: 1px solid #c4ecd8; border-radius: var(--pill); padding: 2px 9px; }
/* budget block → soft chip */
.fp-ed .fp-fw-board .ed-job-budget { background: var(--band); border: 1px solid var(--line); border-radius: 12px; padding: 9px 15px; text-align: center; min-width: 96px; }
.fp-ed .fp-fw-board .ed-job-budget b { font-size: 1.32rem; display: block; }
.fp-ed .fp-fw-board .ed-job-budget span { margin-top: 2px; }
.fp-ed .fp-fw-board .ed-job-budget.is-hourly { background: #eff4fc; border-color: #d8e2f6; }
/* icon meta row */
.fp-ed .fp-fw-board .fp-fw-jmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 18px; font-size: 0.82rem; color: var(--muted); }
.fp-ed .fp-fw-board .fp-fw-jmeta > span { display: inline-flex; align-items: center; gap: 6px; }
.fp-ed .fp-fw-board .fp-fw-jmeta svg { width: 14px; height: 14px; color: var(--faint); flex: none; }
.fp-ed .fp-fw-board .fp-fw-jmeta b { color: var(--ink); font-weight: 700; }
/* foot: buyer + apply button */
.fp-ed .fp-fw-board .ed-job-card-foot { margin-top: 16px; padding-top: 16px; }
.fp-ed .fp-fw-board .fp-fw-applybtn { display: inline-flex; align-items: center; gap: 2px; }
.fp-ed .fp-fw-board .fp-fw-applybtn svg { width: 15px; height: 15px; margin-left: 4px; transition: transform 0.18s ease; }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover .fp-fw-applybtn svg { transform: translateX(3px); }
.fp-ed .fp-fw-board .ed-job-card { padding: 24px 26px; border-radius: 18px; box-shadow: 0 1px 2px rgba(0,0,0,0.02), 0 16px 34px -28px rgba(0,0,0,0.26); transition: border-color 0.2s ease, box-shadow 0.28s ease, transform 0.28s cubic-bezier(0.2,0.8,0.2,1); }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--ink) 34%, var(--line)); box-shadow: 0 1px 2px rgba(0,0,0,0.02), 0 30px 54px -30px rgba(0,0,0,0.34); }
.fp-ed .fp-fw-board .fp-fw-cardhead { margin-bottom: 11px; }
.fp-ed .fp-fw-board .ed-job-card-top { gap: 18px; align-items: flex-start; }
.fp-ed .fp-fw-board .ed-job-title { font-size: 1.34rem; line-height: 1.26; }
/* premium price tag — Fraunces numerals, soft gradient, lifts on hover */
.fp-ed .fp-fw-board .ed-job-budget { align-self: flex-start; min-width: 112px; padding: 11px 16px; border-radius: 14px; background: linear-gradient(180deg, var(--bg), var(--band)); box-shadow: 0 1px 2px rgba(0,0,0,0.03); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover .ed-job-budget { transform: translateY(-1px); box-shadow: 0 8px 18px -10px rgba(0,0,0,0.28); }
.fp-ed .fp-fw-board .ed-job-budget b { font-size: 1.46rem; }
.fp-ed .fp-fw-board .ed-job-budget span { font-size: 0.64rem; letter-spacing: 0.08em; margin-top: 6px; }
.fp-ed .fp-fw-board .ed-job-budget.is-hourly { background: linear-gradient(180deg, #f7faff, #e9f1fc); border-color: #d6e1f6; }
/* description + crisp skill chips */
.fp-ed .fp-fw-board .ed-job-desc { font-size: 0.93rem; line-height: 1.6; margin: 11px 0 14px; }
.fp-ed .fp-fw-board .ed-job-tag { background: var(--bg); border-color: var(--line); font-weight: 500; padding: 4px 12px; transition: border-color 0.15s ease; }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover .ed-job-tag { border-color: var(--line-2); }
/* meta + footer — bigger buyer avatar + pill apply button */
.fp-ed .fp-fw-board .fp-fw-jmeta { margin-top: 16px; }
.fp-ed .fp-fw-board .ed-job-card-foot { margin-top: 16px; padding-top: 16px; }
.fp-ed .fp-fw-board .ed-job-buyer .ed-av { width: 36px; height: 36px; font-size: 0.86rem; box-shadow: 0 3px 8px -3px rgba(0,0,0,0.3); }
.fp-ed .fp-fw-board .ed-job-buyer-tx strong { font-size: 0.9rem; }
.fp-ed .fp-fw-board .fp-fw-applybtn { padding: 9px 18px; border-radius: 999px; font-weight: 600; box-shadow: 0 8px 18px -10px rgba(11,11,12,0.55); }
.fp-ed .fp-fw-board .ed-job-card { border-radius: 20px; border: 1px solid color-mix(in srgb, var(--line) 78%, transparent); box-shadow: 0 1px 2px rgba(16,18,22,0.03), 0 18px 40px -30px rgba(16,18,22,0.3); }
.fp-ed .fp-fw-board .ed-job-card.is-click::before { display: block; left: 0; right: 0; top: 0; bottom: auto; width: auto; height: 3px; border-radius: 0; background: linear-gradient(90deg, #0e9f6e, #2456b8); opacity: 0; transform: scaleX(0.35); transform-origin: left center; transition: opacity 0.25s ease, transform 0.4s cubic-bezier(0.2,0.8,0.2,1); z-index: 3; pointer-events: none; }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover::before { opacity: 1; transform: scaleX(1); }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover { border-color: color-mix(in srgb, var(--ink) 20%, var(--line)); box-shadow: 0 1px 2px rgba(16,18,22,0.03), 0 34px 60px -34px rgba(16,18,22,0.36); }
/* premium price tag — soft inset highlight, larger numerals */
.fp-ed .fp-fw-board .ed-job-budget { min-width: 120px; padding: 12px 18px; border-radius: 16px; background: linear-gradient(180deg, #ffffff, var(--band)); border: 1px solid color-mix(in srgb, var(--line) 82%, transparent); box-shadow: 0 1px 2px rgba(16,18,22,0.03), inset 0 1px 0 rgba(255,255,255,0.7); }
.fp-ed .fp-fw-board .ed-job-budget b { font-size: 1.5rem; letter-spacing: -0.015em; }
.fp-ed .fp-fw-board .ed-job-budget span { font-size: 0.6rem; letter-spacing: 0.13em; color: var(--faint); margin-top: 6px; }
.fp-ed .fp-fw-board .ed-job-budget.is-hourly { background: linear-gradient(180deg, #f8fbff, #e9f1fc); }
/* skill tags → crisp rounded chips */
.fp-ed .fp-fw-board .ed-job-tag { border-radius: 8px; background: var(--bg); border: 1px solid color-mix(in srgb, var(--line) 72%, transparent); color: var(--ink-2); font-size: 0.75rem; font-weight: 500; padding: 4px 11px; }
/* meta row → soft stat chips */
.fp-ed .fp-fw-board .fp-fw-jmeta { gap: 8px 9px; margin-top: 15px; }
.fp-ed .fp-fw-board .fp-fw-jmeta > span { background: var(--bg); border: 1px solid color-mix(in srgb, var(--line) 66%, transparent); border-radius: 999px; padding: 5px 12px 5px 10px; font-size: 0.78rem; gap: 6px; }
.fp-ed .fp-fw-board .fp-fw-jmeta svg { width: 13px; height: 13px; color: var(--muted); }
/* buyer row refine — ringed avatar */
.fp-ed .fp-fw-board .ed-job-buyer .ed-av { box-shadow: 0 0 0 2px var(--paper), 0 3px 9px -3px rgba(0,0,0,0.32); }
.fp-ed .fp-fw-board .ed-job-buyer-tx small { color: var(--faint); }
.fp-ed .fp-fw-board .ed-job-budget,
.fp-ed .fp-fw-board .ed-job-budget.is-hourly { background: none; border: 0; box-shadow: none; padding: 0; min-width: 0; border-radius: 0; }
.fp-ed .fp-fw-board .ed-job-budget b { color: var(--ink); }
.fp-ed .fp-fw-board .ed-job-budget span { color: var(--muted); margin-top: 3px; }
.fp-ed .fp-fw-board .ed-job-card.is-click:hover .ed-job-budget { transform: none; box-shadow: none; }
.fp-ed .fp-fw-board .ed-job-buyer-tx { display: flex; flex-wrap: wrap; align-items: center; }
.fp-ed .fp-fw-board .ed-job-buyer-tx small { flex-basis: 100%; }
.fp-ed .fp-fw-board .ed-job-buyer-tx .fp-kyc-tick { margin: 0 0 0 4px !important; top: 1.5px; }
.fp-ed .fp-fw-board .ed-job-card { padding: 18px 20px; }
.fp-ed .fp-fw-board .ed-job-card-top { gap: 14px; }
.fp-ed .fp-fw-board .ed-job-desc { -webkit-line-clamp: 3; margin: 9px 0 8px; }
.fp-ed .fp-fw-board .ed-job-tags { margin: 0 0 10px; }
.fp-ed .fp-fw-board .fp-fw-jmeta { margin-top: 11px; }
.fp-ed .fp-fw-board .ed-job-card-foot { margin-top: 13px; padding-top: 13px; }
.fp-ed .fp-fw-board .ed-job-more { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 11px; font-size: 0.82rem; font-weight: 600; color: var(--ink); text-decoration: none; }
.fp-ed .fp-fw-board .ed-job-more svg { width: 13px; height: 13px; }
.fp-ed .fp-fw-board .ed-job-more:hover { text-decoration: underline; text-underline-offset: 2px; }
.fp-ed .fp-fw-board .ed-job-more[hidden] { display: none; }
@media (max-width: 600px) {
  .fp-ed .fp-fw-board .ed-job-card { padding: 18px; }
  .fp-ed .fp-fw-board .ed-job-budget { text-align: left; padding: 0; min-width: 0; }
  .fp-ed .fp-fw-board .fp-fw-stat b { font-size: 1.36rem; }
}

.fp-ed.ed-pm-lock, body.ed-pm-lock { overflow: hidden; }
.ed-pm-backdrop { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: flex-start; justify-content: center; padding: 5vh 16px 16px; overflow-y: auto; background: rgba(11,11,12,0.55); backdrop-filter: blur(4px); opacity: 0; transition: opacity 0.22s ease; }
.ed-pm-backdrop.is-open { opacity: 1; }
.ed-pm-dialog { width: 100%; max-width: 640px; background: var(--bg, #fff); border-radius: 18px; box-shadow: 0 40px 100px -24px rgba(0,0,0,0.45); overflow: hidden; transform: translateY(14px) scale(0.985); transition: transform 0.22s cubic-bezier(0.2,0.8,0.2,1); font-family: var(--body); }
.ed-pm-backdrop.is-open .ed-pm-dialog { transform: none; }
.ed-pm-head { position: relative; padding: 22px 24px 18px; border-bottom: 1px solid var(--line, #e7e7e3); background: linear-gradient(180deg, rgba(14,159,110,0.05), transparent); }
.ed-pm-eyebrow { display: inline-flex; align-items: center; gap: 7px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #0e9f6e; }
.ed-pm-eyebrow svg { width: 14px; height: 14px; }
.ed-pm-title { font-family: var(--display); font-size: 1.2rem; font-weight: 600; color: var(--ink, #0b0b0c); margin: 8px 0 0; line-height: 1.3; }
.ed-pm-jobline { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-top: 7px; font-size: 0.86rem; color: var(--muted, #6d6d72); }
.ed-pm-jobline b { font-family: var(--serif); color: var(--ink, #0b0b0c); font-weight: 600; }
.fp-ed .ed-pm-opt, .ed-pm-opt { color: var(--muted, #6d6d72); font-weight: 400; font-size: 0.84rem; }
.ed-pm-body .ed-job-pfpick { margin-top: 4px; }
.fp-ed .ed-job-money-input em, .ed-pm-body .ed-job-money-input em, .ed-job-detail .ed-job-money-input em { font-style: normal; color: var(--muted, #6d6d72); font-size: 0.84rem; padding: 0 12px 0 2px; flex: none; align-self: center; }
/* job-detail seller apply CTA (opens the proposal popup) */
.fp-ed .ed-job-apply-cta { text-align: center; padding: 32px 26px; background: linear-gradient(180deg, rgba(14,159,110,0.06), var(--bg)); }
.fp-ed .ed-job-apply-cta-ic { width: 54px; height: 54px; border-radius: 50%; background: #f1faf5; border: 1px solid #cdeede; display: grid; place-items: center; margin: 0 auto 14px; }
.fp-ed .ed-job-apply-cta-ic svg { width: 25px; height: 25px; color: #0e9f6e; }
.fp-ed .ed-job-apply-cta h3 { margin: 0 0 8px; font-size: 1.18rem; }
.fp-ed .ed-job-apply-cta p { color: var(--muted); font-size: 0.93rem; line-height: 1.55; max-width: 440px; margin: 0 auto 20px; }
.fp-ed .ed-job-apply-cta-note { font-size: 0.78rem; color: var(--muted); margin: 16px 0 0; }
.fp-ed .ed-btn-lg { padding: 12px 28px; font-size: 0.98rem; }
.ed-pm-close { position: absolute; top: 16px; right: 16px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line, #e7e7e3); background: var(--bg, #fff); display: grid; place-items: center; cursor: pointer; color: var(--muted, #6d6d72); transition: background 0.15s ease, color 0.15s ease; }
.ed-pm-close:hover { background: var(--band, #f5f5f5); color: var(--ink, #0b0b0c); }
.ed-pm-close svg { width: 16px; height: 16px; }
.ed-pm-body { padding: 20px 24px; display: grid; gap: 18px; max-height: 62vh; overflow-y: auto; }
.ed-pm-foot { padding: 15px 24px; border-top: 1px solid var(--line, #e7e7e3); display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--paper, #fbfaf7); }
.ed-pm-foot-note { font-size: 0.78rem; color: var(--muted, #6d6d72); }
.ed-pm-foot-actions { display: flex; gap: 10px; }
.ed-pm-err { font-size: 0.84rem; color: #c0392b; background: #fdecea; border: 1px solid #f5c6c0; border-radius: var(--r2, 10px); padding: 9px 12px; }
.ed-pm-success { padding: 38px 28px; text-align: center; }
.ed-pm-success-ic { width: 60px; height: 60px; border-radius: 50%; background: #f1faf5; border: 1px solid #cdeede; display: grid; place-items: center; margin: 0 auto 16px; }
.ed-pm-success-ic svg { width: 28px; height: 28px; color: #0e9f6e; }
.ed-pm-success h3 { font-family: var(--display); font-size: 1.18rem; margin: 0 0 6px; color: var(--ink,#0b0b0c); }
.ed-pm-success p { color: var(--muted,#6d6d72); font-size: 0.92rem; margin: 0 0 18px; }
.ed-pm-success-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.ed-pm-btn.is-loading { position: relative; color: transparent !important; pointer-events: none; }
.ed-pm-btn.is-loading::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 16px; margin: -8px 0 0 -8px; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; animation: ed-job-spin 0.7s linear infinite; }
.ed-pm-btn-fill.is-loading::after { color: #fff; }
@media (max-width: 560px) {
  .ed-pm-backdrop { padding: 0; align-items: stretch; }
  .ed-pm-dialog { max-width: none; border-radius: 0; min-height: 100%; }
  .ed-pm-body { max-height: none; }
  .ed-pm-foot { flex-direction: column-reverse; align-items: stretch; }
  .ed-pm-foot-actions { width: 100%; }
  .ed-pm-foot-actions .ed-pm-btn { flex: 1; }
  .fp-ed .fp-fw-stat { flex: 1 1 calc(50% - 6px); min-width: 0; }
}

.fp-ed .ed-oc-dthread { display: grid; gap: 12px; margin-top: 2px; max-height: 360px; overflow-y: auto; padding-right: 4px; scroll-padding-bottom: 8px; }
.fp-ed .ed-oc-dmsg { display: grid; grid-template-columns: 30px 1fr; gap: 10px; max-width: 88%; }
.fp-ed .ed-oc-dmsg.is-mine { margin-left: auto; grid-template-columns: 1fr 30px; }
.fp-ed .ed-oc-dmsg.is-mine .ed-oc-dmsg-av { order: 2; }
.fp-ed .ed-oc-dmsg-av { width: 30px; height: 30px; border-radius: 50%; background: var(--band); border: 1px solid var(--line); display: grid; place-items: center; font-size: 0.7rem; font-weight: 700; color: var(--ink); flex: none; align-self: flex-start; }
.fp-ed .ed-oc-dmsg-body { border: 1px solid var(--line); border-radius: var(--r2); padding: 9px 13px; background: var(--paper); min-width: 0; }
.fp-ed .ed-oc-dmsg.is-mine .ed-oc-dmsg-body { background: var(--band); }
.fp-ed .ed-oc-dmsg-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 3px; }
.fp-ed .ed-oc-dmsg-name { font-size: 0.8rem; font-weight: 700; color: var(--ink); }
.fp-ed .ed-oc-dmsg-time { font-size: 0.72rem; color: var(--muted); }
.fp-ed .ed-oc-dmsg-body p { margin: 0; font-size: 0.9rem; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.fp-ed .ed-oc-dmsg.is-staff { grid-template-columns: 1fr; max-width: 100%; margin: 0; }
.fp-ed .ed-oc-dmsg.is-staff .ed-oc-dmsg-av { display: none; }
.fp-ed .ed-oc-dmsg.is-staff .ed-oc-dmsg-body { background: #f3f7fe; border-color: #cdddf6; border-left: 3px solid #2456b8; }
.fp-ed .ed-oc-dreply { margin-top: 14px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.fp-ed .ed-oc-dreply:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(11, 11, 12, 0.06); }
.fp-ed .ed-oc-dreply textarea { display: block; width: 100%; border: 0; background: none; padding: 12px 14px 6px; min-height: 48px; max-height: 168px; resize: none; font-family: inherit; font-size: 0.92rem; line-height: 1.5; color: var(--ink); }
.fp-ed .ed-oc-dreply textarea:focus { outline: none; }
.fp-ed .ed-oc-dreply textarea::placeholder { color: var(--faint); }
.fp-ed .ed-oc-dreply-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 8px 8px 14px; }
.fp-ed .ed-oc-dreply-hint { display: inline-flex; align-items: center; gap: 6px; min-width: 0; font-size: 0.74rem; color: var(--muted); }
.fp-ed .ed-oc-dreply-hint svg { width: 13px; height: 13px; flex: none; }
.fp-ed .ed-oc-dreply-hint span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-ed .ed-oc-dreply-send { flex: none; display: inline-flex; align-items: center; gap: 6px; }
.fp-ed .ed-oc-dreply-send svg { width: 14px; height: 14px; flex: none; }
.fp-ed .ed-oc-dispute-open { width: 100%; margin-top: 14px; padding: 11px; border: 1px solid #e6b8b6; border-radius: var(--r); background: transparent; color: #b4231f; font-weight: 600; font-size: 0.9rem; cursor: pointer; }
.fp-ed .ed-oc-dispute-open:hover { background: #fdf6f5; }
/* modal */
.fp-ed .ed-oc-modal { position: fixed; inset: 0; z-index: 200; background: rgba(17, 17, 17, 0.5); display: grid; place-items: center; padding: 20px; }
.fp-ed .ed-oc-dialog { width: 100%; max-width: 460px; max-height: 88vh; overflow-y: auto; background: var(--paper); border-radius: var(--r2); border: 1px solid var(--line); padding: 22px; }
.fp-ed .ed-oc-dialog-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.fp-ed .ed-oc-dialog-head h3 { font-family: var(--display); font-size: 1.1rem; margin: 0; }
.fp-ed .ed-oc-x { width: 32px; height: 32px; border: 0; background: none; font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--muted); }
.fp-ed .ed-oc-dialog-foot { display: flex; gap: 10px; margin-top: 18px; }
.fp-ed .ed-oc-dialog-foot .ed-btn { flex: 1; min-height: 46px; }
.fp-ed .ed-oc-uplist { display: grid; gap: 6px; margin: 8px 0; }
.fp-ed .ed-oc-upitem { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r); font-size: 0.84rem; }
.fp-ed .ed-oc-upitem button { border: 0; background: var(--ink); color: var(--paper); width: 20px; height: 20px; border-radius: 50%; cursor: pointer; }
.fp-ed .ed-oc-up-cta { display: inline-flex; cursor: pointer; }

.fp-ed .ed-crop-dialog { max-width: 560px; }
.fp-ed .ed-crop-body { display: grid; grid-template-columns: minmax(0, 1fr) 196px; gap: 24px; align-items: start; }
.fp-ed .ed-crop-stage { position: relative; width: 100%; max-width: 320px; aspect-ratio: 1 / 1; margin: 0 auto; border-radius: var(--r2); overflow: hidden; background: #15140f; touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none; }
.fp-ed .ed-crop-stage.is-grabbing { cursor: grabbing; }
.fp-ed .ed-crop-canvas { display: block; width: 100%; height: 100%; }
.fp-ed .ed-crop-ring { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }
.fp-ed .ed-crop-ring::before { content: ""; position: absolute; left: 50%; top: 50%; width: 100%; height: 100%; transform: translate(-50%, -50%); border-radius: 50%; box-shadow: 0 0 0 9999px rgba(15, 14, 11, 0.56); }
.fp-ed .ed-crop-ring::after { content: ""; position: absolute; left: 50%; top: 50%; width: 100%; height: 100%; transform: translate(-50%, -50%); border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.92); }
.fp-ed .ed-crop-zoom-wrap { display: flex; align-items: center; gap: 11px; margin: 15px auto 0; max-width: 320px; }
.fp-ed .ed-crop-zoom-wrap svg { width: 16px; height: 16px; flex: none; color: var(--muted); }
.fp-ed .ed-crop-zoom { -webkit-appearance: none; appearance: none; flex: 1; height: 4px; border-radius: var(--pill); background: var(--line-2); outline: none; }
.fp-ed .ed-crop-zoom::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; border-radius: 50%; background: var(--ink); border: 2px solid var(--paper); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); cursor: pointer; }
.fp-ed .ed-crop-zoom::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--ink); border: 2px solid var(--paper); cursor: pointer; }
.fp-ed .ed-crop-zoom:focus-visible { box-shadow: 0 0 0 3px var(--band); }
.fp-ed .ed-crop-side { display: grid; gap: 16px; }
.fp-ed .ed-crop-prevs-label { font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin-bottom: 9px; }
.fp-ed .ed-crop-prevs { display: flex; align-items: flex-end; gap: 14px; }
.fp-ed .ed-crop-preview { width: 104px; height: 104px; border-radius: 50%; overflow: hidden; border: 1px solid var(--line); background: var(--band); flex: none; }
.fp-ed .ed-crop-preview-sm { width: 40px; height: 40px; }
.fp-ed .ed-crop-preview canvas { display: block; width: 100%; height: 100%; }
.fp-ed .ed-crop-hint { font-size: 0.8rem; line-height: 1.55; color: var(--muted); margin: 0; }
.fp-ed .ed-crop-hint strong { color: var(--ink); font-weight: 600; }
.fp-ed .ed-crop-foot { display: flex; gap: 10px; margin-top: 20px; }
.fp-ed .ed-crop-foot .ed-btn { flex: 1; min-height: 46px; }
.fp-ed .ed-crop-foot .ed-crop-change { flex: 1.25; }
@media (max-width: 640px) {
  .fp-ed .ed-crop-body { grid-template-columns: minmax(0, 1fr); }
  .fp-ed .ed-crop-side { justify-items: center; text-align: center; }
  .fp-ed .ed-crop-prevs { justify-content: center; }
  .fp-ed .ed-crop-foot { flex-wrap: wrap; }
  .fp-ed .ed-crop-foot .ed-btn, .fp-ed .ed-crop-foot .ed-crop-change { flex: 1 1 100%; }
}

/* Progress stepper */
.fp-ed .ed-oc-steps { display: flex; align-items: flex-start; margin-top: 22px; padding: 18px 14px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); overflow-x: auto; }
.fp-ed .ed-oc-step { flex: 1 0 84px; display: flex; flex-direction: column; align-items: center; text-align: center; position: relative; }
.fp-ed .ed-oc-step::before { content: ""; position: absolute; top: 13px; left: -50%; width: 100%; height: 2px; background: var(--line); z-index: 0; }
.fp-ed .ed-oc-step:first-child::before { display: none; }
.fp-ed .ed-oc-step.is-done::before, .fp-ed .ed-oc-step.is-current::before { background: var(--ink); }
.fp-ed .ed-oc-step-node { position: relative; z-index: 1; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--paper); border: 2px solid var(--line); color: var(--muted); font-size: 0.76rem; font-weight: 700; }
.fp-ed .ed-oc-step.is-done .ed-oc-step-node { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.fp-ed .ed-oc-step.is-current .ed-oc-step-node { border-color: var(--ink); color: var(--ink); box-shadow: 0 0 0 4px var(--band); }
.fp-ed .ed-oc-step-node svg { width: 15px; height: 15px; }
.fp-ed .ed-oc-step-label { margin-top: 8px; font-size: 0.76rem; font-weight: 600; color: var(--muted); line-height: 1.3; padding: 0 4px; }
.fp-ed .ed-oc-step.is-done .ed-oc-step-label, .fp-ed .ed-oc-step.is-current .ed-oc-step-label { color: var(--ink); }
.fp-ed .ed-oc-steps-end { display: flex; align-items: center; gap: 11px; margin-top: 22px; padding: 15px 18px; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--band); }
.fp-ed .ed-oc-steps-end svg { width: 20px; height: 20px; flex: none; color: var(--muted); }
.fp-ed .ed-oc-steps-end strong { font-size: 0.95rem; }
.fp-ed .ed-oc-steps-end.is-bad svg { color: #b4231f; }
/* Open requests panel */
.fp-ed .ed-oc-requests { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.fp-ed .ed-oc-request { border: 1px solid var(--line-2); border-radius: var(--r2); padding: 14px 16px; background: var(--paper); }
.fp-ed .ed-oc-request.is-action { border-color: var(--ink); background: var(--band); }
.fp-ed .ed-oc-request-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fp-ed .ed-oc-request-head strong { font-size: 0.95rem; }
.fp-ed .ed-oc-request-meta { font-size: 0.82rem; color: var(--muted); margin: 6px 0 0; }
.fp-ed .ed-oc-request-reason { font-size: 0.9rem; color: var(--ink); margin: 8px 0 0; white-space: pre-wrap; }
.fp-ed .ed-oc-request-auto { display: inline-flex; align-items: center; gap: 6px; font-size: 0.78rem; color: var(--muted); margin-top: 9px; }
.fp-ed .ed-oc-request-auto svg { width: 13px; height: 13px; }
.fp-ed .ed-oc-request-acts { display: flex; gap: 8px; margin-top: 12px; }
.fp-ed .ed-oc-request-acts .ed-btn { flex: 1; min-height: 42px; }
.fp-ed .ed-oc-request-wait { margin-top: 10px; font-size: 0.83rem; color: var(--muted); }
.fp-ed .ed-oc-req-decline { border-color: #e6b8b6; color: #b4231f; }
.fp-ed .ed-oc-req-decline:hover { background: #fdf6f5; }
.fp-ed .ed-oc-summary { display: grid; margin: 16px 0; border-top: 1px solid var(--line); }
.fp-ed .ed-oc-srow { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.fp-ed .ed-oc-srow > span { font-size: 0.85rem; color: var(--muted); }
.fp-ed .ed-oc-srow > strong { font-size: 0.92rem; font-weight: 600; color: var(--ink); text-align: right; white-space: nowrap; }
.fp-ed .ed-oc-pay { margin-top: 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--band); }
.fp-ed .ed-oc-pay-title { font-size: 0.72rem; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin: 0 0 8px; }
.fp-ed .ed-oc-pay .ed-oc-srow { border-color: var(--line-2); }
.fp-ed .ed-oc-pay .ed-oc-srow:last-of-type { border-bottom: 0; padding-bottom: 2px; }
.fp-ed .ed-oc-pay-status { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 0.84rem; font-weight: 600; }
.fp-ed .ed-oc-pay-status svg { width: 15px; height: 15px; flex: none; }
.fp-ed .ed-oc-pay-status.is-hold { color: #9a6a00; }
.fp-ed .ed-oc-pay-status.is-clear { color: #1f7a3d; }
.fp-ed .ed-oc-pay-status.is-refund { color: #b4231f; }
/* Deliveries history */
.fp-ed .ed-oc-deliv { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.fp-ed .ed-oc-deliv-item { border: 1px solid var(--line); border-radius: var(--r2); padding: 14px 16px; }
.fp-ed .ed-oc-deliv-item.is-latest { border-color: var(--ink); background: var(--band); }
.fp-ed .ed-oc-deliv-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.fp-ed .ed-oc-deliv-headline { display: grid; gap: 1px; min-width: 0; }
.fp-ed .ed-oc-deliv-head strong { font-size: 0.9rem; }
.fp-ed .ed-oc-deliv-num { font-size: 0.64rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); }
.fp-ed .ed-oc-deliv-item.is-latest .ed-oc-deliv-num { color: var(--ink); }
.fp-ed .ed-oc-deliv-tag { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line-2); border-radius: var(--pill); padding: 2px 9px; flex: none; }
.fp-ed .ed-oc-deliv-item.is-latest .ed-oc-deliv-tag { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.fp-ed .ed-oc-deliv-time { font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-oc-deliv-files-label { display: flex; align-items: center; gap: 6px; margin: 14px 0 0; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); }
.fp-ed .ed-oc-deliv-files-label svg { width: 14px; height: 14px; flex: none; color: var(--ink); }
.fp-ed .ed-oc-files.is-delivery { margin-top: 8px; }
.fp-ed .ed-oc-files.is-delivery a { border-color: var(--ink); border-left-width: 3px; background: var(--band); }
.fp-ed .ed-oc-files.is-delivery a:hover { background: var(--paper); }
.fp-ed .ed-oc-pkg { border: 1px solid var(--line); border-radius: var(--r2); padding: 14px 16px; margin: 0 0 16px; background: var(--band); }
.fp-ed .ed-oc-pkg-label { font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin: 0 0 9px; }
.fp-ed .ed-oc-pkg-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fp-ed .ed-oc-pkg-name { font-family: var(--display); font-size: 1rem; font-weight: 600; }
.fp-ed .ed-oc-pkg-price { font-size: 0.95rem; font-weight: 700; white-space: nowrap; }
.fp-ed .ed-oc-pkg-desc { font-size: 0.86rem; color: var(--muted); margin: 5px 0 0; }
.fp-ed .ed-oc-pkg-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 9px; font-size: 0.8rem; color: var(--muted); }
.fp-ed .ed-oc-pkg-meta span { display: inline-flex; align-items: center; gap: 6px; }
.fp-ed .ed-oc-pkg-meta svg { width: 14px; height: 14px; flex: none; }
.fp-ed .ed-oc-pkg-feats { list-style: none; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--line); display: grid; gap: 7px; }
.fp-ed .ed-oc-pkg-feats li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; font-size: 0.86rem; line-height: 1.45; }
.fp-ed .ed-oc-pkg-feats svg { width: 14px; height: 14px; margin-top: 3px; color: var(--ink); flex: none; }
.fp-ed .ed-oc-addons { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.fp-ed .ed-oc-addon { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r); }
.fp-ed .ed-oc-addon-main { min-width: 0; }
.fp-ed .ed-oc-addon-main strong { display: block; font-size: 0.88rem; }
.fp-ed .ed-oc-addon-main span { font-size: 0.76rem; color: var(--muted); }
.fp-ed .ed-oc-addon-amt { font-size: 0.9rem; font-weight: 700; white-space: nowrap; flex: none; }
.fp-ed .ed-oc-addon-amt.is-free { color: #1f7a3d; }
/* "Out of revisions" buyer prompt + seller offer modal (item 2) */
.fp-ed .ed-oc-rev-note { margin: 0 0 10px; padding: 11px 14px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--band); font-size: 0.86rem; color: var(--ink); }
.fp-ed .ed-oc-seg { display: flex; gap: 6px; margin-bottom: 12px; }
.fp-ed .ed-oc-seg button { flex: 1; padding: 9px 6px; border: 1px solid var(--line); border-radius: var(--r); background: var(--paper); font-size: 0.82rem; font-weight: 600; color: var(--muted); cursor: pointer; }
.fp-ed .ed-oc-seg button.is-on { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.fp-ed .ed-oc-offer-sum { margin-top: 12px; padding: 11px 14px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--band); font-size: 0.9rem; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.fp-ed .ed-oc-offer-sum strong { font-weight: 700; white-space: nowrap; }
/* Review + seller reply */
.fp-ed .ed-oc-review-stars { display: inline-flex; gap: 2px; color: var(--ink); }
.fp-ed .ed-oc-review-stars svg { width: 17px; height: 17px; }
.fp-ed .ed-oc-review-stars .is-off { color: var(--line-2); }
.fp-ed .ed-oc-review-text { font-size: 0.94rem; line-height: 1.6; margin: 10px 0 0; white-space: pre-wrap; }
.fp-ed .ed-oc-review-date { font-size: 0.78rem; color: var(--muted); margin-top: 6px; }
.fp-ed .ed-oc-reply { margin-top: 14px; padding: 12px 14px; border-left: 2px solid var(--ink); background: var(--band); border-radius: 0 var(--r) var(--r) 0; }
.fp-ed .ed-oc-reply-label { font-size: 0.72rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.fp-ed .ed-oc-reply p { margin: 5px 0 0; font-size: 0.9rem; line-height: 1.55; white-space: pre-wrap; }
.fp-ed .ed-oc-reply-form { margin-top: 12px; }
.fp-ed .ed-oc-reply-form .ed-btn { margin-top: 9px; }

.fp-ed .ed-oc-dialog.is-wide { max-width: 540px; }
.fp-ed .ed-rate-intro { margin: -4px 0 14px; font-size: 0.88rem; color: var(--muted); line-height: 1.5; }
.fp-ed .ed-rate-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 0; border-top: 1px solid var(--line); }
.fp-ed .ed-rate-row:first-of-type { border-top: 0; }
.fp-ed .ed-rate-row-tx { min-width: 0; }
.fp-ed .ed-rate-row-tx strong { display: block; font-size: 0.92rem; font-weight: 600; }
.fp-ed .ed-rate-row-tx span { display: block; font-size: 0.76rem; color: var(--muted); margin-top: 1px; }
.fp-ed .ed-stars-input { display: inline-flex; gap: 3px; flex: none; }
.fp-ed .ed-stars-input button { border: 0; background: none; padding: 2px; cursor: pointer; color: var(--line-2); line-height: 0; border-radius: 6px; transition: color 0.12s ease, transform 0.1s ease; }
.fp-ed .ed-stars-input button svg { width: 24px; height: 24px; display: block; }
.fp-ed .ed-stars-input button:hover { transform: scale(1.12); }
.fp-ed .ed-stars-input button.is-on { color: var(--ink); }
.fp-ed .ed-stars-input button:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
.fp-ed .ed-stars-input.is-amber button.is-on { color: #d68a1a; }
.fp-ed .ed-rate-overall { margin-top: 16px; padding: 14px 16px; border: 1px solid var(--ink); border-radius: var(--r2); background: var(--band); display: flex; align-items: center; gap: 14px; }
.fp-ed .ed-rate-overall-num { font-family: var(--serif); font-size: 2.1rem; line-height: 1; color: var(--ink); min-width: 56px; }
.fp-ed .ed-rate-overall-tx { min-width: 0; }
.fp-ed .ed-rate-overall-tx .ed-oc-review-stars svg { width: 18px; height: 18px; }
.fp-ed .ed-rate-overall-tx span { display: block; font-size: 0.78rem; color: var(--muted); margin-top: 3px; }
.fp-ed .ed-rate-field { margin-top: 14px; }
.fp-ed .ed-rate-count { display: block; text-align: right; font-size: 0.74rem; color: var(--muted); margin-top: 4px; }
.fp-ed .ed-oc-review-crit { display: grid; gap: 7px; margin: 12px 0 0; }
.fp-ed .ed-oc-crit-row { display: grid; grid-template-columns: minmax(96px, 0.5fr) 1fr auto; align-items: center; gap: 10px; font-size: 0.82rem; }
.fp-ed .ed-oc-crit-row > span:first-child { color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .ed-oc-crit-bar { height: 6px; border-radius: 999px; background: var(--line-2); overflow: hidden; }
.fp-ed .ed-oc-crit-bar i { display: block; height: 100%; background: var(--ink); border-radius: 999px; }
.fp-ed .ed-oc-crit-row b { font-weight: 600; color: var(--ink); white-space: nowrap; }
.fp-ed .ed-oc-review-edit { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.fp-ed .ed-oc-review-editnote { font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-oc-review-cta { margin-top: 12px; }
.fp-ed .ed-oc-review-edited { font-size: 0.74rem; color: var(--muted); font-style: italic; margin-left: 6px; }
.fp-ed .ed-tip-presets { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 0; }
.fp-ed .ed-tip-presets button { flex: 1 1 70px; min-height: 46px; border: 1px solid var(--line); border-radius: var(--r); background: var(--paper); font-weight: 600; font-size: 0.95rem; color: var(--ink); cursor: pointer; transition: border-color 0.12s ease, background-color 0.12s ease; }
.fp-ed .ed-tip-presets button:hover { background: var(--band); }
.fp-ed .ed-tip-presets button.is-on { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.fp-ed .ed-tip-note { margin: 12px 0 0; font-size: 0.82rem; color: var(--muted); line-height: 1.5; }
.fp-ed .ed-oc-tips { display: flex; align-items: center; gap: 8px; margin-top: 14px; padding: 10px 14px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--band); font-size: 0.88rem; }
.fp-ed .ed-oc-tips svg { width: 16px; height: 16px; flex: none; color: #1f7a3d; }
.fp-ed .ed-oc-tips strong { font-weight: 700; margin-left: auto; }
.fp-ed .ed-oc-buyerreview { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.fp-ed .ed-oc-buyerreview-label { font-size: 0.72rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }

.fp-ed .ed-oc-resolve-open { width: 100%; margin-top: 14px; padding: 11px; border: 1px solid var(--ink); border-radius: var(--r); background: var(--ink); color: var(--paper); font-weight: 600; font-size: 0.9rem; cursor: pointer; }
.fp-ed .ed-oc-resolve-open:hover { background: #000; }
.fp-ed .ed-oc-close-dispute { width: 100%; margin-top: 10px; padding: 11px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--paper); color: var(--muted); font-weight: 600; font-size: 0.9rem; cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
.fp-ed .ed-oc-close-dispute:hover { background: var(--band); color: var(--ink); border-color: var(--ink); }
.fp-ed .ed-oc-close-dispute svg { width: 16px; height: 16px; flex: none; }
.fp-ed .ed-oc-closed { display: flex; align-items: flex-start; gap: 11px; margin-top: 14px; padding: 13px 15px; border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--band); }
.fp-ed .ed-oc-closed svg { width: 19px; height: 19px; flex: none; color: #1f7a3d; margin-top: 1px; }
.fp-ed .ed-oc-closed strong { display: block; font-size: 0.92rem; color: var(--ink); }
.fp-ed .ed-oc-closed span { display: block; font-size: 0.83rem; color: var(--muted); margin-top: 2px; line-height: 1.45; }
.fp-ed .ed-oc-proposal { margin-top: 14px; border: 1px solid var(--ink); border-radius: var(--r2); padding: 14px 16px; background: var(--paper); }
.fp-ed .ed-oc-proposal-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.fp-ed .ed-oc-proposal-head strong { font-size: 0.95rem; }
.fp-ed .ed-oc-proposal-note { font-size: 0.88rem; color: var(--ink); margin: 6px 0 0; white-space: pre-wrap; }
.fp-ed .ed-oc-amts { display: grid; margin: 10px 0 0; border-top: 1px solid var(--line); }
.fp-ed .ed-oc-amts .ed-oc-srow:last-child { border-bottom: 0; }
.fp-ed .ed-oc-proposal .ed-oc-request-acts { margin-top: 12px; }
.fp-ed .ed-oc-proposal-wait { margin-top: 10px; font-size: 0.83rem; color: var(--muted); }
.fp-ed .ed-oc-splitrow { display: grid; gap: 7px; margin-top: 12px; }
.fp-ed .ed-oc-splitrow input[type="range"] { width: 100%; accent-color: var(--ink); }
.fp-ed .ed-oc-splitout { font-size: 0.85rem; color: var(--muted); }
.fp-ed .ed-oc-splitout b { color: var(--ink); font-weight: 600; }

.fp-ed .ed-oc-opts { display: grid; gap: 8px; }
.fp-ed .ed-oc-opt { position: relative; display: flex; align-items: flex-start; gap: 11px; padding: 12px 13px; border: 1px solid var(--line); border-radius: var(--r2); cursor: pointer; transition: border-color 0.15s ease, background-color 0.15s ease; }
.fp-ed .ed-oc-opt:hover { background: var(--band); }
.fp-ed .ed-oc-opt.is-sel { border-color: var(--ink); background: var(--band); }
.fp-ed .ed-oc-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fp-ed .ed-oc-opt-ic { width: 30px; height: 30px; flex: none; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); display: grid; place-items: center; color: var(--muted); margin-top: 1px; }
.fp-ed .ed-oc-opt.is-sel .ed-oc-opt-ic { border-color: var(--ink); color: var(--ink); }
.fp-ed .ed-oc-opt-ic svg { width: 16px; height: 16px; }
.fp-ed .ed-oc-opt-tx { min-width: 0; }
.fp-ed .ed-oc-opt-tx strong { display: block; font-size: 0.92rem; }
.fp-ed .ed-oc-opt-tx span { display: block; font-size: 0.8rem; color: var(--muted); margin-top: 2px; line-height: 1.4; }
.fp-ed .ed-oc-split2 { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--band); }
.fp-ed .ed-oc-split2[hidden] { display: none; }
.fp-ed .ed-oc-split2-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.fp-ed .ed-oc-split2-head span { font-size: 0.82rem; color: var(--muted); }
.fp-ed .ed-oc-split2-head strong { font-size: 1.1rem; font-family: var(--serif); }
.fp-ed .ed-oc-split2 input[type="range"] { width: 100%; accent-color: var(--ink); }
.fp-ed .ed-oc-breakdown { margin-top: 12px; padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--r2); }
.fp-ed .ed-oc-bd-title { margin: 0 0 10px; font-size: 0.72rem; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.fp-ed .ed-oc-bd-bar { display: flex; height: 8px; border-radius: 999px; overflow: hidden; background: var(--line-2); margin-bottom: 12px; }
.fp-ed .ed-oc-bd-bar span { display: block; height: 100%; transition: width 0.2s ease; }
.fp-ed .ed-oc-bd-bar .is-buyer { background: var(--ink); }
.fp-ed .ed-oc-bd-bar .is-seller { background: #1f7a3d; }
.fp-ed .ed-oc-bd-bar .is-plat { background: var(--faint); }
.fp-ed .ed-oc-bd-rows { display: grid; gap: 7px; }
.fp-ed .ed-oc-bd-row { display: flex; align-items: center; gap: 9px; font-size: 0.88rem; }
.fp-ed .ed-oc-bd-sw { width: 10px; height: 10px; border-radius: 3px; flex: none; background: var(--muted); }
.fp-ed .ed-oc-bd-row.is-buyer .ed-oc-bd-sw { background: var(--ink); }
.fp-ed .ed-oc-bd-row.is-seller .ed-oc-bd-sw { background: #1f7a3d; }
.fp-ed .ed-oc-bd-row.is-plat .ed-oc-bd-sw { background: var(--faint); }
.fp-ed .ed-oc-bd-row > span { color: var(--muted); }
.fp-ed .ed-oc-bd-row b { margin-left: auto; font-weight: 600; color: var(--ink); }
.fp-ed .ed-oc-bd-total { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line); }
.fp-ed .ed-oc-bd-total span { font-size: 0.82rem; color: var(--muted); }
.fp-ed .ed-oc-bd-total strong { font-size: 0.95rem; }

@media (max-width: 700px) {
  .fp-ed .ed-oc-steps { padding: 14px 8px; }
  .fp-ed .ed-oc-step { flex: 1 0 68px; }
  .fp-ed .ed-oc-step-label { font-size: 0.68rem; }
  .fp-ed .ed-oc-request-acts { flex-direction: column; }
  .fp-ed .ed-rate-row { flex-direction: column; align-items: flex-start; gap: 8px; }
  .fp-ed .ed-stars-input button svg { width: 30px; height: 30px; }
  .fp-ed .ed-oc-crit-row { grid-template-columns: minmax(80px, 0.7fr) 1fr auto; }
}
@media (max-width: 560px) {
  .fp-ed .ed-oc-head-side { width: 100%; }
  .fp-ed .ed-oc-dreply { flex-direction: column; align-items: stretch; }
}

.fp-ed .messages-msg-menu { position: relative; display: inline-flex; margin-left: auto; }
.fp-ed .messages-msg-menu-btn { border: 0; background: none; color: var(--muted); font-size: 1.05rem; line-height: 1; cursor: pointer; padding: 0 4px; border-radius: var(--r); }
.fp-ed .messages-msg-menu-btn:hover { color: var(--ink); }
.fp-ed .messages-msg-menu-pop { position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 180px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); box-shadow: 0 14px 36px rgba(0, 0, 0, 0.14); padding: 6px; }
.fp-ed .messages-msg-menu-pop[hidden] { display: none; }
.fp-ed .messages-msg-menu-pop button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 9px 12px; border-radius: var(--r); font-size: 0.86rem; cursor: pointer; color: var(--ink); }
.fp-ed .messages-msg-menu-pop button:hover { background: var(--band); }
.fp-ed .messages-msg-menu-pop button.is-danger { color: #b4231f; }
.fp-ed .messages-edited { font-size: 0.72rem; color: var(--muted); font-style: italic; }
.fp-ed .messages-message-deleted { opacity: 0.85; }
.fp-ed .messages-deleted-note { margin: 0; font-size: 0.86rem; font-style: italic; color: var(--muted); }
.fp-ed .messages-edit-input { width: 100%; min-height: 42px; resize: vertical; margin: 4px 0 8px; font: inherit; padding: 8px 10px; border: 1px solid var(--line-2); border-radius: var(--r); }
.fp-ed .messages-edit-actions { display: flex; gap: 8px; justify-content: flex-end; }
.fp-ed .messages-serve-link { display: flex; gap: 12px; align-items: center; text-decoration: none; color: inherit; }
.fp-ed .messages-serve-link:hover { opacity: 0.85; }
.fp-ed .messages-buyer-card strong { display: block; font-size: 0.88rem; margin-bottom: 8px; }
.fp-ed .messages-buyer-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.fp-ed .messages-buyer-card li { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 0.84rem; }
.fp-ed .messages-buyer-card li span { color: var(--muted); }


/* Section panel + heads */
.fp-ed .ed-panel { border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); padding: 20px; }
.fp-ed .ed-panel + .ed-panel { margin-top: 18px; }
.fp-ed .ed-panel-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.fp-ed .ed-panel-head h2, .fp-ed .ed-panel-head h3 { margin: 0; }
.fp-ed .ed-panel-sub { font-size: 0.84rem; color: var(--muted); margin: 4px 0 0; }

.fp-ed .ed-wsx-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.fp-ed .ed-wsx { border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); padding: 16px 16px 14px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.fp-ed .ed-wsx-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fp-ed .ed-wsx-label { font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.fp-ed .ed-wsx-value { font-family: var(--serif, Fraunces, serif); font-size: 1.75rem; line-height: 1.05; letter-spacing: -0.01em; color: var(--ink); }
.fp-ed .ed-wsx-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 2px; }
.fp-ed .ed-wsx-hint { font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-wsx-trend { display: inline-flex; align-items: center; gap: 4px; font-size: 0.76rem; font-weight: 600; padding: 2px 8px; border-radius: var(--pill); border: 1px solid var(--line-2); color: var(--muted); white-space: nowrap; }
.fp-ed .ed-wsx-trend.is-up { color: #1f7a3d; border-color: #bfe2cb; background: #f1faf3; }
.fp-ed .ed-wsx-trend.is-down { color: #b4231f; border-color: #f0c9c6; background: #fcf2f1; }
.fp-ed .ed-wsx-trend svg { width: 11px; height: 11px; }
.fp-ed .ed-spark { width: 100%; height: 34px; display: block; overflow: visible; }
.fp-ed .ed-spark path.line { fill: none; stroke: var(--ink); stroke-width: 1.6; }
.fp-ed .ed-spark path.area { fill: rgba(11,11,12,0.06); stroke: none; }

/* Mini bar / trend chart */
.fp-ed .ed-chart { width: 100%; }
.fp-ed .ed-bars { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; align-items: end; gap: 4px; height: 150px; padding-top: 8px; border-bottom: 1px solid var(--line); }
.fp-ed .ed-bar { position: relative; background: var(--band); border-radius: 3px 3px 0 0; min-height: 2px; transition: background 0.15s ease; }
.fp-ed .ed-bar > i { position: absolute; inset: 0 0 0 0; background: var(--ink); border-radius: 3px 3px 0 0; }
.fp-ed .ed-bar:hover { background: var(--line-2); }
.fp-ed .ed-chart-axis { display: flex; justify-content: space-between; font-size: 0.72rem; color: var(--muted); margin-top: 8px; }

.fp-ed .ed-trend-stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 2px 0 14px; }
.fp-ed .ed-trend-stats:empty { display: none; }
.fp-ed .ed-trend-stat { flex: 1 1 0; min-width: 92px; display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r2); background: color-mix(in srgb, var(--brand) 4%, var(--paper)); }
.fp-ed .ed-trend-stat-l { font-size: 0.68rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.fp-ed .ed-trend-stat-v { font-family: var(--serif); font-weight: 700; font-size: 1.12rem; color: var(--ink); line-height: 1.12; }
.fp-ed .ed-trend-stats.is-money .ed-trend-stat-v { color: #12774b; }
.fp-ed .ed-trend-sub { font-family: var(--display); font-weight: 600; font-size: 0.7rem; color: var(--muted); margin-left: 4px; }

.fp-ed .ed-seg { display: inline-flex; border: 1px solid var(--line-2); border-radius: var(--pill); padding: 3px; gap: 2px; background: var(--paper); }
.fp-ed .ed-seg button { appearance: none; border: 0; background: transparent; color: var(--muted); font: inherit; font-size: 0.82rem; font-weight: 600; padding: 5px 13px; border-radius: var(--pill); cursor: pointer; white-space: nowrap; }
.fp-ed .ed-seg button.is-active { background: var(--ink); color: var(--paper); }
.fp-ed .ed-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.fp-ed .ed-toolbar .ed-seg { flex-wrap: wrap; }
.fp-ed .ed-toolbar .ed-search { margin: 0; }
.fp-ed .ed-search { position: relative; flex: 1 1 220px; min-width: 160px; }
.fp-ed .ed-search input { width: 100%; border: 1px solid var(--line-2); border-radius: var(--pill); padding: 9px 14px 9px 36px; font: inherit; font-size: 0.88rem; background: var(--paper); color: var(--ink); }
.fp-ed .ed-search input:focus { outline: none; border-color: var(--ink); }
.fp-ed .ed-search svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); margin-left: 0; width: 16px; height: 16px; color: var(--muted); }
.fp-ed .ed-select { border: 1px solid var(--line-2); border-radius: var(--pill); padding: 8px 14px; font: inherit; font-size: 0.84rem; background: var(--paper); color: var(--ink); cursor: pointer; }

.fp-ed .ed-sc-stats { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.fp-ed .ed-sc-csv { min-height: 38px; padding: 0 16px; gap: 7px; border: 1px solid var(--line-2); border-radius: var(--pill); background: var(--paper); color: var(--ink); font-size: 0.84rem; }
.fp-ed .ed-sc-csv:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.fp-ed .ed-sc-csv svg { width: 15px; height: 15px; }
.fp-ed .ed-sc-csv[disabled] { opacity: 0.45; cursor: not-allowed; }
.fp-ed .ed-sc-csv[disabled]:hover { background: var(--paper); color: var(--ink); border-color: var(--line-2); }
.fp-ed .ed-sc-tablewrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r2); }
.fp-ed .ed-sc-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; min-width: 720px; }
.fp-ed .ed-sc-table thead th { text-align: left; padding: 0; border-bottom: 1px solid var(--line); background: var(--band); white-space: nowrap; }
.fp-ed .ed-sc-table thead th.ed-sc-num { text-align: right; }
.fp-ed .ed-sc-th { width: 100%; appearance: none; border: 0; background: transparent; font: inherit; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 600; color: var(--muted); padding: 12px 14px; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; }
.fp-ed .ed-sc-table thead th.ed-sc-num .ed-sc-th { justify-content: flex-end; }
.fp-ed .ed-sc-th:hover, .fp-ed .ed-sc-th.is-on { color: var(--ink); }
.fp-ed .ed-sc-sort { display: inline-flex; opacity: 0; transition: opacity 0.15s ease, transform 0.15s ease; }
.fp-ed .ed-sc-th:hover .ed-sc-sort { opacity: 0.45; }
.fp-ed .ed-sc-sort.is-on { opacity: 1; }
.fp-ed .ed-sc-sort svg { width: 13px; height: 13px; }
.fp-ed .ed-sc-sort.is-asc { transform: rotate(180deg); }
.fp-ed .ed-sc-row { border-top: 1px solid var(--line); cursor: pointer; transition: background-color 0.14s ease; }
.fp-ed .ed-sc-row:hover { background: var(--band); }
.fp-ed .ed-sc-row:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.fp-ed .ed-sc-table tbody td { padding: 13px 14px; vertical-align: middle; color: var(--ink); }
.fp-ed .ed-sc-cnum { font-variant-numeric: tabular-nums; color: var(--muted); white-space: nowrap; }
.fp-ed td.ed-sc-num { text-align: right; font-family: var(--serif, Fraunces, serif); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fp-ed .ed-sc-date { color: var(--muted); white-space: nowrap; }
.fp-ed .ed-sc-due { white-space: nowrap; }
.fp-ed .ed-sc-due-soon { font-weight: 600; }
.fp-ed .ed-sc-due-over { color: #b4231f; font-weight: 600; }
.fp-ed .ed-sc-muted { color: var(--faint); }
.fp-ed .ed-sc-buyer { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.fp-ed .ed-sc-av { width: 30px; height: 30px; border-radius: 50%; overflow: hidden; flex-shrink: 0; background: var(--band); border: 1px solid var(--line); display: inline-flex; }
.fp-ed .ed-sc-av img { width: 100%; height: 100%; object-fit: cover; }
.fp-ed .ed-sc-av .ed-mock { width: 100%; height: 100%; border-radius: 0; }
.fp-ed .ed-sc-ini { width: 100%; height: 100%; display: grid; place-items: center; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.02em; color: var(--ink); background: var(--band); text-transform: uppercase; }
.fp-ed .ed-sc-buyer-tx { min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.fp-ed .ed-sc-buyer-tx b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 170px; }
.fp-ed .ed-sc-buyer-tx small { color: var(--muted); font-size: 0.78rem; }
.fp-ed .ed-sc-serve { display: block; max-width: 240px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .ed-sc-cards { display: none; }
@media (max-width: 720px) {
  .fp-ed .ed-sc-tablewrap { display: none; }
  .fp-ed .ed-sc-cards { display: block; }
}

/* Status breakdown share bar */
.fp-ed .ed-breakdown { display: flex; height: 12px; border-radius: var(--pill); overflow: hidden; border: 1px solid var(--line); background: var(--band); }
.fp-ed .ed-breakdown > span { display: block; height: 100%; }
.fp-ed .ed-bd-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 12px; }
.fp-ed .ed-bd-legend > span { display: inline-flex; align-items: center; gap: 7px; font-size: 0.8rem; color: var(--muted); }
.fp-ed .ed-bd-dot { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }
.fp-ed .ed-bd-legend b { color: var(--ink); font-weight: 600; }

/* Performance-ranked row */
.fp-ed .ed-rank-list { display: flex; flex-direction: column; }
.fp-ed .ed-rank-row { display: grid; grid-template-columns: 26px 44px 1fr auto; align-items: center; gap: 12px; padding: 13px 4px; border-top: 1px solid var(--line); }
.fp-ed .ed-rank-row:first-child { border-top: 0; }
.fp-ed .ed-rank-no { font-family: var(--serif, Fraunces, serif); font-size: 1rem; color: var(--muted); text-align: center; }
.fp-ed .ed-rank-thumb { width: 44px; height: 32px; border-radius: var(--r); object-fit: cover; background: var(--band); border: 1px solid var(--line); }
.fp-ed .ed-rank-main { min-width: 0; }
.fp-ed .ed-rank-main strong { display: block; font-size: 0.92rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .ed-metricchips { display: flex; align-items: center; gap: 6px 10px; flex-wrap: wrap; margin-top: 4px; }
.fp-ed .ed-metricchip { display: inline-flex; align-items: center; gap: 5px; font-size: 0.74rem; line-height: 1.2; color: var(--muted); white-space: nowrap; }
.fp-ed .ed-metricchip svg { flex: 0 0 auto; width: 14px; height: 14px; }
.fp-ed .ed-metricchip b { color: var(--ink); font-weight: 600; }
.fp-ed .ed-rank-val { font-family: var(--serif, Fraunces, serif); font-size: 1.05rem; text-align: right; white-space: nowrap; }

.fp-ed .ed-txn-wrap { border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; background: var(--paper); }
.fp-ed .ed-txn-group-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 16px; background: var(--band); border-top: 1px solid var(--line); font-size: 0.76rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.fp-ed .ed-txn-wrap > .ed-txn-group:first-child .ed-txn-group-head { border-top: 0; }
.fp-ed .ed-txn-row { width: 100%; display: grid; grid-template-columns: 38px 1fr auto auto; align-items: center; gap: 14px; padding: 14px 16px; border-top: 1px solid var(--line); background: var(--paper); cursor: pointer; text-align: left; appearance: none; border-left: 0; border-right: 0; border-bottom: 0; font: inherit; color: inherit; }
.fp-ed .ed-txn-row:hover { background: var(--band); }
.fp-ed .ed-txn-ico { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line-2); display: grid; place-items: center; color: var(--ink); background: var(--paper); }
.fp-ed .ed-txn-ico svg { width: 17px; height: 17px; }
.fp-ed .ed-txn-ico.is-in { color: #1f7a3d; border-color: #bfe2cb; background: #f1faf3; }
.fp-ed .ed-txn-ico.is-out { color: #b4231f; border-color: #f0c9c6; background: #fcf2f1; }
.fp-ed .ed-txn-ico.is-hold { color: #9a6a00; border-color: #ecd9a8; background: #fbf6e9; }
.fp-ed .ed-txn-main { min-width: 0; }
.fp-ed .ed-txn-main strong { display: block; font-size: 0.92rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .ed-txn-main span { display: block; font-size: 0.8rem; color: var(--muted); margin-top: 2px; }
.fp-ed .ed-txn-amt { font-family: var(--serif, Fraunces, serif); font-size: 1.05rem; white-space: nowrap; text-align: right; }
.fp-ed .ed-txn-amt.is-in { color: #1f7a3d; }
.fp-ed .ed-txn-chev { width: 16px; height: 16px; color: var(--muted); transition: transform 0.18s ease; }
.fp-ed .ed-txn-row[aria-expanded="true"] .ed-txn-chev { transform: rotate(180deg); }
.fp-ed .ed-txn-detail { padding: 0 16px 16px 68px; border-top: 1px solid var(--line); background: var(--band); display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; }
.fp-ed .ed-txn-detail[hidden] { display: none; }
.fp-ed .ed-txn-detail dt { font-size: 0.72rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); padding-top: 14px; }
.fp-ed .ed-txn-detail dd { margin: 0; font-size: 0.88rem; color: var(--ink); word-break: break-word; }

.fp-ed .ed-tchart { display: flex; gap: 10px; }
.fp-ed .ed-tchart-yax { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; width: 34px; height: 220px; font-size: 0.7rem; color: var(--muted); font-variant-numeric: tabular-nums; flex: none; }
.fp-ed .ed-tchart-plot { position: relative; flex: 1; height: 220px; min-width: 0; border-left: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.fp-ed .ed-tchart-svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.fp-ed .ed-tchart-grid { stroke: var(--line); stroke-width: 1; }
.fp-ed .ed-tchart-area { fill: rgba(11,11,12,0.05); stroke: none; }
.fp-ed .ed-tchart-line { fill: none; stroke: var(--ink); stroke-width: 1.7; stroke-linejoin: round; stroke-linecap: round; }
.fp-ed .ed-tchart-avg { position: absolute; left: 0; right: 0; height: 0; border-top: 1px dashed var(--line-2); pointer-events: none; }
.fp-ed .ed-tchart-avg span { position: absolute; right: 0; top: -8px; font-size: 0.66rem; color: var(--muted); background: var(--paper); padding: 0 4px; }
.fp-ed .ed-tchart-hit { position: absolute; inset: 0; cursor: crosshair; z-index: 3; }
.fp-ed .ed-tchart-cross { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--ink); opacity: 0.28; transform: translateX(-50%); pointer-events: none; z-index: 2; }
.fp-ed .ed-tchart-cross[hidden] { display: none; }
.fp-ed .ed-tchart-dot { position: absolute; width: 10px; height: 10px; border-radius: 50%; background: var(--ink); border: 2px solid var(--paper); transform: translate(-50%, 50%); pointer-events: none; z-index: 4; box-shadow: 0 1px 4px rgba(0,0,0,0.25); }
.fp-ed .ed-tchart-dot[hidden] { display: none; }
.fp-ed .ed-tchart-tip { position: absolute; top: 4px; background: var(--ink); color: var(--paper); padding: 6px 9px; border-radius: var(--r); font-size: 0.74rem; line-height: 1.3; white-space: nowrap; pointer-events: none; z-index: 5; box-shadow: 0 4px 14px rgba(0,0,0,0.18); }
.fp-ed .ed-tchart-tip[hidden] { display: none; }
.fp-ed .ed-tchart-tip strong { display: block; font-weight: 600; }
.fp-ed .ed-tchart-tip span { display: block; opacity: 0.7; font-size: 0.68rem; }
.fp-ed .ed-tchart-xax { display: flex; justify-content: space-between; font-size: 0.72rem; color: var(--muted); margin: 8px 0 0 44px; }
.fp-ed .ed-tchart-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.fp-ed .ed-tchart-stat { display: flex; flex-direction: column; gap: 3px; }
.fp-ed .ed-tchart-stat span { font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.fp-ed .ed-tchart-stat strong { font-family: var(--serif, Fraunces, serif); font-size: 1.15rem; color: var(--ink); letter-spacing: -0.01em; }
@media (max-width: 560px) {
  .fp-ed .ed-tchart-stats { grid-template-columns: repeat(2, 1fr); }
  .fp-ed .ed-tchart-plot, .fp-ed .ed-tchart-yax { height: 180px; }
}
@media (max-width: 620px) {
  .fp-ed .ed-wsx-grid { grid-template-columns: repeat(2, 1fr); }
  .fp-ed .ed-txn-row { grid-template-columns: 34px 1fr auto; gap: 10px; }
  .fp-ed .ed-txn-chev { display: none; }
  .fp-ed .ed-txn-detail { grid-template-columns: 1fr; padding-left: 16px; }
  .fp-ed .ed-rank-row { grid-template-columns: 22px 1fr auto; }
  .fp-ed .ed-rank-thumb { display: none; }
}
@media (max-width: 420px) { .fp-ed .ed-wsx-grid { grid-template-columns: 1fr; } }

.fp-ed [data-kyc-stage][hidden], .fp-ed [data-kyc-view][hidden], .fp-ed [data-kyc-step][hidden] { display: none !important; }
.fp-ed .ed-kyc-panel { margin-top: 16px; }
.fp-ed .ed-kyc-h1 { font-family: var(--display); font-size: 1.5rem; line-height: 1.12; margin: 8px 0 8px; }
.fp-ed .ed-kyc-loading { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 60px 0; color: var(--muted); }
.fp-ed .ed-kyc-foot { margin-top: 16px; color: var(--muted); font-size: 0.82rem; }

/* status chip (settings / earnings entry) */
.fp-ed .ed-kyc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: var(--pill); font-size: 0.76rem; font-weight: 600; border: 1px solid var(--line-2); background: var(--bg); color: var(--muted); white-space: nowrap; }
.fp-ed .ed-kyc-chip.is-ok { color: #1f7a44; border-color: #bfe2cc; background: #eef7f1; }
.fp-ed .ed-kyc-chip.is-pending { color: #3a557e; border-color: #cdd8ea; background: #eef2f8; }
.fp-ed .ed-kyc-chip.is-warn { color: #b4322a; border-color: #ecc9c3; background: #fbefec; }
.fp-ed .ed-kyc-chip.is-muted { color: var(--muted); }
.fp-ed .ed-kyc-entry .ed-panel-head { align-items: flex-start; gap: 12px; }
.fp-ed .ed-kyc-entry .ed-btn { margin-top: 2px; }

.fp-ed .ed-kyc-spinner { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--line); border-top-color: var(--ink); animation: edKycSpin 0.8s linear infinite; }
@keyframes edKycSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fp-ed .ed-kyc-spinner { animation-duration: 2s; } }

/* step pills */
.fp-ed .ed-kyc-steps { list-style: none; margin: 18px 0 2px; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.fp-ed .ed-kyc-step-pill { display: inline-flex; align-items: center; gap: 8px; padding: 7px 13px 7px 8px; border: 1px solid var(--line); border-radius: var(--pill); font-size: 0.82rem; font-weight: 600; color: var(--muted); background: var(--bg); }
.fp-ed .ed-kyc-step-pill span { width: 21px; height: 21px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.72rem; background: var(--band); color: var(--muted); }
.fp-ed .ed-kyc-step-pill.is-active { color: var(--ink); border-color: var(--ink); }
.fp-ed .ed-kyc-step-pill.is-active span { background: var(--ink); color: #fff; }
.fp-ed .ed-kyc-step-pill.is-done { color: var(--ink); }
.fp-ed .ed-kyc-step-pill.is-done span { background: var(--ink); color: #fff; }

.fp-ed .ed-kyc-resubmit { margin: 14px 0 0; padding: 11px 14px; border: 1px solid var(--line-2); border-left: 3px solid #b4762a; border-radius: var(--r); background: #fbf3e8; color: #6b4a18; font-size: 0.86rem; }

/* document upload cards */
.fp-ed .ed-kyc-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fp-ed .ed-kyc-doc { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1.5px dashed var(--line-2); border-radius: var(--r2); background: var(--paper); cursor: pointer; transition: border-color 0.15s, background 0.15s; }
.fp-ed .ed-kyc-doc:hover, .fp-ed .ed-kyc-doc:focus-visible { border-color: var(--ink); background: var(--bg); outline: none; }
.fp-ed .ed-kyc-doc.is-filled { border-style: solid; border-color: var(--ink); background: var(--bg); }
.fp-ed .ed-kyc-doc.is-busy { opacity: 0.6; pointer-events: none; }
.fp-ed .ed-kyc-doc-preview { flex: 0 0 auto; width: 64px; height: 48px; border-radius: var(--r); background: var(--band); display: flex; align-items: center; justify-content: center; color: var(--muted); overflow: hidden; }
.fp-ed .ed-kyc-doc-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-ed .ed-kyc-doc-meta { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fp-ed .ed-kyc-doc-meta strong { font-size: 0.9rem; }
.fp-ed .ed-kyc-doc-meta span { font-size: 0.8rem; color: var(--muted); }

/* phone selfie session (QR) */
.fp-ed .ed-kyc-selfie { display: flex; gap: 22px; align-items: flex-start; }
.fp-ed .ed-kyc-selfie.is-received { opacity: 0.9; }
.fp-ed .ed-kyc-qrwrap { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.fp-ed .ed-kyc-qr { width: 232px; height: 232px; display: flex; align-items: center; justify-content: center; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: var(--r2); }
.fp-ed .ed-kyc-qr canvas { display: block; max-width: 100%; height: auto; image-rendering: pixelated; }
.fp-ed .ed-kyc-selfie-main { min-width: 0; }
.fp-ed .ed-kyc-howto { margin: 0 0 12px; padding-left: 20px; display: flex; flex-direction: column; gap: 7px; font-size: 0.9rem; color: var(--ink); }
.fp-ed .ed-kyc-altlink { font-size: 0.82rem; color: var(--muted); margin: 0 0 12px; }
.fp-ed .ed-kyc-altlink code { background: var(--band); padding: 1px 6px; border-radius: var(--r); font-size: 0.8rem; letter-spacing: 0.02em; }
.fp-ed .ed-kyc-selfie-status { font-size: 0.85rem; font-weight: 600; color: var(--muted); min-height: 18px; }
.fp-ed .ed-kyc-selfie-status.is-ok { color: #1f7a44; }
.fp-ed .ed-kyc-selfie-status.is-error { color: #b4322a; }

/* review */
.fp-ed .ed-kyc-review { display: flex; flex-direction: column; }
.fp-ed .ed-kyc-review-row { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 0.92rem; }
.fp-ed .ed-kyc-review-row:last-child { border-bottom: 0; }
.fp-ed .ed-kyc-review-row span { color: var(--muted); }
.fp-ed .ed-kyc-review-row strong { text-align: right; }
.fp-ed .ed-kyc-privacy { margin: 14px 0 0; display: flex; gap: 8px; align-items: flex-start; color: var(--muted); font-size: 0.82rem; }
.fp-ed .ed-kyc-privacy svg { flex: 0 0 auto; margin-top: 1px; }

.fp-ed .ed-kyc-formstatus { margin: 16px 0 0; min-height: 18px; }
.fp-ed .ed-kyc-formstatus.is-error { color: #b4322a; }
.fp-ed .ed-kyc-nav { display: flex; gap: 10px; margin-top: 16px; flex-wrap: wrap; }
.fp-ed .ed-kyc-nav .ed-btn-fill { margin-left: auto; }

/* status result card */
.fp-ed .ed-kyc-result { display: flex; gap: 16px; align-items: flex-start; }
.fp-ed .ed-kyc-result-ico { flex: 0 0 auto; width: 54px; height: 54px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--band); color: var(--ink); }
.fp-ed .ed-kyc-result.is-ok .ed-kyc-result-ico { background: #e7f4ec; color: #1f7a44; }
.fp-ed .ed-kyc-result.is-pending .ed-kyc-result-ico { background: #eef1f6; color: #3a557e; }
.fp-ed .ed-kyc-result.is-warn .ed-kyc-result-ico { background: #fbf0ea; color: #b4322a; }
.fp-ed .ed-kyc-result-main { min-width: 0; }
.fp-ed .ed-kyc-result-main p { color: var(--muted); margin: 0 0 14px; }

.fp-ed.ed-kyc-phone { background: var(--paper); margin: 0; }
.fp-ed .ed-kyc-phone-shell { width: 100%; max-width: 440px; margin: 0 auto; min-height: 100vh; min-height: 100dvh; box-sizing: border-box; padding: 18px 16px 26px; display: flex; flex-direction: column; gap: 16px; }
.fp-ed .ed-kyc-phone-head { display: flex; align-items: center; gap: 10px; }
.fp-ed .ed-kyc-phone-head .brand-mark-image { width: 30px; height: 30px; }
.fp-ed .ed-kyc-phone-brand { display: flex; flex-direction: column; line-height: 1.15; }
.fp-ed .ed-kyc-phone-brand strong { font-family: var(--display); font-size: 0.98rem; }
.fp-ed .ed-kyc-phone-brand small { color: var(--muted); font-size: 0.74rem; }
.fp-ed .ed-kyc-card { background: var(--bg); border: 1px solid var(--line); border-radius: var(--r2); padding: 18px 16px; }
.fp-ed .ed-kyc-card-center { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 30px 18px; }
.fp-ed .ed-kyc-title { font-family: var(--display); font-size: 1.32rem; line-height: 1.15; margin: 6px 0 8px; }
.fp-ed .ed-kyc-lead { color: var(--muted); font-size: 0.92rem; margin: 0; }
.fp-ed .ed-kyc-prompt { font-weight: 600; font-size: 0.95rem; margin: 0 0 12px; }
.fp-ed .ed-kyc-hint { color: var(--muted); font-size: 0.8rem; margin: 12px 0 14px; }
.fp-ed .ed-kyc-stage { position: relative; width: 100%; aspect-ratio: 1 / 1; border-radius: var(--r2); overflow: hidden; background: #15140f; }
.fp-ed .ed-kyc-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); background: #15140f; }
.fp-ed .ed-kyc-oval { position: absolute; top: 50%; left: 50%; width: 62%; height: 78%; transform: translate(-50%, -50%); border: 3px solid rgba(255, 255, 255, 0.92); border-radius: 50%; box-shadow: 0 0 0 2000px rgba(8, 8, 8, 0.42); pointer-events: none; }
.fp-ed .ed-kyc-shutter { width: 100%; justify-content: center; gap: 8px; }
.fp-ed .ed-kyc-status { margin: 12px 0 0; min-height: 18px; font-size: 0.86rem; font-weight: 600; color: var(--muted); text-align: center; }
.fp-ed .ed-kyc-status.is-error { color: #b4322a; }
.fp-ed .ed-kyc-tick, .fp-ed .ed-kyc-warn { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.fp-ed .ed-kyc-tick { background: #e7f4ec; color: #1f7a44; }
.fp-ed .ed-kyc-warn { background: #fbf0ea; color: #b4322a; }
.fp-ed .ed-kyc-phone-foot { margin-top: auto; color: var(--muted); font-size: 0.74rem; text-align: center; padding-top: 8px; }

@media (max-width: 640px) {
  .fp-ed .ed-kyc-selfie { flex-direction: column; align-items: center; gap: 16px; }
  .fp-ed .ed-kyc-selfie-main { width: 100%; }
}
@media (max-width: 560px) {
  .fp-ed .ed-kyc-docs { grid-template-columns: 1fr; }
  .fp-ed .ed-kyc-nav .ed-btn { flex: 1 1 auto; }
  .fp-ed .ed-kyc-nav .ed-btn-fill { margin-left: 0; }
}
@media (max-width: 420px) {
  .fp-ed .ed-kyc-qr { width: 200px; height: 200px; }
  .fp-ed .ed-kyc-result { flex-direction: column; }
}

.fp-ed .ed-locked-input { background: var(--band); color: var(--ink-2); cursor: not-allowed; }
.fp-ed .ed-locked-input:focus { outline: none; box-shadow: none; border-color: var(--line); }
.fp-ed .ed-lock-note { display: flex; align-items: flex-start; gap: 7px; margin-top: 9px; color: var(--muted); font-size: 0.82rem; line-height: 1.5; }
.fp-ed .ed-lock-note svg { flex: 0 0 auto; margin-top: 2px; color: #9a6a00; }
.fp-ed .ed-lock-note a { color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

.fp-ed .ed-actv { position: relative; overflow: hidden; padding: 40px 22px 96px; }
.fp-ed .ed-actv-deco { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.fp-ed .ed-actv-orb { position: absolute; border-radius: 50%; filter: blur(64px); opacity: 0.5; }
.fp-ed .ed-actv-orb-1 { width: 460px; height: 460px; top: -170px; left: -130px; background: radial-gradient(circle at 30% 30%, #ffe7c2, transparent 70%); }
.fp-ed .ed-actv-orb-2 { width: 540px; height: 540px; top: 200px; right: -230px; background: radial-gradient(circle at 60% 40%, #e3ecff, transparent 70%); }
.fp-ed .ed-actv-gridlines { position: absolute; inset: 0; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 46px 46px; opacity: 0.25; -webkit-mask-image: radial-gradient(circle at 50% 18%, #000, transparent 72%); mask-image: radial-gradient(circle at 50% 18%, #000, transparent 72%); }

.fp-ed .ed-actv-shell { position: relative; z-index: 1; max-width: 1140px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 40px; align-items: start; }

/* left rail */
.fp-ed .ed-actv-rail { position: sticky; top: 26px; }
.fp-ed .ed-actv-step { display: inline-flex; align-items: center; gap: 9px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin: 0; }
.fp-ed .ed-actv-step-dot { width: 8px; height: 8px; border-radius: 50%; background: #1f9d57; box-shadow: 0 0 0 4px rgba(31,157,87,0.16); }
.fp-ed .ed-actv-h1 { margin: 16px 0 0; font-size: clamp(2rem, 3vw, 2.7rem); line-height: 1.05; letter-spacing: -0.04em; color: var(--ink); }
.fp-ed .ed-actv-h1 em { font-family: var(--serif); font-style: italic; font-weight: 500; }
.fp-ed .ed-actv-lead { margin: 12px 0 0; color: var(--muted); font-size: 1rem; line-height: 1.6; }

/* 3D tilted live-preview card */
.fp-ed .ed-actv-preview { margin-top: 26px; perspective: 1200px; }
.fp-ed .ed-actv-pv-card { position: relative; border: 1px solid var(--line); border-radius: 16px; background: #fff; padding: 18px; box-shadow: 0 32px 64px -36px rgba(18,22,30,0.55), inset 0 1px 0 rgba(255,255,255,0.7); transform: rotateX(7deg) rotateY(-8deg); transform-style: preserve-3d; transition: transform 0.45s ease; overflow: hidden; }
.fp-ed .ed-actv-preview:hover .ed-actv-pv-card { transform: rotateX(0) rotateY(0); }
.fp-ed .ed-actv-pv-glow { position: absolute; top: -45%; left: -12%; width: 72%; height: 130%; background: linear-gradient(118deg, rgba(255,224,166,0.55), transparent 58%); transform: rotate(8deg); pointer-events: none; }
.fp-ed .ed-actv-pv-top { position: relative; display: flex; align-items: flex-start; gap: 12px; }
.fp-ed .ed-actv-pv-avatar { width: 52px; height: 52px; font-size: 1rem; flex: 0 0 auto; }
.fp-ed .ed-actv-pv-id { min-width: 0; flex: 1; padding-top: 2px; }
.fp-ed .ed-actv-pv-id b { display: block; font-size: 1rem; letter-spacing: -0.01em; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .ed-actv-pv-id span { display: block; font-size: 0.82rem; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .ed-actv-pv-id small { display: block; font-size: 0.72rem; color: var(--muted); margin-top: 2px; }
.fp-ed .ed-actv-pv-badge { flex: 0 0 auto; font-size: 0.58rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: var(--pill); padding: 3px 8px; }
.fp-ed .ed-actv-pv-skills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; min-height: 26px; }
.fp-ed .ed-actv-pv-skills span { font-size: 0.72rem; font-weight: 600; color: var(--ink-2); background: var(--band); border: 1px solid var(--line); border-radius: var(--pill); padding: 3px 10px; }
.fp-ed .ed-actv-pv-skills span.is-muted { background: transparent; color: var(--muted); font-weight: 500; border-style: dashed; }
.fp-ed .ed-actv-pv-foot { display: flex; justify-content: space-between; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 0.66rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }

/* progress */
.fp-ed .ed-actv-progress { margin-top: 22px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,0.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); padding: 14px 16px; }
.fp-ed .ed-actv-progress-top { display: flex; justify-content: space-between; align-items: center; font-size: 0.82rem; color: var(--ink-2); }
.fp-ed .ed-actv-progress-top b { font-family: var(--serif); font-size: 1.05rem; color: var(--ink); }
.fp-ed .ed-actv-progress-bar { margin-top: 10px; height: 8px; border-radius: var(--pill); background: var(--band); overflow: hidden; }
.fp-ed .ed-actv-progress-bar span { display: block; height: 100%; border-radius: var(--pill); background: linear-gradient(90deg, #1f9d57, #43c47e); transition: width 0.4s ease; }
.fp-ed .ed-actv-progress-hint { margin: 9px 0 0; font-size: 0.78rem; color: var(--muted); }

/* perks */
.fp-ed .ed-actv-perks { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 12px; }
.fp-ed .ed-actv-perks li { display: flex; align-items: center; gap: 11px; font-size: 0.9rem; color: var(--ink-2); }
.fp-ed .ed-actv-perks > li > svg { flex: 0 0 auto; box-sizing: content-box; color: var(--ink); width: 16px; height: 16px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }

/* form panels */
.fp-ed .ed-actv-form { display: grid; gap: 20px; }
.fp-ed .ed-actv-panel { position: relative; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 22px 22px 24px; box-shadow: 0 14px 32px -26px rgba(18,22,30,0.5); transition: box-shadow 0.25s ease, border-color 0.25s ease; }
.fp-ed .ed-actv-panel + .ed-actv-panel { margin-top: 0; }
.fp-ed .ed-actv-panel:focus-within { border-color: var(--line-2); box-shadow: 0 20px 44px -26px rgba(18,22,30,0.55); }
.fp-ed .ed-actv-panel.ed-panel-private { background: var(--band); }
.fp-ed .ed-actv-panel .ed-panel-head { align-items: flex-start; justify-content: flex-start; gap: 14px; }
.fp-ed .ed-actv-panel .ed-panel-head > div { flex: 1; min-width: 0; }
.fp-ed .ed-actv-num { flex: 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: var(--ink); color: #fff; font-family: var(--serif); font-size: 0.95rem; box-shadow: 0 6px 14px -8px rgba(0,0,0,0.6); }

/* read-only locked account fields */
.fp-ed .ed-actv-readonly { border: 1px solid var(--line); border-radius: var(--r2); background: #fff; color: var(--ink-2); padding: 11px 13px; font-size: 0.92rem; min-height: 44px; display: flex; align-items: center; word-break: break-word; }

/* submit row */
.fp-ed .ed-actv-submit { display: flex; gap: 12px; align-items: center; margin-top: 8px; }

@media (max-width: 920px) {
  .fp-ed .ed-actv-shell { grid-template-columns: 1fr; gap: 26px; }
  .fp-ed .ed-actv-rail { position: static; }
  .fp-ed .ed-actv-pv-card { transform: none; }
}
@media (max-width: 520px) {
  .fp-ed .ed-actv { padding: 24px 14px 70px; }
  .fp-ed .ed-actv-panel { padding: 18px 15px 20px; }
  .fp-ed .ed-actv-num { width: 32px; height: 32px; font-size: 0.85rem; }
  .fp-ed .ed-actv-submit { flex-direction: column; align-items: stretch; }
  .fp-ed .ed-actv-submit .ed-btn { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-ed .ed-actv-pv-card { transform: none; transition: none; }
  .fp-ed .ed-actv-progress-bar span { transition: none; }
}

.fp-ed .ed-bs { position: relative; overflow: hidden; padding-bottom: 40px; }
.fp-ed .ed-bs .ed-container { position: relative; z-index: 1; }

/* hero */
.fp-ed .ed-bs-hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,0.95fr); gap: 48px; align-items: center; padding: 54px 0 42px; }
.fp-ed .ed-bs-h1 { font-size: clamp(2.6rem, 5.2vw, 4.4rem); margin-top: 18px; }
.fp-ed .ed-bs-h1 em { font-family: var(--serif); font-style: italic; font-weight: 500; }
.fp-ed .ed-bs-cta { justify-content: flex-start; margin-top: 26px; }
@keyframes ed-bs-live-pop { 0% { transform: scale(1); } 32% { transform: scale(1.07); } 100% { transform: scale(1); } }
.fp-ed .is-bs-live-pop { animation: ed-bs-live-pop 0.5s ease; }
@media (prefers-reduced-motion: reduce) { .fp-ed .is-bs-live-pop { animation: none; } }
.fp-ed .ed-bs-cta { margin-top: 28px; }
.fp-ed .ed-bs-trust { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 18px; }
.fp-ed .ed-bs-trust li { display: inline-flex; align-items: center; gap: 8px; font-size: 0.88rem; color: var(--ink-2); }
.fp-ed .ed-bs-trust svg { color: #1f9d57; flex: 0 0 auto; }

/* hero 3D illustration */
.fp-ed .ed-bs-hero-art { position: relative; perspective: 1300px; }
.fp-ed .ed-bs-card { border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 44px 80px -42px rgba(18,22,30,0.55); }
.fp-ed .ed-bs-card-main { position: relative; padding: 22px; transform: rotateX(6deg) rotateY(-9deg); transform-style: preserve-3d; transition: transform 0.5s ease; overflow: hidden; }
.fp-ed .ed-bs-hero-art:hover .ed-bs-card-main { transform: rotateX(0) rotateY(0); }
.fp-ed .ed-bs-card-glow { position: absolute; inset: -40% -10% auto -10%; height: 130%; background: linear-gradient(120deg, rgba(255,224,166,0.5), transparent 60%); transform: rotate(8deg); pointer-events: none; }
.fp-ed .ed-bs-card-head { position: relative; display: flex; align-items: center; gap: 12px; }
.fp-ed .ed-bs-card-head .ed-av { width: 46px; height: 46px; font-size: 0.95rem; flex: 0 0 auto; }
.fp-ed .ed-bs-card-head > div { flex: 1; min-width: 0; }
.fp-ed .ed-bs-card-head > div b { display: block; font-size: 0.98rem; color: var(--ink); }
.fp-ed .ed-bs-card-head > div span { display: block; font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-bs-trend { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px; background: #e7f7ee; color: #1f7a3d; font-size: 0.74rem; font-weight: 700; padding: 4px 9px 4px 7px; border-radius: var(--pill); }
.fp-ed .ed-bs-earn { position: relative; margin-top: 18px; }
.fp-ed .ed-bs-earn-k { display: block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.fp-ed .ed-bs-earn-row { display: flex; align-items: baseline; gap: 10px; margin-top: 5px; }
.fp-ed .ed-bs-earn-row b { font-family: var(--serif); font-size: 1.95rem; letter-spacing: -0.02em; color: var(--ink); line-height: 1; }
.fp-ed .ed-bs-earn-up { display: inline-flex; align-items: center; gap: 3px; color: #1f7a3d; font-weight: 700; font-size: 0.82rem; }
.fp-ed .ed-bs-mini { position: relative; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 16px; }
.fp-ed .ed-bs-mini > div { border: 1px solid var(--line); border-radius: 10px; background: var(--paper); padding: 11px 12px; }
.fp-ed .ed-bs-mini b { display: block; font-family: var(--serif); font-size: 1.05rem; color: var(--ink); line-height: 1; }
.fp-ed .ed-bs-mini span { display: block; font-size: 0.64rem; color: var(--muted); margin-top: 5px; line-height: 1.3; }
.fp-ed .ed-bs-spark { position: relative; margin-top: 14px; height: 62px; border: 1px solid var(--line); border-radius: 10px; background: linear-gradient(180deg, rgba(31,157,87,0.05), transparent); padding: 6px 10px; overflow: hidden; }
.fp-ed .ed-bs-spark svg { width: 100%; height: 100%; display: block; }
.fp-ed .ed-bs-chip { position: absolute; display: inline-flex; align-items: center; gap: 8px; background: var(--ink); color: #fff; font-size: 0.76rem; font-weight: 600; padding: 9px 14px; border-radius: var(--pill); box-shadow: 0 18px 36px -18px rgba(0,0,0,0.55); white-space: nowrap; }
.fp-ed .ed-bs-chip-1 { top: -14px; right: 12px; }
.fp-ed .ed-bs-chip-2 { bottom: -16px; left: -4px; background: #fff; color: var(--ink); border: 1px solid var(--line); }
.fp-ed .ed-bs-dot { width: 8px; height: 8px; border-radius: 50%; background: #43c47e; flex: 0 0 auto; }

/* sections */
.fp-ed .ed-bs-section { padding: 26px 0; }
.fp-ed .ed-bs-head { margin-bottom: 26px; }
.fp-ed .ed-bs-head h2 { margin-top: 12px; }

/* step cards */
.fp-ed .ed-bs-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.fp-ed .ed-bs-step { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 22px 18px 20px; box-shadow: 0 14px 32px -28px rgba(18,22,30,0.5); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.fp-ed .ed-bs-step:hover { transform: translateY(-4px); box-shadow: 0 28px 46px -28px rgba(18,22,30,0.55); }
.fp-ed .ed-bs-step-n { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: var(--ink); color: #fff; font-family: var(--serif); font-size: 1rem; box-shadow: 0 8px 16px -8px rgba(0,0,0,0.6); }
.fp-ed .ed-bs-step h3 { font-size: 1.02rem; letter-spacing: -0.01em; margin: 16px 0 8px; color: var(--ink); }
.fp-ed .ed-bs-step p { font-size: 0.88rem; color: var(--muted); line-height: 1.55; margin: 0; }

/* benefit cards */
.fp-ed .ed-bs-benefits { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.fp-ed .ed-bs-benefit { border: 1px solid var(--line); border-radius: 14px; background: var(--paper); padding: 20px 18px; }
.fp-ed .ed-bs-ic { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; border: 1px solid var(--line); background: #fff; color: var(--ink); margin-bottom: 14px; }
.fp-ed .ed-bs-benefit b { display: block; font-size: 0.98rem; color: var(--ink); }
.fp-ed .ed-bs-benefit span:not(.ed-bs-ic) { display: block; font-size: 0.84rem; color: var(--muted); margin-top: 4px; }

/* final cta (kept light for button contrast) */
.fp-ed .ed-bs-final { box-shadow: 0 30px 60px -40px rgba(18,22,30,0.5); }

@media (max-width: 900px) {
  .fp-ed .ed-bs-hero { grid-template-columns: 1fr; gap: 34px; padding-top: 40px; }
  .fp-ed .ed-bs-hero-art { order: -1; margin: 0 auto; max-width: 440px; width: 100%; }
  .fp-ed .ed-bs-card-main { transform: none; }
  .fp-ed .ed-bs-steps, .fp-ed .ed-bs-benefits { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .fp-ed .ed-bs-steps, .fp-ed .ed-bs-benefits { grid-template-columns: 1fr; }
  .fp-ed .ed-bs-chip-1 { right: 2px; }
  .fp-ed .ed-bs-chip { font-size: 0.7rem; padding: 7px 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-ed .ed-bs-card-main, .fp-ed .ed-bs-step { transition: none; transform: none; }
}

.fp-ed .ed-sps { position: relative; overflow: hidden; }
.fp-ed .ed-sps .ed-container { position: relative; z-index: 1; }
.fp-ed .ed-sps .ed-auth-form { counter-reset: sps; }
.fp-ed .ed-sps .ed-panel { background: #fff; border-radius: 14px; box-shadow: 0 14px 32px -28px rgba(18,22,30,0.5); transition: box-shadow 0.25s ease, border-color 0.25s ease; }
.fp-ed .ed-sps .ed-panel:focus-within { border-color: var(--line-2); box-shadow: 0 20px 44px -26px rgba(18,22,30,0.55); }
.fp-ed .ed-sps .ed-panel.ed-panel-private { background: var(--band); }
.fp-ed .ed-sps .ed-panel .ed-panel-head { justify-content: flex-start; align-items: flex-start; gap: 14px; }
.fp-ed .ed-sps .ed-panel .ed-panel-head > div { flex: 1; min-width: 0; }
.fp-ed .ed-sps .ed-panel .ed-panel-head::before { counter-increment: sps; content: counter(sps, decimal-leading-zero); order: -1; flex: 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: var(--ink); color: #fff; font-family: var(--serif); font-size: 0.95rem; box-shadow: 0 6px 14px -8px rgba(0,0,0,0.6); }
@media (max-width: 520px) {
  .fp-ed .ed-sps .ed-panel .ed-panel-head::before { width: 32px; height: 32px; font-size: 0.85rem; }
}

@media (max-width: 560px) {
  .fp-ed .ed-actv-panel .ed-panel-head > button,
  .fp-ed .ed-sps .ed-panel .ed-panel-head > button {
    flex: 1 0 100%;
    margin-top: 8px;
    width: 100%;
  }
}


/* shimmer skeleton (neutral loading state — no sample user-data) */
.fp-ed .ed-skel-line { display: block; height: 12px; border-radius: 6px; background: linear-gradient(90deg, var(--band) 25%, #efece6 50%, var(--band) 75%); background-size: 200% 100%; animation: ed-skel 1.5s ease-in-out infinite; }
.fp-ed .ed-skel-line-lg { height: 24px; border-radius: 8px; }
.fp-ed .ed-card-skel, .fp-ed .ed-spot-skel { pointer-events: none; }
.fp-ed .ed-card-skel .ed-card-body { display: block; }
@keyframes ed-skel { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .fp-ed .ed-skel-line, .fp-ed .ed-skel-dot { animation: none; } }

.fp-ed .ed-home-hero { position: relative; z-index: 3; }
.fp-ed .ed-home-hero > .ed-container { position: relative; z-index: 1; }
.fp-ed .ed-home-deco .ed-actv-orb-1 { width: 520px; height: 520px; top: -200px; left: -160px; background: radial-gradient(circle at 30% 30%, #ffe2b8, transparent 70%); opacity: 0.55; }
.fp-ed .ed-home-deco .ed-actv-orb-2 { width: 560px; height: 560px; top: -150px; right: -220px; left: auto; background: radial-gradient(circle at 60% 40%, #dce7ff, transparent 70%); opacity: 0.5; }
.fp-ed .ed-home-deco .ed-actv-gridlines { -webkit-mask-image: radial-gradient(circle at 50% 30%, #000, transparent 78%); mask-image: radial-gradient(circle at 50% 30%, #000, transparent 78%); opacity: 0.22; }
.fp-ed .ed-home-deco .ed-actv-orb-1 { display: none; }
.fp-ed .ed-actv-orb-1,
.fp-ed .ed-actv-pv-glow { display: none; }

/* premium search */
.fp-ed .ed-home-search-shell { position: relative; width: min(680px, 100%); margin: 34px auto 0; z-index: 2; }
.fp-ed .ed-home-search { box-shadow: 0 24px 50px -28px rgba(18,22,30,0.4); border-radius: var(--pill); }

/* floating ambient cards (wide desktop only — never overlap the centred hero) */
.fp-ed .ed-home-float-thumb .ed-mock { position: absolute; inset: 0; border-radius: 9px; }
.fp-ed .ed-home-float-2 { top: 26%; right: 1.5%; transform: rotate(4deg); animation-delay: 1.4s; }
.fp-ed .ed-home-float-3 { bottom: 16%; left: 3%; transform: rotate(3deg); animation-delay: 2.6s; }
@keyframes ed-home-floaty { 0%, 100% { translate: 0 0; } 50% { translate: 0 -13px; } }

.fp-ed .ed-home .ed-card { box-shadow: 0 16px 36px -30px rgba(18,22,30,0.45); transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; }
.fp-ed .ed-home .ed-card:hover { transform: translateY(-5px); box-shadow: 0 30px 50px -30px rgba(18,22,30,0.5); border-color: var(--line-2); }
.fp-ed .ed-home .ed-spot { box-shadow: 0 26px 56px -38px rgba(18,22,30,0.5); transition: transform 0.3s ease, box-shadow 0.3s ease; border-radius: var(--r2); }
.fp-ed .ed-home .ed-spot:hover { transform: translateY(-4px); box-shadow: 0 40px 70px -38px rgba(18,22,30,0.55); }
.fp-ed .ed-home .ed-list-row { transition: background 0.2s ease, padding-left 0.2s ease; }
.fp-ed .ed-home .ed-list-row:hover { background: rgba(255,255,255,0.6); }

.fp-ed .ed-home-stats .ed-stat { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 22px 20px; box-shadow: 0 14px 32px -28px rgba(18,22,30,0.45); }
.fp-ed .ed-home-stats .ed-stat strong { font-family: var(--serif); }

.fp-ed .ed-home-step { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 24px 20px; box-shadow: 0 14px 32px -28px rgba(18,22,30,0.45); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.fp-ed .ed-home-step:hover { transform: translateY(-4px); box-shadow: 0 28px 46px -28px rgba(18,22,30,0.5); }
.fp-ed .ed-home-step-n { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: var(--ink); color: #fff; font-family: var(--serif); font-size: 1.05rem; box-shadow: 0 8px 16px -8px rgba(0,0,0,0.6); }
.fp-ed .ed-home-step h3 { font-size: 1.08rem; letter-spacing: -0.01em; margin: 16px 0 8px; color: var(--ink); }
.fp-ed .ed-home-step p { font-size: 0.92rem; color: var(--muted); line-height: 1.55; margin: 0; }

.fp-ed .ed-home-cta { position: relative; overflow: hidden; }
.fp-ed .ed-home-cta-deco { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(620px 320px at 78% -10%, rgba(255,224,166,0.16), transparent 70%), radial-gradient(560px 300px at 12% 120%, rgba(120,150,255,0.14), transparent 70%); }
.fp-ed .ed-home-cta .ed-cta-in { position: relative; z-index: 1; }

.fp-ed .ed-hiw-track + .ed-hiw-track { margin-top: 64px; }
.fp-ed .ed-hiw-track-head { display: flex; align-items: baseline; gap: 6px 12px; flex-wrap: wrap; }
.fp-ed .ed-hiw-track-head h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); letter-spacing: -0.02em; margin: 0; color: var(--ink); }
.fp-ed .ed-hiw-track-head span { color: var(--muted); font-size: 0.95rem; }
.fp-ed .ed-hiw-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 26px; }
/* trust & safety feature cards */
.fp-ed .ed-hiw-trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 32px; }
.fp-ed .ed-hiw-feature { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 22px 20px; box-shadow: 0 14px 32px -28px rgba(18,22,30,0.45); display: grid; gap: 9px; align-content: start; }
.fp-ed .ed-hiw-feature-ic { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: rgba(37,99,235,0.09); color: var(--brand); }
.fp-ed .ed-hiw-feature-ic svg { width: 20px; height: 20px; }
.fp-ed .ed-hiw-feature h3 { font-size: 1.04rem; letter-spacing: -0.01em; margin: 4px 0 0; color: var(--ink); }
.fp-ed .ed-hiw-feature p { font-size: 0.9rem; color: var(--muted); line-height: 1.55; margin: 0; }
.fp-ed .ed-hiw-faq { margin-top: 28px; border-top: 1px solid var(--line); }
.fp-ed .ed-hiw-faq-item { border-bottom: 1px solid var(--line); }
.fp-ed .ed-hiw-faq-item > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 4px; font-family: var(--display); font-weight: 600; font-size: 1.04rem; color: var(--ink); }
.fp-ed .ed-hiw-faq-item > summary::-webkit-details-marker { display: none; }
.fp-ed .ed-hiw-faq-chev { flex: none; width: 18px; height: 18px; color: var(--muted); transition: transform 0.2s ease; }
.fp-ed .ed-hiw-faq-item[open] .ed-hiw-faq-chev { transform: rotate(180deg); }
.fp-ed .ed-hiw-faq-a { padding: 0 4px 20px; color: var(--muted); font-size: 0.95rem; line-height: 1.6; max-width: 760px; }
.fp-ed .ed-hiw-faq-a strong { color: var(--ink); font-weight: 600; }
@media (max-width: 960px) {
  .fp-ed .ed-hiw-steps { grid-template-columns: repeat(2, 1fr); }
  .fp-ed .ed-hiw-trust { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .fp-ed .ed-hiw-steps, .fp-ed .ed-hiw-trust { grid-template-columns: 1fr; }
  .fp-ed .ed-hiw-track + .ed-hiw-track { margin-top: 44px; }
}

.fp-hiw main { font-family: "Plus Jakarta Sans", "Inter", sans-serif; }
.fp-hiw .ed-h1, .fp-hiw .ed-h2, .fp-hiw .ed-hiw-track-head h2, .fp-hiw .ed-home-step h3, .fp-hiw .ed-hiw-feature h3, .fp-hiw .ed-hiw-faq-item > summary { font-family: "Plus Jakarta Sans", "Space Grotesk", sans-serif; letter-spacing: -0.025em; }
.fp-hiw .ed-h1 { font-weight: 800; }
.fp-hiw .ed-h2, .fp-hiw .ed-hiw-track-head h2 { font-weight: 800; }
/* stat numbers: serif → modern extrabold sans */
.fp-hiw [data-hiw-stats] .ed-stat strong { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; letter-spacing: -0.03em; }
.fp-hiw [data-hiw-stats] { max-width: 920px; margin: 0 auto; }
/* hero: centre the CTAs (were left → mismatched the centered hero text) */
.fp-hiw .ed-hero .ed-cta-actions { justify-content: center; }
/* section heads: kicker stacked ABOVE the heading, centred (was a cramped baseline row) */
.fp-hiw .ed-hiw-track-head { display: grid; gap: 12px; justify-items: center; text-align: center; max-width: 720px; margin: 0 auto 6px; }
.fp-hiw .ed-hiw-track-head .ed-kicker { margin: 0; }
.fp-hiw .ed-hiw-track-head h2 { font-size: clamp(1.85rem, 3.4vw, 2.6rem); }
/* cards: bigger radius + on-brand purple numbered badge */
.fp-hiw .ed-home-step, .fp-hiw .ed-hiw-feature { border-radius: 18px; }
.fp-hiw .ed-hiw-steps .ed-home-step-n { background: var(--brand); box-shadow: 0 10px 20px -10px rgba(37,99,235,0.55); }
.fp-hiw .ed-hiw-faq { border-top: 0; display: grid; gap: 10px; max-width: 820px; margin: 28px auto 0; }
.fp-hiw .ed-hiw-faq-item { border: 1px solid var(--line-2); border-radius: 14px; background: #fff; padding: 2px 18px; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.fp-hiw .ed-hiw-faq-item:hover, .fp-hiw .ed-hiw-faq-item[open] { border-color: var(--brand); }
.fp-hiw .ed-hiw-faq-item[open] { box-shadow: 0 14px 30px -22px rgba(37,99,235,0.4); }
.fp-hiw .ed-hiw-faq-item > summary { padding: 18px 0; }
.fp-hiw .ed-hiw-faq-a { padding: 0 0 18px; max-width: none; }

.fp-hiw .ed-hiw-promo { display: grid; grid-template-columns: 1.06fr 0.94fr; gap: 28px; align-items: center; background: var(--band); border: 1px solid var(--line); border-radius: 24px; padding: 38px 42px; }
.fp-hiw .ed-hiw-promo-text { text-align: left; }
.fp-hiw .ed-hiw-promo-text .ed-kicker { margin-bottom: 14px; }
.fp-hiw .ed-hiw-promo-text .ed-h2 { font-size: clamp(1.7rem, 2.7vw, 2.4rem); margin: 0; }
.fp-hiw .ed-hiw-promo-text p { margin: 14px 0 24px; color: var(--muted); max-width: 46ch; line-height: 1.6; }
.fp-hiw .ed-hiw-promo-cta { display: inline-flex; align-items: center; gap: 8px; background: #14a800; color: #fff; font-weight: 700; font-size: 0.95rem; padding: 13px 24px; border-radius: 999px; text-decoration: none; box-shadow: 0 12px 24px -12px rgba(20,168,0,0.7); transition: background 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease; }
.fp-hiw .ed-hiw-promo-cta svg { width: 17px; height: 17px; flex: none; transition: transform 0.15s ease; }
.fp-hiw .ed-hiw-promo-cta:hover { background: #0f8e00; transform: translateY(-2px); box-shadow: 0 18px 32px -14px rgba(20,168,0,0.8); }
.fp-hiw .ed-hiw-promo-cta:hover svg { transform: translateX(3px); }
.fp-hiw .ed-hiw-promo-art { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px; display: flex; align-items: center; justify-content: center; min-height: 188px; box-shadow: 0 22px 44px -30px rgba(18,22,30,0.5); }
.fp-hiw .ed-hiw-promo-glow { position: absolute; width: 280px; height: 280px; right: -80px; top: -120px; border-radius: 50%; background: radial-gradient(circle, rgba(20,168,0,0.18), transparent 70%); pointer-events: none; }

.fp-hiw .ed-hiw-viz { position: relative; width: 100%; max-width: 330px; display: grid; gap: 15px; padding: 17px 18px; border-radius: 16px; background: linear-gradient(180deg, #fbfdfb, #f3f8f3); border: 1px solid #eaf0ea; box-shadow: 0 14px 32px -24px rgba(20,168,0,0.45); }
.fp-hiw .ed-hiw-viz-head { display: flex; align-items: center; gap: 11px; }
.fp-hiw .ed-hiw-viz-av { width: 34px; height: 34px; border-radius: 50%; flex: none; background: linear-gradient(150deg, #2563eb, #14a800); box-shadow: 0 6px 14px -7px rgba(20,168,0,0.7); }
.fp-hiw .ed-hiw-viz-lines { display: grid; gap: 6px; flex: 1; min-width: 0; }
.fp-hiw .ed-hiw-viz-lines i { display: block; height: 7px; border-radius: 4px; }
.fp-hiw .ed-hiw-viz-l1 { width: 60%; background: #dfe5df; }
.fp-hiw .ed-hiw-viz-l2 { width: 38%; background: #eaeeea; }
.fp-hiw .ed-hiw-viz-live { width: 10px; height: 10px; border-radius: 50%; flex: none; background: #14a800; box-shadow: 0 0 0 0 rgba(20,168,0,0.5); animation: ed-hiw-live 2s ease-out infinite; }
@keyframes ed-hiw-live { 0% { box-shadow: 0 0 0 0 rgba(20,168,0,0.5); } 70%, 100% { box-shadow: 0 0 0 9px rgba(20,168,0,0); } }
.fp-hiw .ed-hiw-viz-chart { display: flex; align-items: flex-end; justify-content: space-between; gap: 9px; height: 62px; padding: 0 2px; border-bottom: 1.5px solid #e6ebe6; }
.fp-hiw .ed-hiw-viz-bar { flex: 1; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, #8af598, #14a800); box-shadow: 0 6px 12px -7px rgba(20,168,0,0.6); transform-origin: bottom; animation: ed-hiw-grow 2.8s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 0.17s); height: 35%; }
@keyframes ed-hiw-grow { 0%, 100% { height: 28%; opacity: 0.7; } 50% { height: 92%; opacity: 1; } }
.fp-hiw .ed-hiw-viz-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fp-hiw .ed-hiw-viz-pill { height: 14px; width: 94px; border-radius: 8px; background: linear-gradient(90deg, #d3f0da, #b3e0c2); }
.fp-hiw .ed-hiw-viz-check { width: 30px; height: 30px; flex: none; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(150deg, #2bb24c, #14a800); box-shadow: 0 9px 16px -8px rgba(20,168,0,0.75); animation: ed-hiw-bob 2.6s ease-in-out infinite; }
.fp-hiw .ed-hiw-viz-check svg { width: 16px; height: 16px; }
@keyframes ed-hiw-bob { 0%, 100% { transform: translateY(2px); } 50% { transform: translateY(-3px); } }

@keyframes ed-hiw-reveal { to { opacity: 1; transform: none; } }
.fp-hiw .ed-stats, .fp-hiw .ed-hiw-track-head, .fp-hiw .ed-hiw-promo, .fp-hiw .ed-cta,
.fp-hiw .ed-hiw-steps .ed-home-step, .fp-hiw .ed-hiw-trust .ed-hiw-feature, .fp-hiw .ed-hiw-faq .ed-hiw-faq-item { opacity: 0; transform: translateY(22px); animation: ed-hiw-reveal 0.7s ease 1.5s forwards; }
.fp-hiw .ed-stats.is-in, .fp-hiw .ed-hiw-track-head.is-in, .fp-hiw .ed-hiw-promo.is-in, .fp-hiw .ed-cta.is-in,
.fp-hiw .ed-hiw-steps.is-in .ed-home-step, .fp-hiw .ed-hiw-trust.is-in .ed-hiw-feature, .fp-hiw .ed-hiw-faq.is-in .ed-hiw-faq-item { opacity: 1; transform: none; animation: none; transition: opacity 0.6s ease, transform 0.6s ease; }
.fp-hiw .ed-hiw-steps.is-in .ed-home-step:nth-child(2), .fp-hiw .ed-hiw-trust.is-in .ed-hiw-feature:nth-child(2), .fp-hiw .ed-hiw-faq.is-in .ed-hiw-faq-item:nth-child(2) { transition-delay: 0.09s; }
.fp-hiw .ed-hiw-steps.is-in .ed-home-step:nth-child(3), .fp-hiw .ed-hiw-trust.is-in .ed-hiw-feature:nth-child(3), .fp-hiw .ed-hiw-faq.is-in .ed-hiw-faq-item:nth-child(3) { transition-delay: 0.18s; }
.fp-hiw .ed-hiw-steps.is-in .ed-home-step:nth-child(4), .fp-hiw .ed-hiw-trust.is-in .ed-hiw-feature:nth-child(4), .fp-hiw .ed-hiw-faq.is-in .ed-hiw-faq-item:nth-child(4) { transition-delay: 0.27s; }
.fp-hiw .ed-hiw-faq.is-in .ed-hiw-faq-item:nth-child(5) { transition-delay: 0.36s; }

@media (max-width: 760px) {
  .fp-hiw .ed-hiw-promo { grid-template-columns: 1fr; gap: 22px; padding: 28px 22px; }
  .fp-hiw .ed-hiw-viz { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-hiw .ed-stats, .fp-hiw .ed-hiw-track-head, .fp-hiw .ed-hiw-promo, .fp-hiw .ed-cta,
  .fp-hiw .ed-hiw-steps .ed-home-step, .fp-hiw .ed-hiw-trust .ed-hiw-feature, .fp-hiw .ed-hiw-faq .ed-hiw-faq-item { opacity: 1 !important; transform: none !important; animation: none !important; }
  .fp-hiw .ed-hiw-viz-bar, .fp-hiw .ed-hiw-viz-live, .fp-hiw .ed-hiw-viz-check { animation: none !important; }
  .fp-hiw .ed-hiw-viz-bar { height: 62% !important; }
}

.fp-hiw .ed-hiw-cta { display: inline-flex; align-items: center; gap: 8px; background: #14a800; color: #fff; font-weight: 700; font-size: 0.95rem; padding: 12px 22px; border-radius: 999px; text-decoration: none; box-shadow: 0 12px 24px -12px rgba(20,168,0,0.7); transition: background 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease; }
.fp-hiw .ed-hiw-cta svg { width: 16px; height: 16px; flex: none; transition: transform 0.15s ease; }
.fp-hiw .ed-hiw-cta:hover { background: #0f8e00; transform: translateY(-2px); box-shadow: 0 18px 32px -14px rgba(20,168,0,0.8); }
.fp-hiw .ed-hiw-cta:hover svg { transform: translateX(3px); }
.fp-hiw .ed-hiw-cta.is-light { background: #fff; color: var(--ink); box-shadow: 0 14px 30px -14px rgba(0,0,0,0.5); }
.fp-hiw .ed-hiw-cta.is-light:hover { background: #f1f1f3; }
.fp-hiw .ed-hiw-rows { display: grid; gap: 60px; }
.fp-hiw .ed-hiw-row { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.fp-hiw .ed-hiw-row.is-flip .ed-hiw-row-media { order: 2; }
.fp-hiw .ed-hiw-row-media { border-radius: 20px; overflow: hidden; aspect-ratio: 3 / 2; box-shadow: 0 34px 64px -38px rgba(18,22,30,0.6); }
.fp-hiw .ed-hiw-row-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-hiw .ed-hiw-row-body { text-align: left; }
.fp-hiw .ed-hiw-row-body h2 { font-size: clamp(1.7rem, 2.8vw, 2.5rem); margin: 0 0 14px; }
.fp-hiw .ed-hiw-row-body > p { color: var(--muted); line-height: 1.65; margin: 0 0 20px; max-width: 50ch; }
.fp-hiw .ed-hiw-row-sub { display: grid; gap: 14px; margin: 0 0 24px; }
.fp-hiw .ed-hiw-row-sub-item { display: flex; gap: 11px; align-items: flex-start; }
.fp-hiw .ed-hiw-row-sub-item > svg { width: 19px; height: 19px; flex: none; color: #14a800; margin-top: 2px; }
.fp-hiw .ed-hiw-row-sub-item strong { display: block; font-size: 0.98rem; font-weight: 700; }
.fp-hiw .ed-hiw-row-sub-item span { color: var(--muted); font-size: 0.88rem; line-height: 1.5; }
.fp-hiw .ed-hiw-banner { position: relative; border-radius: 22px; overflow: hidden; min-height: 380px; display: flex; align-items: center; }
.fp-hiw .ed-hiw-banner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fp-hiw .ed-hiw-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(9,12,18,0.9) 0%, rgba(9,12,18,0.62) 42%, rgba(9,12,18,0.12) 100%); }
.fp-hiw .ed-hiw-banner-in { position: relative; z-index: 1; padding: 50px 54px; max-width: 620px; }
.fp-hiw .ed-hiw-banner-in .ed-kicker { color: #a8c4ff; }
.fp-hiw .ed-hiw-banner-in h2 { color: #fff; font-size: clamp(2rem, 3.6vw, 3rem); margin: 8px 0 12px; letter-spacing: -0.025em; }
.fp-hiw .ed-hiw-banner-in p { color: rgba(255,255,255,0.86); font-size: 1.08rem; line-height: 1.6; margin: 0 0 26px; max-width: 46ch; }
.fp-hiw .ed-hiw-row, .fp-hiw .ed-hiw-banner { opacity: 0; transform: translateY(24px); animation: ed-hiw-reveal 0.7s ease 1.5s forwards; }
.fp-hiw .ed-hiw-row.is-in, .fp-hiw .ed-hiw-banner.is-in { opacity: 1; transform: none; animation: none; transition: opacity 0.65s ease, transform 0.65s ease; }
@media (max-width: 760px) {
  .fp-hiw .ed-hiw-row { grid-template-columns: 1fr; gap: 20px; }
  .fp-hiw .ed-hiw-row.is-flip .ed-hiw-row-media { order: 0; }
  .fp-hiw .ed-hiw-rows { gap: 44px; }
  .fp-hiw .ed-hiw-banner-in { padding: 32px 24px; }
  .fp-hiw .ed-hiw-banner::after { background: linear-gradient(180deg, rgba(9,12,18,0.5) 0%, rgba(9,12,18,0.9) 100%); }
}
@media (prefers-reduced-motion: reduce) { .fp-hiw .ed-hiw-row, .fp-hiw .ed-hiw-banner { opacity: 1 !important; transform: none !important; animation: none !important; } }

.fp-guide main { font-family: "Plus Jakarta Sans", "Inter", sans-serif; }
.fp-guide .ed-h1, .fp-guide .ed-h2, .fp-guide .ed-h3 { font-family: "Plus Jakarta Sans", "Inter", sans-serif; font-weight: 800; letter-spacing: -0.025em; }
.fp-guide .ed-section { padding: 48px 0; }

.fp-guide .ed-gd-hero { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr); gap: 52px; align-items: center; padding: 30px 0 40px; }
.fp-guide .ed-gd-hero-copy .ed-kicker { color: var(--brand); }
.fp-guide .ed-gd-hero-copy .ed-h1 { font-size: clamp(2.3rem, 4.6vw, 3.5rem); line-height: 1.04; margin: 12px 0 0; }
.fp-guide .ed-gd-hero-copy .ed-lead { margin: 18px 0 0; max-width: 38ch; }
.fp-guide .ed-gd-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

.fp-guide .ed-gd-art { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 34px; display: flex; align-items: center; justify-content: center; min-height: 340px; box-shadow: 0 36px 70px -40px rgba(18,22,30,0.55); }
.fp-guide .ed-gd-art-glow { position: absolute; width: 360px; height: 360px; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(20,168,0,0.18), transparent 66%); pointer-events: none; }
/* unique "income growth" chart — a green trend line that draws itself upward + soft area fill + a glowing peak dot (loops) */
.fp-guide .ed-gd-chart { position: relative; width: 100%; max-width: 380px; height: auto; overflow: visible; }
.fp-guide .ed-gd-grid { stroke: #ebeeeb; stroke-width: 1; stroke-dasharray: 2 7; }
.fp-guide .ed-gd-area { opacity: 1; }
.fp-guide .ed-gd-line { filter: drop-shadow(0 6px 9px rgba(20,168,0,0.3)); }
/* a brighter "data pulse" segment that runs along the line on a seamless loop */
.fp-guide .ed-gd-pulse-line { stroke-dasharray: 16 84; stroke-dashoffset: 100; filter: drop-shadow(0 0 5px rgba(43,178,76,0.85)); animation: ed-gd-pulse-run 2.8s linear infinite; }
@keyframes ed-gd-pulse-run { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
.fp-guide .ed-gd-tip, .fp-guide .ed-gd-tip-halo { transform-box: fill-box; transform-origin: center; }
.fp-guide .ed-gd-tip-halo { opacity: 0; animation: ed-gd-tip-halo 2.6s ease-in-out infinite; }
@keyframes ed-gd-tip-halo { 0% { opacity: 0; transform: scale(0.5); } 35% { opacity: 0.38; transform: scale(1); } 75% { opacity: 0.04; transform: scale(1.7); } 100% { opacity: 0; transform: scale(1.85); } }
/* advanced widget frame: header (avatar + skeleton + trend chip) + chart + footer ticks */
.fp-guide .ed-gd-card { position: relative; width: 100%; max-width: 384px; background: linear-gradient(180deg, #ffffff, #f7faf7); border: 1px solid #eef1ee; border-radius: 20px; padding: 18px 18px 15px; box-shadow: 0 24px 46px -28px rgba(20,168,0,0.34), 0 2px 6px -2px rgba(18,22,30,0.07); display: grid; gap: 13px; }
.fp-guide .ed-gd-card-head { display: flex; align-items: center; gap: 11px; }
.fp-guide .ed-gd-card-av { width: 36px; height: 36px; border-radius: 11px; flex: none; background: linear-gradient(150deg, #2563eb, #14a800); box-shadow: 0 6px 14px -7px rgba(20,168,0,0.7); }
.fp-guide .ed-gd-card-lines { display: grid; gap: 6px; flex: 1; min-width: 0; }
.fp-guide .ed-gd-card-lines i { display: block; height: 7px; border-radius: 4px; background: #e4e8e4; }
.fp-guide .ed-gd-card-lines i.l2 { width: 54%; background: #eef1ee; }
.fp-guide .ed-gd-card-meta { display: grid; gap: 7px; flex: 1; min-width: 0; }
.fp-guide .ed-gd-amount { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.7rem; letter-spacing: -0.012em; line-height: 1.05; margin-top: 8px; white-space: nowrap; color: #0b0b0c; font-variant-numeric: tabular-nums; }
.fp-guide .ed-gd-subline { display: block; height: 7px; width: 56%; border-radius: 4px; background: #e9ece9; }
.fp-guide .ed-gd-card-trend { display: inline-flex; align-items: center; gap: 4px; flex: none; padding: 5px 10px; border-radius: 999px; background: rgba(20,168,0,0.12); color: #0f8e00; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 0.72rem; letter-spacing: 0.02em; animation: ed-gd-trend-pulse 2.4s ease-in-out infinite; }
.fp-guide .ed-gd-card-trend svg { width: 12px; height: 12px; }
@keyframes ed-gd-trend-pulse { 0%, 100% { transform: translateY(0); box-shadow: 0 0 0 0 rgba(20,168,0,0); } 50% { transform: translateY(-1.5px); box-shadow: 0 7px 15px -8px rgba(20,168,0,0.6); } }
.fp-guide .ed-gd-card-foot { display: flex; align-items: center; justify-content: space-between; padding: 0 2px; }
.fp-guide .ed-gd-tick { width: 28px; height: 6px; border-radius: 4px; background: #eaeeea; }
.fp-guide .ed-gd-tick.is-on { background: linear-gradient(90deg, #8af598, #14a800); }
.fp-guide .ed-gd-dot { transform-box: fill-box; transform-origin: center; }
.fp-guide .ed-gd-guide { stroke: #cfe9d4; stroke-width: 1.5; stroke-dasharray: 3 5; }

/* buyer hero widget — "project posted -> talent coming in" (same glass-card family, no $ earnings) */
.fp-guide .ed-gd-hire-meta { display: grid; gap: 7px; flex: 1; min-width: 0; }
.fp-guide .ed-gd-hire-title { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.04rem; letter-spacing: -0.01em; line-height: 1; color: #0b0b0c; }
.fp-guide .ed-gd-live { width: 7px; height: 7px; border-radius: 50%; flex: none; background: #14a800; animation: ed-gd-live-dot 1.8s ease-in-out infinite; }
@keyframes ed-gd-live-dot { 0%, 100% { box-shadow: 0 0 0 0 rgba(20,168,0,0.5); } 50% { box-shadow: 0 0 0 5px rgba(20,168,0,0); } }
.fp-guide .ed-gd-hire-list { display: grid; gap: 9px; margin-top: 2px; }
.fp-guide .ed-gd-hire-row { display: flex; align-items: center; gap: 10px; padding: 8px 9px; border-radius: 12px; border: 1px solid #edf0ed; background: #fff; animation: ed-gd-hire-glow 3.6s ease-in-out infinite; }
.fp-guide .ed-gd-hire-row:nth-child(2) { animation-delay: 1.2s; }
.fp-guide .ed-gd-hire-row:nth-child(3) { animation-delay: 2.4s; }
@keyframes ed-gd-hire-glow { 0%, 100% { background: #fff; border-color: #edf0ed; } 14%, 40% { background: rgba(20,168,0,0.06); border-color: rgba(20,168,0,0.3); } }
.fp-guide .ed-gd-hire-av { width: 30px; height: 30px; border-radius: 9px; flex: none; background: linear-gradient(150deg, #2563eb, #14a800); }
.fp-guide .ed-gd-hire-row:nth-child(2) .ed-gd-hire-av { background: linear-gradient(150deg, #2b6fd6, #14a800); }
.fp-guide .ed-gd-hire-row:nth-child(3) .ed-gd-hire-av { background: linear-gradient(150deg, #d65a9c, #3b82f6); }
.fp-guide .ed-gd-hire-bars { display: grid; gap: 6px; flex: 1; min-width: 0; }
.fp-guide .ed-gd-hire-bars i { display: block; height: 7px; border-radius: 4px; background: #e7eae7; }
.fp-guide .ed-gd-hire-bars i.s { width: 52%; background: #eef1ee; }
.fp-guide .ed-gd-hire-check { flex: none; width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(20,168,0,0.12); color: #14a800; animation: ed-gd-hire-check 3.6s ease-in-out infinite; }
.fp-guide .ed-gd-hire-row:nth-child(2) .ed-gd-hire-check { animation-delay: 1.2s; }
.fp-guide .ed-gd-hire-row:nth-child(3) .ed-gd-hire-check { animation-delay: 2.4s; }
.fp-guide .ed-gd-hire-check svg { width: 12px; height: 12px; }
@keyframes ed-gd-hire-check { 0%, 100% { opacity: 0.22; transform: scale(0.62); } 14%, 40% { opacity: 1; transform: scale(1); } }
.fp-guide .ed-gd-hire-foot { display: flex; justify-content: flex-start; padding: 0 2px; }
.fp-guide .ed-gd-hire-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; background: rgba(20,168,0,0.1); color: #0f8e00; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 0.74rem; }
.fp-guide .ed-gd-hire-pill svg { width: 13px; height: 13px; }

/* creative BENTO feature grid — buyer "How to Hire" (asymmetric, replaces alternating rows) */
.fp-guide .ed-gd-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 244px; gap: 16px; }
.fp-guide .ed-gd-bento-tile { position: relative; border-radius: 20px; overflow: hidden; border: 1px solid var(--line); display: flex; flex-direction: column; min-width: 0; box-shadow: 0 14px 34px -26px rgba(11,11,12,0.5); transition: transform 0.35s ease, box-shadow 0.35s ease; }
.fp-guide .ed-gd-bento-tile:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -24px rgba(11,11,12,0.55); }
.fp-guide .ed-gd-bt-talent { grid-column: 1 / 3; grid-row: 1 / 3; }
.fp-guide .ed-gd-bt-escrow { grid-column: 3 / 5; grid-row: 1 / 2; }
.fp-guide .ed-gd-bt-experts { grid-column: 3 / 5; grid-row: 2 / 3; }
.fp-guide .ed-gd-bt-two { grid-column: 1 / 3; grid-row: 3 / 4; }
.fp-guide .ed-gd-bt-protected { grid-column: 3 / 5; grid-row: 3 / 4; }
.fp-guide .ed-gd-bento-tile.is-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fp-guide .ed-gd-bt-talent.is-photo img { object-position: 50% 10%; }
.fp-guide .ed-gd-bento-tile.is-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,11,16,0.9) 0%, rgba(8,11,16,0.42) 40%, rgba(8,11,16,0.04) 68%); }
.fp-guide .ed-gd-bento-cap { position: relative; z-index: 2; margin-top: auto; padding: 20px 22px; color: #fff; }
.fp-guide .ed-gd-bento-kick { display: inline-block; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: #8af598; margin-bottom: 7px; }
.fp-guide .ed-gd-bento-cap h3 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.34rem; line-height: 1.12; color: #fff; margin: 0 0 7px; }
.fp-guide .ed-gd-bento-cap p { font-family: var(--body); font-size: 0.92rem; line-height: 1.42; color: rgba(255,255,255,0.85); margin: 0; max-width: 36ch; }
.fp-guide .ed-gd-bento-chip { display: inline-flex; align-items: center; gap: 7px; margin-top: 13px; padding: 9px 15px; border-radius: 999px; background: rgba(255,255,255,0.95); color: #14130f; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 0.82rem; transition: transform 0.2s ease; }
.fp-guide .ed-gd-bento-chip:hover { transform: translateX(2px); }
.fp-guide .ed-gd-bento-chip svg { width: 15px; height: 15px; }
.fp-guide .ed-gd-bento-tile.is-feature { background: linear-gradient(150deg, #0f7a17 0%, #14a800 58%, #1fbf4a 100%); border-color: rgba(20,168,0,0.5); justify-content: center; }
.fp-guide .ed-gd-bento-feat { padding: 22px 24px; color: #fff; }
.fp-guide .ed-gd-bento-feat-ic { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: rgba(255,255,255,0.18); margin-bottom: 13px; }
.fp-guide .ed-gd-bento-feat-ic svg { width: 21px; height: 21px; color: #fff; }
.fp-guide .ed-gd-bento-feat h3 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.3rem; line-height: 1.12; color: #fff; margin: 0 0 7px; }
.fp-guide .ed-gd-bento-feat p { font-family: var(--body); font-size: 0.92rem; line-height: 1.42; color: rgba(255,255,255,0.92); margin: 0 0 13px; max-width: 32ch; }
.fp-guide .ed-gd-bento-tag { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,0.2); color: #fff; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 0.72rem; }
.fp-guide .ed-gd-bento-tag svg { width: 13px; height: 13px; }
.fp-guide .ed-gd-bento-tile.is-dark { background: radial-gradient(120% 130% at 12% 0%, #1a202e 0%, #12151d 55%, #0b0e14 100%); border-color: rgba(255,255,255,0.08); }
.fp-guide .ed-gd-bento-two { padding: 22px; display: flex; flex-direction: column; justify-content: center; gap: 16px; height: 100%; }
.fp-guide .ed-gd-bento-two-head { display: flex; flex-direction: column; gap: 7px; }
.fp-guide .ed-gd-bento-two-head .ed-gd-bento-kick { margin-bottom: 0; }
.fp-guide .ed-gd-bento-two h3 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.32rem; line-height: 1.08; letter-spacing: -0.01em; color: #fff; margin: 0; }
.fp-guide .ed-gd-bento-two-rows { display: grid; gap: 10px; }
.fp-guide .ed-gd-bento-way { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.05); animation: ed-gd-bento-way 4.2s ease-in-out infinite; }
.fp-guide .ed-gd-bento-way.is-job { animation-delay: 2.1s; }
@keyframes ed-gd-bento-way { 0%, 100% { border-color: rgba(255,255,255,0.1); background: rgba(255,255,255,0.05); } 20%, 42% { border-color: rgba(255,255,255,0.34); background: rgba(255,255,255,0.1); } }
.fp-guide .ed-gd-bento-way-ic { flex: none; width: 34px; height: 34px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; }
.fp-guide .ed-gd-bento-way.is-service .ed-gd-bento-way-ic { background: rgba(20,168,0,0.18); color: #4ee06a; }
.fp-guide .ed-gd-bento-way.is-job .ed-gd-bento-way-ic { background: rgba(90,142,255,0.2); color: #9bbbff; }
.fp-guide .ed-gd-bento-way-ic svg { width: 17px; height: 17px; }
.fp-guide .ed-gd-bento-way-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.fp-guide .ed-gd-bento-way-tx b { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 0.92rem; line-height: 1; color: #fff; }
.fp-guide .ed-gd-bento-way-tx span { font-family: var(--body); font-size: 0.76rem; line-height: 1; color: rgba(255,255,255,0.62); }
.fp-guide .ed-gd-bento-way-pill { flex: none; align-self: center; padding: 6px 11px; border-radius: 999px; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 0.68rem; letter-spacing: 0.03em; }
.fp-guide .ed-gd-bento-way.is-service .ed-gd-bento-way-pill { background: rgba(20,168,0,0.16); color: #6ff08a; }
.fp-guide .ed-gd-bento-way.is-job .ed-gd-bento-way-pill { background: rgba(90,142,255,0.16); color: #aec8ff; }
.fp-guide .ed-gd-bento-badge { position: absolute; top: 14px; left: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 999px; background: rgba(20,168,0,0.94); color: #fff; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 0.74rem; box-shadow: 0 8px 20px -10px rgba(20,168,0,0.8); }
.fp-guide .ed-gd-bento-badge svg { width: 14px; height: 14px; }
@media (max-width: 880px) {
  .fp-guide .ed-gd-bento { grid-template-columns: 1fr 1fr; grid-auto-rows: 198px; }
  .fp-guide .ed-gd-bt-talent { grid-column: 1 / 3; grid-row: auto; min-height: 320px; }
  .fp-guide .ed-gd-bt-escrow, .fp-guide .ed-gd-bt-experts, .fp-guide .ed-gd-bt-two, .fp-guide .ed-gd-bt-protected { grid-column: span 1; grid-row: auto; }
}
@media (max-width: 560px) {
  .fp-guide .ed-gd-bento { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .fp-guide .ed-gd-bento-tile { grid-column: 1 / -1 !important; grid-row: auto !important; min-height: 246px; }
  .fp-guide .ed-gd-bt-talent { min-height: 380px; }
}

/* section heads — kicker stacked, centered */
.fp-guide .ed-gd-track-head { text-align: center; max-width: 640px; margin: 0 auto 30px; }
.fp-guide .ed-gd-track-head .ed-kicker { color: var(--brand); }
.fp-guide .ed-gd-track-head .ed-h2 { margin: 10px 0 0; font-size: clamp(1.7rem, 3vw, 2.4rem); }
.fp-guide .ed-gd-track-head p { margin: 12px auto 0; color: var(--muted); max-width: 52ch; }

/* numbered step cards */
.fp-guide .ed-gd-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.fp-guide .ed-gd-steps .ed-home-step { border-radius: 18px; }
.fp-guide .ed-home-step-n { background: var(--brand); color: #fff; }

/* alternating image + text rows (card style) */
.fp-guide .ed-gd-rows { display: grid; gap: 34px; }
.fp-guide .ed-gd-row { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 24px; padding: 22px; box-shadow: 0 24px 50px -40px rgba(18,22,30,0.5); }
.fp-guide .ed-gd-row-media { position: relative; aspect-ratio: 3 / 2; border-radius: 18px; overflow: hidden; background: var(--band); }
.fp-guide .ed-gd-row-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.fp-guide .ed-gd-row-media.is-portrait img { object-position: 50% 18%; }
.fp-guide .ed-gd-row.is-flip .ed-gd-row-media { order: 2; }

/* floating green "escrow protected" trust elements over a row photo (safe-payments row) */
.fp-guide .ed-gd-row-badge { position: absolute; left: 14px; bottom: 14px; display: flex; align-items: center; gap: 10px; max-width: calc(100% - 28px); background: #fff; border: 1px solid rgba(20,168,0,0.28); border-radius: 14px; padding: 8px 14px 8px 8px; box-shadow: 0 18px 36px -16px rgba(20,168,0,0.6), 0 0 0 5px rgba(20,168,0,0.12); }
.fp-guide .ed-gd-row-badge-ic { width: 36px; height: 36px; flex: none; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(150deg, #2bb24c, #14a800); color: #fff; box-shadow: 0 6px 14px -6px rgba(20,168,0,0.85); }
.fp-guide .ed-gd-row-badge-ic svg { width: 18px; height: 18px; }
.fp-guide .ed-gd-row-badge-tx { display: grid; line-height: 1.18; min-width: 0; }
.fp-guide .ed-gd-row-badge-tx strong { font-family: "Plus Jakarta Sans", sans-serif; font-size: 0.84rem; font-weight: 700; color: #090c12; }
.fp-guide .ed-gd-row-badge-tx small { font-size: 0.68rem; color: #1f7a3d; font-weight: 600; }
@keyframes ed-gd-badge-glow { 0%, 100% { box-shadow: 0 14px 30px -16px rgba(20,168,0,0.42), 0 0 0 3px rgba(20,168,0,0.07); transform: translateY(0); } 50% { box-shadow: 0 20px 38px -16px rgba(20,168,0,0.7), 0 0 0 6px rgba(20,168,0,0.14); transform: translateY(-3px); } }
.fp-guide .ed-gd-row-chip { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: #14a800; color: #fff; box-shadow: 0 12px 24px -10px rgba(20,168,0,0.85), 0 0 0 5px rgba(20,168,0,0.16); }
.fp-guide .ed-gd-row-chip svg { width: 20px; height: 20px; }
@keyframes ed-gd-chip-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }

/* "Two ways to earn" — DARK animated card replacing the row photo (same 3/2 box) */
.fp-guide .ed-gd-row-media.is-viz { background: radial-gradient(120% 120% at 28% 0%, #1b2335 0%, #12161f 58%, #0e1117 100%); }
.fp-guide .ed-gd-earn { position: absolute; inset: 0; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: 20px; }
.fp-guide .ed-gd-earn-glow { position: absolute; width: 280px; height: 280px; left: 50%; top: 48%; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(92,144,255,0.22), transparent 70%); pointer-events: none; }
.fp-guide .ed-gd-earn-grid { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; gap: 13px; align-items: center; width: 100%; max-width: 430px; }
.fp-guide .ed-gd-earn-card { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.09); border-radius: 14px; padding: 12px; display: grid; gap: 8px; }
.fp-guide .ed-gd-earn-card.is-service { animation: ed-gd-earn-svc 4.4s ease-in-out infinite; }
.fp-guide .ed-gd-earn-card.is-job { animation: ed-gd-earn-job 4.4s ease-in-out infinite; animation-delay: 2.2s; }
@keyframes ed-gd-earn-svc { 0%, 100% { transform: translateY(4px); opacity: 0.66; border-color: rgba(255,255,255,0.09); box-shadow: none; } 50% { transform: translateY(-5px); opacity: 1; border-color: rgba(43,178,76,0.55); box-shadow: 0 16px 30px -16px rgba(20,168,0,0.55); } }
@keyframes ed-gd-earn-job { 0%, 100% { transform: translateY(4px); opacity: 0.66; border-color: rgba(255,255,255,0.09); box-shadow: none; } 50% { transform: translateY(-5px); opacity: 1; border-color: rgba(120,163,255,0.6); box-shadow: 0 16px 30px -16px rgba(92,144,255,0.6); } }
.fp-guide .ed-gd-earn-tag { font-family: "Plus Jakarta Sans", sans-serif; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.fp-guide .ed-gd-earn-card.is-service .ed-gd-earn-tag { color: #7fe39a; }
.fp-guide .ed-gd-earn-card.is-job .ed-gd-earn-tag { color: #a6c2ff; }
.fp-guide .ed-gd-earn-thumb { height: 40px; border-radius: 9px; background: linear-gradient(135deg, rgba(43,178,76,0.45), rgba(20,168,0,0.12)); }
.fp-guide .ed-gd-earn-lines { display: grid; gap: 5px; min-width: 0; }
.fp-guide .ed-gd-earn-lines i { display: block; height: 6px; border-radius: 4px; background: rgba(255,255,255,0.22); }
.fp-guide .ed-gd-earn-lines i.sm { width: 58%; background: rgba(255,255,255,0.12); }
.fp-guide .ed-gd-earn-job { display: flex; align-items: center; gap: 9px; }
.fp-guide .ed-gd-earn-jic { width: 34px; height: 34px; border-radius: 9px; flex: none; display: inline-flex; align-items: center; justify-content: center; background: rgba(92,144,255,0.22); color: #bcd1ff; }
.fp-guide .ed-gd-earn-jic svg { width: 17px; height: 17px; }
.fp-guide .ed-gd-earn-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 2px; }
.fp-guide .ed-gd-earn-price { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 0.95rem; color: #7fe39a; }
.fp-guide .ed-gd-earn-pill { font-size: 0.58rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: #2bb24c; color: #06210d; white-space: nowrap; }
.fp-guide .ed-gd-earn-pill.is-apply { background: #5c90ff; color: #fff; }
.fp-guide .ed-gd-earn-or { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.16); color: rgba(255,255,255,0.85); font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1rem; animation: ed-gd-earn-or 4.4s ease-in-out infinite; }
@keyframes ed-gd-earn-or { 0%, 100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.14); opacity: 1; } }
@media (max-width: 420px) {
  .fp-guide .ed-gd-earn { padding: 14px; }
  .fp-guide .ed-gd-earn-grid { gap: 8px; }
  .fp-guide .ed-gd-earn-card { padding: 10px; }
}
.fp-guide .ed-gd-row-body { padding: 8px 14px; }
.fp-guide .ed-gd-row-body .ed-kicker { color: var(--brand); }
.fp-guide .ed-gd-row-body h2 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: clamp(1.5rem, 2.6vw, 2.1rem); letter-spacing: -0.02em; line-height: 1.1; margin: 10px 0 0; }
.fp-guide .ed-gd-row-body p { margin: 14px 0 0; color: var(--muted); line-height: 1.6; }
.fp-guide .ed-gd-sub { display: grid; gap: 11px; margin: 18px 0 0; }
.fp-guide .ed-gd-sub-item { display: flex; align-items: flex-start; gap: 10px; font-size: 0.95rem; color: var(--ink); }
.fp-guide .ed-gd-sub-item svg { width: 20px; height: 20px; flex: none; color: #14a800; margin-top: 1px; }
.fp-guide .ed-gd-row-cta { margin-top: 20px; }

/* green pill CTA (also used in promo + banner) */
.fp-guide .ed-gd-cta { display: inline-flex; align-items: center; gap: 8px; background: #14a800; color: #fff; font-weight: 700; font-size: 0.95rem; padding: 12px 22px; border-radius: 999px; text-decoration: none; box-shadow: 0 12px 24px -12px rgba(20,168,0,0.7); transition: background 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease; }
.fp-guide .ed-gd-cta svg { width: 16px; height: 16px; flex: none; transition: transform 0.15s ease; }
.fp-guide .ed-gd-cta:hover { background: #0f8e00; transform: translateY(-2px); box-shadow: 0 18px 32px -14px rgba(20,168,0,0.8); }
.fp-guide .ed-gd-cta:hover svg { transform: translateX(3px); }
.fp-guide .ed-gd-cta.is-light { background: #fff; color: #090c12; box-shadow: 0 12px 24px -14px rgba(0,0,0,0.5); }
.fp-guide .ed-gd-cta.is-light:hover { background: #f1f1f4; }

/* green promo card */
.fp-guide .ed-gd-promo { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 38px; align-items: center; background: linear-gradient(135deg, #f3fdf5 0%, #e7f8ec 52%, #dcf4e3 100%); border: 1px solid #cfeed7; border-radius: 26px; padding: 40px 42px; box-shadow: 0 34px 66px -42px rgba(20,168,0,0.45); }
.fp-guide .ed-gd-promo::before { content: ""; position: absolute; width: 360px; height: 360px; left: -120px; top: -170px; border-radius: 50%; background: radial-gradient(circle, rgba(20,168,0,0.1), transparent 66%); pointer-events: none; }
.fp-guide .ed-gd-promo-text { position: relative; z-index: 1; }
.fp-guide .ed-gd-promo-text .ed-kicker { color: #0f8e00; }
.fp-guide .ed-gd-promo-text h2 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: clamp(1.7rem, 3vw, 2.4rem); letter-spacing: -0.025em; line-height: 1.06; margin: 10px 0 0; color: #090c12; }
.fp-guide .ed-gd-promo-text p { margin: 14px 0 22px; color: #2f4a37; max-width: 42ch; }
.fp-guide .ed-gd-promo-art { position: relative; min-height: 190px; border-radius: 20px; overflow: hidden; background: radial-gradient(125% 120% at 78% 8%, #1cc341 0%, #14a800 46%, #0a7200 100%); box-shadow: 0 22px 44px -26px rgba(20,168,0,0.7); display: flex; align-items: center; justify-content: center; }
.fp-guide .ed-gd-promo-glow { position: absolute; inset: 0; margin: auto; width: 250px; height: 250px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,0.32), transparent 66%); animation: ed-gd-promo-glow 7s ease-in-out infinite; }
@keyframes ed-gd-promo-glow { 0%, 100% { transform: translate(26px, -20px) scale(1); opacity: 0.85; } 50% { transform: translate(-16px, 18px) scale(1.14); opacity: 1; } }
.fp-guide .ed-gd-promo-ring { position: absolute; inset: 0; margin: auto; width: 78px; height: 78px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,0.5); animation: ed-gd-promo-ring 3.4s ease-out infinite; }
.fp-guide .ed-gd-promo-ring.r2 { animation-delay: 1.7s; }
@keyframes ed-gd-promo-ring { 0% { transform: scale(0.5); opacity: 0.5; } 80% { opacity: 0; } 100% { transform: scale(2.7); opacity: 0; } }
.fp-guide .ed-gd-promo-orb { position: absolute; border-radius: 11px; box-shadow: 0 8px 18px -8px rgba(0,0,0,0.45); animation: ed-gd-promo-bob 4.4s ease-in-out infinite; }
.fp-guide .ed-gd-promo-orb.o1 { width: 34px; height: 34px; left: 30px; top: 32px; background: linear-gradient(150deg, #ffffff, #d8f6df); }
.fp-guide .ed-gd-promo-orb.o2 { width: 26px; height: 26px; right: 36px; top: 28px; background: linear-gradient(150deg, #bfeecb, #8fe3a6); animation-delay: 0.9s; }
.fp-guide .ed-gd-promo-orb.o3 { width: 30px; height: 30px; right: 44px; bottom: 28px; background: linear-gradient(150deg, #ffffff, #cdf2d6); animation-delay: 1.8s; }
@keyframes ed-gd-promo-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.fp-guide .ed-gd-promo-card { position: relative; z-index: 2; display: flex; align-items: center; gap: 9px; padding: 11px 13px; border-radius: 14px; background: rgba(255,255,255,0.97); box-shadow: 0 16px 34px -16px rgba(0,0,0,0.5); animation: ed-gd-promo-bob 4.4s ease-in-out infinite; animation-delay: 0.4s; }
.fp-guide .ed-gd-promo-card-av { width: 30px; height: 30px; border-radius: 9px; flex: none; background: linear-gradient(150deg, #2563eb, #14a800); }
.fp-guide .ed-gd-promo-card-lines { display: grid; gap: 5px; }
.fp-guide .ed-gd-promo-card-lines i { display: block; height: 6px; width: 66px; border-radius: 4px; background: #dfe6e0; }
.fp-guide .ed-gd-promo-card-lines i.s { width: 40px; background: #eaefea; }
.fp-guide .ed-gd-promo-card-check { flex: none; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #14a800; color: #fff; animation: ed-gd-promo-check 2.6s ease-in-out infinite; }
.fp-guide .ed-gd-promo-card-check svg { width: 13px; height: 13px; }
@keyframes ed-gd-promo-check { 0%, 100% { box-shadow: 0 0 0 0 rgba(255,255,255,0.55); } 55% { box-shadow: 0 0 0 7px rgba(255,255,255,0); } }
@keyframes ed-gd-drift { 0%, 100% { transform: translateX(0); opacity: 0.9; } 50% { transform: translateX(10px); opacity: 1; } }

/* trust & safety feature cards */
.fp-guide .ed-gd-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.fp-guide .ed-gd-feature { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 24px; box-shadow: 0 18px 40px -36px rgba(18,22,30,0.42); }
.fp-guide .ed-gd-feature-ic { width: 44px; height: 44px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; background: var(--band); color: var(--brand); margin-bottom: 14px; }
.fp-guide .ed-gd-feature-ic svg { width: 22px; height: 22px; }
.fp-guide .ed-gd-feature h3 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 1.08rem; margin: 0 0 7px; }
.fp-guide .ed-gd-feature p { margin: 0; color: var(--muted); font-size: 0.93rem; line-height: 1.55; }

/* FAQ accordion */
.fp-guide .ed-gd-faq { max-width: 760px; margin: 0 auto; display: grid; gap: 12px; }
.fp-guide .ed-gd-faq-item { border: 1px solid var(--line); border-radius: 14px; background: var(--paper); overflow: hidden; transition: border-color 0.18s ease, box-shadow 0.18s ease; }
.fp-guide .ed-gd-faq-item[open] { border-color: var(--line-2); box-shadow: 0 18px 38px -34px rgba(18,22,30,0.45); }
.fp-guide .ed-gd-faq-item summary { list-style: none; cursor: pointer; padding: 18px 22px; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 600; font-size: 1.02rem; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.fp-guide .ed-gd-faq-item summary::-webkit-details-marker { display: none; }
.fp-guide .ed-gd-faq-item summary::after { content: ""; width: 11px; height: 11px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg); transition: transform 0.2s ease; flex: none; margin-top: -4px; }
.fp-guide .ed-gd-faq-item[open] summary::after { transform: rotate(-135deg); margin-top: 2px; }
.fp-guide .ed-gd-faq-item .ed-gd-faq-a { padding: 0 22px 20px; color: var(--muted); line-height: 1.65; }

/* dark photo banner */
.fp-guide .ed-gd-banner { position: relative; border-radius: 26px; overflow: hidden; min-height: 340px; display: flex; align-items: center; background-size: 138% auto; background-position: 14% center; box-shadow: 0 36px 70px -44px rgba(9,12,18,0.7); }
.fp-guide .ed-gd-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(8,11,16,0.97) 0%, rgba(8,11,16,0.9) 42%, rgba(8,11,16,0.6) 66%, rgba(8,11,16,0.16) 100%); }
.fp-guide .ed-gd-banner-in { position: relative; z-index: 1; padding: 48px 52px; max-width: 600px; }
.fp-guide .ed-gd-banner-in .ed-kicker { color: #d4e2ff !important; text-shadow: 0 1px 10px rgba(0,0,0,0.6); }
.fp-guide .ed-gd-banner-in h2 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: clamp(1.9rem, 3.4vw, 2.8rem); letter-spacing: -0.025em; line-height: 1.06; color: #fff; margin: 12px 0 0; }
.fp-guide .ed-gd-banner-in p { color: rgba(255,255,255,0.82); margin: 16px 0 26px; max-width: 44ch; line-height: 1.6; }
/* buyer "How to Hire" banner — full faces (cover, framed to the faces), taller card, static trust points + polish */
.fp-hire .ed-gd-banner { min-height: 452px; background-size: cover; background-position: 50% 50%; }
.fp-hire .ed-gd-banner::after { background: linear-gradient(100deg, rgba(8,11,16,0.97) 0%, rgba(8,11,16,0.93) 52%, rgba(8,11,16,0.56) 65%, rgba(8,11,16,0.15) 79%, rgba(8,11,16,0.08) 100%); }
.fp-hire .ed-gd-banner-in { max-width: 648px; padding: 56px 54px; }
.fp-hire .ed-gd-banner-in h2 { text-shadow: 0 2px 20px rgba(0,0,0,0.42); }
.fp-hire .ed-gd-banner-in p { margin: 16px 0 18px; }
.fp-guide .ed-gd-banner-points { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 28px; }
.fp-guide .ed-gd-banner-point { display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px; border-radius: 999px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18); color: rgba(255,255,255,0.94); font-family: "Plus Jakarta Sans", sans-serif; font-weight: 600; font-size: 0.82rem; }
.fp-guide .ed-gd-banner-point svg { width: 14px; height: 14px; color: #74f193; flex: none; }

/* scroll-reveal — staggered fade-up, 1.5s CSS backstop so content never stays hidden */
.fp-guide .ed-gd-track-head, .fp-guide .ed-gd-steps, .fp-guide .ed-gd-promo, .fp-guide .ed-gd-trust, .fp-guide .ed-gd-faq, .fp-guide .ed-gd-row, .fp-guide .ed-gd-banner, .fp-guide .ed-cta { opacity: 0; transform: translateY(20px); animation: ed-gd-reveal 0.7s ease forwards 1.5s; }
@keyframes ed-gd-reveal { to { opacity: 1; transform: none; } }
.fp-guide .ed-gd-track-head.is-in, .fp-guide .ed-gd-steps.is-in, .fp-guide .ed-gd-promo.is-in, .fp-guide .ed-gd-trust.is-in, .fp-guide .ed-gd-faq.is-in, .fp-guide .ed-gd-row.is-in, .fp-guide .ed-gd-banner.is-in, .fp-guide .ed-cta.is-in { opacity: 1; transform: none; animation: none; transition: opacity 0.6s ease, transform 0.6s ease; }
.fp-guide .ed-gd-steps .ed-home-step, .fp-guide .ed-gd-trust .ed-gd-feature, .fp-guide .ed-gd-faq .ed-gd-faq-item { opacity: 0; transform: translateY(16px); animation: ed-gd-reveal 0.7s ease forwards 1.6s; }
.fp-guide .ed-gd-steps.is-in .ed-home-step, .fp-guide .ed-gd-trust.is-in .ed-gd-feature, .fp-guide .ed-gd-faq.is-in .ed-gd-faq-item { opacity: 1; transform: none; animation: none; transition: opacity 0.6s ease, transform 0.6s ease; }
.fp-guide .ed-gd-steps.is-in .ed-home-step:nth-child(2), .fp-guide .ed-gd-trust.is-in .ed-gd-feature:nth-child(2), .fp-guide .ed-gd-faq.is-in .ed-gd-faq-item:nth-child(2) { transition-delay: 0.08s; }
.fp-guide .ed-gd-steps.is-in .ed-home-step:nth-child(3), .fp-guide .ed-gd-trust.is-in .ed-gd-feature:nth-child(3), .fp-guide .ed-gd-faq.is-in .ed-gd-faq-item:nth-child(3) { transition-delay: 0.16s; }
.fp-guide .ed-gd-steps.is-in .ed-home-step:nth-child(4), .fp-guide .ed-gd-trust.is-in .ed-gd-feature:nth-child(4), .fp-guide .ed-gd-faq.is-in .ed-gd-faq-item:nth-child(4) { transition-delay: 0.24s; }
.fp-guide .ed-gd-faq.is-in .ed-gd-faq-item:nth-child(5) { transition-delay: 0.32s; }

/* responsive */
@media (max-width: 980px) {
  .fp-guide .ed-gd-hero { grid-template-columns: 1fr; gap: 30px; }
  .fp-guide .ed-gd-hero-art { order: -1; }
}
@media (max-width: 760px) {
  .fp-guide .ed-gd-row { grid-template-columns: 1fr; gap: 18px; padding: 16px; }
  .fp-guide .ed-gd-row.is-flip .ed-gd-row-media { order: 0; }
  .fp-guide .ed-gd-promo { grid-template-columns: 1fr; gap: 24px; padding: 28px 24px; }
  .fp-guide .ed-gd-banner-in { padding: 34px 26px; }
  .fp-guide .ed-gd-banner { background-size: cover; background-position: 56% center; }
  .fp-hire .ed-gd-banner { min-height: 400px; background-position: 78% center; }
  .fp-hire .ed-gd-banner-in { padding: 30px 24px; }
  .fp-guide .ed-gd-banner::after { background: linear-gradient(180deg, rgba(8,11,16,0.55) 0%, rgba(8,11,16,0.92) 100%); }
}
@media (prefers-reduced-motion: reduce) {
  .fp-guide .ed-gd-track-head, .fp-guide .ed-gd-steps, .fp-guide .ed-gd-promo, .fp-guide .ed-gd-trust, .fp-guide .ed-gd-faq, .fp-guide .ed-gd-row, .fp-guide .ed-gd-banner, .fp-guide .ed-cta,
  .fp-guide .ed-gd-steps .ed-home-step, .fp-guide .ed-gd-trust .ed-gd-feature, .fp-guide .ed-gd-faq .ed-gd-faq-item { opacity: 1 !important; transform: none !important; animation: none !important; }
  .fp-guide .ed-gd-pulse-line, .fp-guide .ed-gd-tip-halo, .fp-guide .ed-gd-card-trend, .fp-guide .ed-gd-promo-glow, .fp-guide .ed-gd-promo-ring, .fp-guide .ed-gd-promo-orb, .fp-guide .ed-gd-promo-card, .fp-guide .ed-gd-promo-card-check, .fp-guide .ed-gd-earn-card, .fp-guide .ed-gd-earn-or, .fp-guide .ed-gd-row-badge, .fp-guide .ed-gd-row-chip, .fp-guide .ed-gd-hire-row, .fp-guide .ed-gd-hire-check, .fp-guide .ed-gd-live, .fp-guide .ed-gd-bento-way { animation: none !important; }
  .fp-guide .ed-gd-pulse-line { opacity: 0 !important; }
  .fp-guide .ed-gd-earn-card, .fp-guide .ed-gd-row-badge, .fp-guide .ed-gd-row-chip { transform: none !important; }
}

.fp-about .ed-gd-hero-art { min-height: 0; }
.fp-about .ed-about-hero-photo { position: relative; width: 100%; border-radius: 24px; overflow: hidden; aspect-ratio: 3 / 2; border: 1px solid var(--line); box-shadow: 0 40px 78px -44px rgba(18,22,30,0.6); background: var(--band); }
.fp-about .ed-about-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 34%; display: block; }
.fp-about .ed-about-hero-chip { position: absolute; left: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 10px; padding: 9px 15px 9px 9px; border-radius: 14px; background: rgba(255,255,255,0.96); box-shadow: 0 16px 34px -16px rgba(18,22,30,0.55), 0 0 0 5px rgba(20,168,0,0.12); }
.fp-about .ed-about-hero-chip-ic { width: 34px; height: 34px; flex: none; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(150deg, #2bb24c, #14a800); color: #fff; }
.fp-about .ed-about-hero-chip-ic svg { width: 18px; height: 18px; }
.fp-about .ed-about-hero-chip-tx { display: grid; line-height: 1.2; }
.fp-about .ed-about-hero-chip-tx b { font-family: "Plus Jakarta Sans", sans-serif; font-size: 0.84rem; font-weight: 700; color: #090c12; }
.fp-about .ed-about-hero-chip-tx i { font-style: normal; font-size: 0.7rem; color: #1f7a3d; font-weight: 600; }

/* ethos strip — evergreen value cards (no platform-wide volume figures) */
.fp-about .ed-about-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.fp-about .ed-about-strip-item { display: grid; gap: 3px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: 0 18px 40px -36px rgba(18,22,30,0.42); }
.fp-about .ed-about-strip-ic { width: 40px; height: 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--band); color: var(--brand); margin-bottom: 8px; }
.fp-about .ed-about-strip-ic svg { width: 20px; height: 20px; }
.fp-about .ed-about-strip-ic.is-img { background: none; }
.fp-about .ed-about-strip-ic img { width: 40px; height: 40px; display: block; }
.fp-about .ed-about-strip-item b { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.12rem; letter-spacing: -0.01em; color: var(--ink); }
.fp-about .ed-about-strip-item span { font-size: 0.86rem; color: var(--muted); line-height: 1.4; }

/* founder spotlight — full uncropped portrait on a soft-blue gradient (two shades of one hue) */
.fp-about .ed-about-founder { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: 1fr minmax(270px, 360px); align-items: end; gap: 24px; max-width: 1040px; margin-inline: auto; border-radius: 28px; border: 1px solid rgba(40,72,120,0.10); background: linear-gradient(135deg, #eaf1fb 0%, #d6e4f6 52%, #eef4fc 100%); box-shadow: 0 40px 82px -50px rgba(26,48,88,0.34); }
.fp-about .ed-about-founder::before { content: ""; position: absolute; inset: -10%; z-index: 0; pointer-events: none; background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.6), transparent 42%), radial-gradient(circle at 50% 50%, rgba(193,215,245,0.58), transparent 44%), radial-gradient(circle at 50% 50%, rgba(232,242,253,0.62), transparent 42%), radial-gradient(circle at 50% 50%, rgba(205,224,247,0.52), transparent 44%); background-repeat: no-repeat; background-size: 66% 66%, 72% 72%, 70% 70%, 66% 66%; background-position: 10% 20%, 74% 14%, 28% 84%, 88% 72%; filter: blur(30px); animation: ed-about-mesh 19s ease-in-out infinite alternate; }
@keyframes ed-about-mesh {
  0%   { background-position: 10% 20%, 74% 14%, 28% 84%, 88% 72%; }
  50%  { background-position: 30% 8%, 50% 36%, 48% 60%, 62% 88%; }
  100% { background-position: 16% 32%, 84% 26%, 18% 74%, 94% 56%; }
}
.fp-about .ed-about-founder-glow { position: absolute; right: -36px; top: -52px; width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,0.55), transparent 66%); pointer-events: none; z-index: 0; }
.fp-about .ed-about-founder-copy { position: relative; z-index: 2; align-self: center; padding: 50px 6px 50px 52px; }
.fp-about .ed-about-founder-name { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: clamp(2.6rem, 5vw, 4.3rem); line-height: 0.98; letter-spacing: -0.035em; color: #15233b; margin: 0; }
.fp-about .ed-about-founder-role { margin: 13px 0 0; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 600; font-size: clamp(1rem, 1.5vw, 1.28rem); color: #52658a; }
.fp-about .ed-about-founder-photo { position: relative; z-index: 1; align-self: end; }
.fp-about .ed-about-founder-photo img { display: block; width: 100%; height: auto; border-radius: 0; }
@media (max-width: 760px) {
  .fp-about .ed-about-strip { grid-template-columns: 1fr 1fr; }
  .fp-about .ed-about-founder { grid-template-columns: 1fr; align-items: stretch; gap: 0; }
  .fp-about .ed-about-founder-copy { padding: 34px 26px 6px; text-align: center; }
  .fp-about .ed-about-founder-photo { width: 100%; justify-self: stretch; }
}
@media (max-width: 460px) { .fp-about .ed-about-strip { grid-template-columns: 1fr; } }

.fp-about .ed-about-note { position: relative; max-width: 884px; margin: 0 auto; padding: 52px clamp(24px, 5vw, 62px) 44px; border: 1px solid var(--line); border-radius: 26px; background: linear-gradient(180deg, #ffffff 0%, var(--paper) 100%); box-shadow: 0 38px 84px -56px rgba(18,22,30,0.42); overflow: hidden; isolation: isolate; }
.fp-about .ed-about-note::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, #cfe0f5, #a9c6ee 46%, rgba(169,198,238,0)); z-index: 0; }
.fp-about .ed-about-note-mark { position: absolute; top: 14px; right: 30px; font-family: var(--serif); font-size: 150px; line-height: 1; color: rgba(40,72,120,0.07); pointer-events: none; user-select: none; z-index: 0; }
.fp-about .ed-about-note > :not(.ed-about-note-mark) { position: relative; z-index: 1; }
.fp-about .ed-about-note-h { margin: 10px 0 22px; }
.fp-about .ed-about-note-body p { font-family: var(--serif); font-size: 1.04rem; line-height: 1.78; color: #42464f; margin: 0 0 15px; }
.fp-about .ed-about-note-body p:last-child { margin-bottom: 0; }
.fp-about .ed-about-note-lead { font-size: 1.22rem; line-height: 1.62; color: var(--ink); }
.fp-about .ed-about-note-body strong { font-weight: 600; color: var(--ink); }
.fp-about .ed-about-note-body em { font-style: italic; color: var(--ink); }
.fp-about .ed-about-note-sign { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.fp-about .ed-about-note-name { display: block; font-family: var(--special); font-weight: 600; font-size: 1.7rem; letter-spacing: -0.01em; color: var(--ink); }
.fp-about .ed-about-note-role { display: block; margin-top: 4px; font-size: 0.9rem; font-weight: 600; color: var(--muted); }
@media (max-width: 600px) {
  .fp-about .ed-about-note { padding: 38px 22px 32px; border-radius: 20px; }
  .fp-about .ed-about-note-mark { font-size: 108px; top: 8px; right: 16px; }
  .fp-about .ed-about-note-lead { font-size: 1.1rem; }
  .fp-about .ed-about-note-name { font-size: 1.5rem; }
}

.fp-about .ed-gd-row-media.is-portrait img { object-position: 50% 50%; }

.fp-about .ed-gd-banner { min-height: 460px; background-size: 112%; background-position: 6% 55%; }
.fp-about .ed-gd-banner::after { background: linear-gradient(100deg, rgba(8,11,16,0.96) 0%, rgba(8,11,16,0.9) 48%, rgba(8,11,16,0.5) 66%, rgba(8,11,16,0.12) 100%); }
.fp-about .ed-gd-banner-in { max-width: 620px; padding: 54px 52px; }
@media (max-width: 760px) {
  .fp-about .ed-gd-banner { min-height: 420px; background-size: cover; background-position: 58% 40%; }
  .fp-about .ed-gd-banner-in { padding: 32px 24px; }
}

/* scroll-reveal for the new about blocks (same 1.5s fail-safe backstop) */
.fp-about .ed-about-strip, .fp-about .ed-about-founder, .fp-about .ed-about-note { opacity: 0; transform: translateY(20px); animation: ed-gd-reveal 0.7s ease forwards 1.5s; }
.fp-about .ed-about-strip.is-in, .fp-about .ed-about-founder.is-in, .fp-about .ed-about-note.is-in { opacity: 1; transform: none; animation: none; transition: opacity 0.6s ease, transform 0.6s ease; }
@media (prefers-reduced-motion: reduce) { .fp-about .ed-about-strip, .fp-about .ed-about-founder { opacity: 1 !important; transform: none !important; animation: none !important; } .fp-about .ed-about-founder::before { animation: none !important; } }

body.fp-pub { position: relative; }
body.fp-pub::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 600px; z-index: 0; pointer-events: none;
  background:
    radial-gradient(720px 460px at 100% -6%, rgba(219,230,255,0.40), transparent 72%),
    radial-gradient(520px 360px at 52% -16%, rgba(205,238,222,0.30), transparent 72%);
  -webkit-mask-image: linear-gradient(#000 0, #000 55%, transparent); mask-image: linear-gradient(#000 0, #000 55%, transparent); }
body.fp-pub::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 470px; z-index: 0; pointer-events: none;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 50px 50px; opacity: 0.13;
  -webkit-mask-image: radial-gradient(circle at 50% 6%, #000, transparent 66%); mask-image: radial-gradient(circle at 50% 6%, #000, transparent 66%); }
body.fp-pub > main, body.fp-pub > section, body.fp-pub > footer { position: relative; z-index: 1; }

/* marketplace cards — depth + hover lift (talent media tiles excluded) */
body.fp-pub .ed-card:not(.ed-tpro-tile) { box-shadow: 0 16px 36px -30px rgba(18,22,30,0.42); transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease; }
body.fp-pub .ed-card:not(.ed-tpro-tile):hover { transform: translateY(-5px); box-shadow: 0 30px 50px -30px rgba(18,22,30,0.5); border-color: var(--line-2); }
body.fp-pub .ed-cat { box-shadow: 0 16px 36px -30px rgba(18,22,30,0.42); transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease; }
body.fp-pub .ed-cat:hover { transform: translateY(-5px); box-shadow: 0 30px 50px -30px rgba(18,22,30,0.5); border-color: var(--line-2); }
body.fp-pub .ed-tpro { box-shadow: 0 18px 40px -32px rgba(18,22,30,0.4); transition: box-shadow 0.24s ease, transform 0.24s ease; }
body.fp-pub .ed-tpro:hover { transform: translateY(-3px); box-shadow: 0 30px 54px -32px rgba(18,22,30,0.46); }

/* profile sidebar + review + package + facets elevation */
body.fp-pub .ed-profile-stat { box-shadow: 0 12px 28px -26px rgba(18,22,30,0.4); }
body.fp-pub .ed-review { box-shadow: 0 12px 30px -28px rgba(18,22,30,0.4); transition: box-shadow 0.22s ease, transform 0.22s ease; }
body.fp-pub .ed-review:hover { transform: translateY(-3px); box-shadow: 0 22px 42px -28px rgba(18,22,30,0.46); }
body.fp-pub .ed-pkg { box-shadow: 0 26px 56px -38px rgba(18,22,30,0.5); }
@media (prefers-reduced-motion: reduce) {
  body.fp-pub .ed-card, body.fp-pub .ed-cat, body.fp-pub .ed-tpro, body.fp-pub .ed-review { transition: none; }
}

.fp-ed .ed-av { display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.fp-ed .ed-av img { display: block; }

.fp-ed .ed-done { position: relative; overflow: hidden; padding: 54px 22px 90px; }
.fp-ed .ed-done > .ed-actv-deco { z-index: 0; }
.fp-ed .ed-done-shell { position: relative; z-index: 1; width: min(640px, 100%); margin: 0 auto; text-align: center; }
.fp-ed .ed-done-badge { position: relative; width: 92px; height: 92px; margin: 0 auto; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(155deg, #1f9d57, #43c47e); color: #fff; box-shadow: 0 26px 50px -20px rgba(31,157,87,0.6); }
.fp-ed .ed-done-badge svg { width: 42px; height: 42px; }
.fp-ed .ed-done-ring { position: absolute; inset: -14px; border-radius: 50%; border: 1.5px solid rgba(31,157,87,0.32); animation: ed-done-breathe 3s ease-in-out infinite; }
.fp-ed .ed-done-ring-2 { inset: -30px; border-color: rgba(31,157,87,0.16); animation-delay: 0.5s; }
@keyframes ed-done-breathe { 0%,100% { transform: scale(1); opacity: 0.75; } 50% { transform: scale(1.04); opacity: 1; } }
.fp-ed .ed-done-step { display: inline-flex; align-items: center; gap: 9px; margin: 26px 0 0; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.fp-ed .ed-done-step-dot { width: 8px; height: 8px; border-radius: 50%; background: #1f9d57; box-shadow: 0 0 0 4px rgba(31,157,87,0.16); }
.fp-ed .ed-done-h1 { margin: 14px 0 0; font-size: clamp(2.1rem, 4vw, 3rem); line-height: 1.05; letter-spacing: -0.04em; color: var(--ink); }
.fp-ed .ed-done-h1 em { font-family: var(--serif); font-style: italic; font-weight: 500; }
.fp-ed .ed-done-lead { margin: 14px auto 0; max-width: 50ch; color: var(--muted); font-size: 1.02rem; line-height: 1.6; }
.fp-ed .ed-done-perks { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 24px; }
.fp-ed .ed-done-perk { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: var(--pill); background: #fff; padding: 8px 14px; font-size: 0.84rem; font-weight: 500; color: var(--ink-2); box-shadow: 0 10px 24px -22px rgba(18,22,30,0.5); }
.fp-ed .ed-done-perk svg { width: 15px; height: 15px; color: #1f9d57; flex: 0 0 auto; }
.fp-ed .ed-done-steps { display: grid; gap: 12px; margin-top: 30px; text-align: left; }
.fp-ed .ed-done-step-card { display: flex; align-items: center; gap: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 18px; box-shadow: 0 14px 32px -28px rgba(18,22,30,0.5); transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease; }
.fp-ed .ed-done-step-card:hover { transform: translateY(-3px); box-shadow: 0 26px 44px -28px rgba(18,22,30,0.55); border-color: var(--line-2); }
.fp-ed .ed-done-num { flex: 0 0 auto; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; background: var(--ink); color: #fff; font-family: var(--serif); font-size: 1.05rem; box-shadow: 0 8px 16px -8px rgba(0,0,0,0.6); }
.fp-ed .ed-done-step-card > div { flex: 1; min-width: 0; }
.fp-ed .ed-done-step-card h3 { font-size: 1.04rem; letter-spacing: -0.01em; margin: 0; color: var(--ink); }
.fp-ed .ed-done-step-card p { font-size: 0.9rem; color: var(--muted); line-height: 1.5; margin: 4px 0 0; }
.fp-ed .ed-done-go { flex: 0 0 auto; color: var(--muted); transition: transform 0.2s ease, color 0.2s ease; }
.fp-ed .ed-done-go svg { width: 20px; height: 20px; display: block; }
.fp-ed .ed-done-step-card:hover .ed-done-go { color: var(--ink); transform: translateX(3px); }
.fp-ed .ed-done-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 30px; }
@media (max-width: 520px) {
  .fp-ed .ed-done-actions { flex-direction: column; }
  .fp-ed .ed-done-actions .ed-btn { width: 100%; text-align: center; }
  .fp-ed .ed-done-step-card { padding: 15px; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-ed .ed-done-ring { animation: none; }
  .fp-ed .ed-done-step-card { transition: none; }
}

/* ============ Seller dashboard — premium scoped polish (.ed-sdash) ============ */
.fp-ed .ed-sdash { position: relative; }
.fp-ed .ed-sdash-deco { position: absolute; top: 0; left: 0; right: 0; height: 480px; z-index: 0; pointer-events: none; overflow: hidden; }
.fp-ed .ed-sdash-deco::before, .fp-ed .ed-sdash-deco::after { content: ""; position: absolute; border-radius: 50%; filter: blur(64px); }
.fp-ed .ed-sdash-deco::before { width: 460px; height: 460px; top: -190px; left: -130px; background: radial-gradient(circle at 50% 50%, rgba(31, 122, 61, 0.13), transparent 70%); }
.fp-ed .ed-sdash-deco::after { width: 540px; height: 540px; top: -230px; right: -170px; background: radial-gradient(circle at 50% 50%, rgba(58, 79, 184, 0.1), transparent 70%); }
.fp-ed .ed-sdash > .ed-container { position: relative; z-index: 1; }
/* hero */
.fp-ed .ed-sdash-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 24px 28px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(251, 250, 248, 0.74)); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 24px 56px -42px rgba(18, 22, 30, 0.55); }
.fp-ed .ed-sdash-hero-tx { min-width: 0; }
.fp-ed .ed-sdash-h1 { font-family: var(--serif, Fraunces, serif); font-weight: 500; font-size: clamp(1.7rem, 1.15rem + 2.2vw, 2.35rem); line-height: 1.05; letter-spacing: -0.015em; color: var(--ink); margin-top: 12px; }
.fp-ed .ed-sdash-h1 [data-sd-name] { font-style: italic; }
.fp-ed .ed-sdash-lead { color: var(--muted); margin-top: 11px; font-size: 0.98rem; line-height: 1.5; max-width: 52ch; }
.fp-ed .ed-sdash-hero-cta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fp-ed .ed-sdash-hero-cta .ed-btn { display: inline-flex; align-items: center; gap: 8px; }
.fp-ed .ed-sdash-hero-cta .ed-btn svg { flex: none; }
/* premium KPI cards */
.fp-ed .ed-sdash .ed-wsx { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 17px 17px 15px; box-shadow: 0 14px 32px -28px rgba(18, 22, 30, 0.5); transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.fp-ed .ed-sdash .ed-wsx:hover { transform: translateY(-2px); border-color: var(--line-2); box-shadow: 0 24px 46px -26px rgba(18, 22, 30, 0.55); }
.fp-ed .ed-sdash .ed-wsx-value { font-size: 1.9rem; }
.fp-ed .ed-sdash .ed-wsx.ed-skeleton { box-shadow: none; }
.fp-ed .ed-sdash .ed-wsx:first-child:not(.ed-skeleton)::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #1f7a3d, #34c172); }
.fp-ed .ed-sdash .ed-wsx:first-child .ed-spark path.area { fill: rgba(31, 122, 61, 0.09); }
.fp-ed .ed-sdash .ed-wsx:first-child .ed-spark path.line { stroke: #1f7a3d; }
.fp-ed .ed-sdash .ed-spark { height: 38px; }
/* premium panels */
.fp-ed .ed-sdash .ed-panel { background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 16px 38px -32px rgba(18, 22, 30, 0.5); transition: box-shadow 0.25s ease, border-color 0.25s ease; }
.fp-ed .ed-sdash .ed-panel:hover { box-shadow: 0 24px 50px -30px rgba(18, 22, 30, 0.5); }
/* premium quick actions with icon chips */
.fp-ed .ed-sdash .ed-quick { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 15px 17px; box-shadow: 0 12px 28px -26px rgba(18, 22, 30, 0.5); transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease; }
.fp-ed .ed-sdash .ed-quick:hover { transform: translateY(-2px); border-color: var(--ink); box-shadow: 0 22px 42px -24px rgba(18, 22, 30, 0.5); }
.fp-ed .ed-sdash .ed-quick svg { flex: none; width: 40px; height: 40px; padding: 10px; border-radius: 12px; background: var(--band); box-sizing: border-box; color: var(--ink); transition: background 0.18s ease, color 0.18s ease; }
.fp-ed .ed-sdash .ed-quick:hover svg { background: var(--ink); color: #fff; }
@media (max-width: 640px) {
  .fp-ed .ed-sdash-hero { padding: 18px 18px; }
  .fp-ed .ed-sdash-hero-cta { width: 100%; }
  .fp-ed .ed-sdash-hero-cta .ed-btn { flex: 1 1 auto; justify-content: center; }
  .fp-ed .ed-sdash-deco { height: 320px; }
}

/* ===== Seller public profile — premium About + facts icons + stat tiles ===== */
.fp-ed[data-public-profile] .ed-sp-about { max-width: 1000px; }
.fp-ed[data-public-profile] .ed-sp-bio { margin-top: 0; }
.fp-ed[data-public-profile] .ed-sp-bio p { max-width: 760px; }
.fp-ed[data-public-profile] .ed-sp-cred-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 30px; }
.fp-ed[data-public-profile] .ed-sp-cred { background: var(--bg); border: 1px solid var(--line); border-radius: 16px; padding: 20px 20px 18px; box-shadow: 0 16px 36px -32px rgba(18, 22, 30, 0.5); transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease; }
.fp-ed[data-public-profile] .ed-sp-cred:hover { box-shadow: 0 24px 48px -30px rgba(18, 22, 30, 0.5); border-color: var(--line-2); transform: translateY(-2px); }
.fp-ed[data-public-profile] .ed-sp-cred-head { display: flex; align-items: center; gap: 12px; margin-bottom: 15px; }
.fp-ed[data-public-profile] .ed-sp-cred-head h3 { margin: 0; font-family: var(--display, "Space Grotesk", sans-serif); font-size: 1.02rem; font-weight: 600; color: var(--ink); }
.fp-ed[data-public-profile] .ed-sp-cred-ic { flex: none; width: 38px; height: 38px; border-radius: 11px; background: var(--band); border: 1px solid var(--line-2); display: grid; place-items: center; color: var(--ink); }
.fp-ed[data-public-profile] .ed-sp-cred-ic svg { width: 19px; height: 19px; }
.fp-ed[data-public-profile] .ed-sp-cred-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 13px; }
.fp-ed[data-public-profile] .ed-sp-cred-list li { display: flex; align-items: flex-start; gap: 11px; }
.fp-ed[data-public-profile] .ed-sp-cred-mk { flex: none; width: 7px; height: 7px; border-radius: 50%; margin-top: 7px; background: var(--ink); opacity: 0.5; }
.fp-ed[data-public-profile] .ed-sp-cred-tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fp-ed[data-public-profile] .ed-sp-cred-tx.is-inline { flex-direction: row; align-items: center; gap: 9px; flex-wrap: wrap; }
.fp-ed[data-public-profile] .ed-sp-cred-tx strong { font-size: 0.94rem; font-weight: 600; color: var(--ink); line-height: 1.35; }
.fp-ed[data-public-profile] .ed-sp-cred-tx > span { font-size: 0.84rem; color: var(--muted); line-height: 1.4; }
.fp-ed[data-public-profile] .ed-sp-cred-lvl { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-2); background: var(--band); border: 1px solid var(--line); border-radius: 999px; padding: 2px 9px; }
.fp-ed[data-public-profile] .ed-profile-meta .ed-sp-fact { justify-content: flex-start; gap: 11px; }
.fp-ed[data-public-profile] .ed-profile-meta .ed-sp-fact dt { flex: 1; }
.fp-ed[data-public-profile] .ed-sp-fact-ic { flex: none; width: 30px; height: 30px; border-radius: 9px; background: var(--band); border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink-2); }
.fp-ed[data-public-profile] .ed-sp-fact-ic svg { width: 15px; height: 15px; }
.fp-ed [data-seller-profile] .ed-profile-stat { background: var(--bg); border: 1px solid var(--line); border-radius: 13px; padding: 14px 16px; box-shadow: 0 14px 30px -28px rgba(18, 22, 30, 0.45); transition: box-shadow 0.2s ease, border-color 0.2s ease; }
.fp-ed [data-seller-profile] .ed-profile-stat:hover { border-color: var(--line-2); box-shadow: 0 20px 40px -26px rgba(18, 22, 30, 0.5); }
@media (max-width: 480px) {
  .fp-ed[data-public-profile] .ed-sp-cred-grid { grid-template-columns: 1fr; }
}

.fp-ed .fp-pf-main { padding-bottom: 80px; }
.fp-ed .fp-pf-hero-wrap { padding: 14px 0 34px; }
.fp-ed .fp-pf-top { display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); gap: 22px; align-items: stretch; }
.fp-ed .fp-pf-top.is-solo { grid-template-columns: 1fr; }
.fp-ed .fp-pf-profile { display: flex; flex-direction: column; gap: 13px; padding: 22px 24px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(150deg, rgba(255, 255, 255, 0.95), rgba(251, 250, 248, 0.72)); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 24px 60px -48px rgba(18, 22, 30, 0.55); }
.fp-ed .fp-pf-profile-head { display: flex; align-items: center; gap: 18px; min-width: 0; }
.fp-ed .fp-pf-profile-av { width: 78px; height: 78px; font-size: 1.55rem; flex: none; }
.fp-ed .fp-pf-profile-id { min-width: 0; transform: translateY(-6px); }
.fp-ed .fp-pf-meet { display: inline-block; font-family: var(--serif, Fraunces, serif); font-style: italic; font-weight: 500; font-size: 0.95rem; letter-spacing: 0.012em; text-transform: none; color: #6f6256; }
.fp-ed .fp-pf-profile-id h1 { font-family: var(--serif, Fraunces, serif); font-weight: 500; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2rem); line-height: 1.04; letter-spacing: -0.02em; color: var(--ink); margin: 2px 0 0; }
.fp-ed .fp-pf-profile-handle { color: var(--muted); font-size: 0.95rem; font-weight: 500; line-height: 1.3; letter-spacing: -0.01em; margin: 2px 0 0; }
.fp-ed .fp-pf-profile-tag { color: var(--ink-2); font-size: 0.95rem; line-height: 1.5; margin: 0; }
/* meta chip row (level/badge · ★rating · location · response · pieces) — all real backend data */
.fp-ed .fp-pf-hero-meta { display: flex; align-items: center; gap: 7px 8px; flex-wrap: wrap; margin: 2px 0 0; }
.fp-ed .fp-pf-hero-meta:empty { display: none; }
.fp-ed .fp-pf-meta-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 0.78rem; font-weight: 500; color: var(--ink-2); background: var(--bg); border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; white-space: nowrap; }
.fp-ed .fp-pf-meta-chip svg { width: 13px; height: 13px; flex: none; color: var(--muted); }
.fp-ed .fp-pf-meta-chip.is-star svg { color: #e8a200; fill: #e8a200; }
.fp-ed .fp-pf-meta-chip b { color: var(--ink); font-weight: 700; }
.fp-ed .fp-pf-profile-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin: 6px 0 0; }
.fp-ed .fp-pf-profile-actions .ed-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; white-space: nowrap; border-radius: 12px; padding: 11px 17px; font-weight: 600; font-size: 0.9rem; letter-spacing: -0.01em; transition: transform 0.16s ease, box-shadow 0.18s ease, background 0.16s ease, border-color 0.16s ease, color 0.16s ease; }
.fp-ed .fp-pf-profile-actions .ed-btn svg { width: 15px; height: 15px; flex: none; }
/* primary "Hire {name}" CTA — premium ink button with depth (→ seller public profile) */
.fp-ed .fp-pf-hire { background: linear-gradient(180deg, #2a2a2f, var(--ink)); color: #fff; border: 1px solid var(--ink); box-shadow: 0 16px 32px -16px rgba(18, 22, 30, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.12); }
.fp-ed .fp-pf-hire:hover { transform: translateY(-2px); box-shadow: 0 24px 46px -18px rgba(18, 22, 30, 0.72), inset 0 1px 0 rgba(255, 255, 255, 0.16); }
.fp-ed .fp-pf-hire svg { width: 16px; height: 16px; }
/* secondary actions (Share / Manage) — refined glass-line */
.fp-ed .fp-pf-act { background: var(--bg); color: var(--ink); border: 1px solid var(--line-2); }
.fp-ed .fp-pf-act:hover { background: var(--band); border-color: var(--ink-2); transform: translateY(-1px); }
/* polish: avatar ring + creative sparkle on the "Meet" eyebrow */
.fp-ed .fp-pf-profile-head .fp-pf-profile-av { box-shadow: 0 0 0 3px var(--bg), 0 0 0 4px var(--line); }
.fp-ed .fp-pf-meet { display: inline-flex; align-items: center; gap: 0; }
.fp-ed .fp-pf-meet::before { display: none; }
.fp-ed .fp-pf-meet-ic { width: 16px; height: 16px; margin-left: 8px; order: 1; color: #c8922f; flex: none; filter: drop-shadow(0 1px 2px rgba(200, 146, 47, 0.4)); }
/* intro video card (right) — autoplay muted, hover/click to unmute, ONLY a mute/unmute control, no title */
.fp-ed .fp-pf-intro { position: relative; align-self: start; aspect-ratio: 16 / 9; border-radius: 20px; overflow: hidden; background: #0b0b0f; cursor: pointer; box-shadow: 0 30px 72px -46px rgba(18, 22, 30, 0.72); isolation: isolate; }
.fp-ed .fp-pf-intro[hidden] { display: none; }
.fp-ed .fp-pf-intro .fp-pf-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.fp-ed .fp-pf-intro::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 8, 12, 0.04) 0%, transparent 42%, rgba(8, 8, 12, 0.3) 100%); pointer-events: none; }
.fp-ed .fp-pf-intro .fp-pf-sound { z-index: 3; bottom: 12px; right: 12px; width: 38px; height: 38px; }
.fp-ed .fp-pf-intro .fp-pf-sound svg { width: 17px; height: 17px; }
.fp-ed .fp-pf-intro:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
/* toolbar (Dribbble filter-row rhythm) — real type filter, no fabricated categories */
.fp-ed .fp-pf-toolbar-wrap { padding: 30px 0 18px; }
.fp-ed .fp-pf-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 14px; }
.fp-ed .fp-pf-tabs { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.fp-ed .fp-pf-tab { font-size: 0.9rem; font-weight: 500; color: var(--muted); background: none; border: 0; border-radius: 999px; padding: 7px 15px; cursor: pointer; transition: color 0.15s ease, background 0.15s ease; }
.fp-ed .fp-pf-tab:hover { color: var(--ink); background: var(--band); }
.fp-ed .fp-pf-tab.is-active { color: #fff; background: var(--ink); }
.fp-ed .fp-pf-count { font-size: 0.86rem; color: var(--muted); white-space: nowrap; }
/* dense Dribbble grid — 6 columns on desktop; media is the rounded card, caption sits below */
.fp-ed .fp-pf-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 18px; }
.fp-ed .fp-pf-grid.is-empty { display: block; }
@media (max-width: 760px) { .fp-ed .fp-pf-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 14px; } }
@media (max-width: 540px) { .fp-ed .fp-pf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fp-ed .fp-pf-tile { position: relative; background: none; border: 0; cursor: pointer; }
.fp-ed .fp-pf-tile:focus { outline: none; }
.fp-ed .fp-pf-tile:focus-visible .fp-pf-media { outline: 2px solid var(--ink); outline-offset: 3px; }
/* 16:9 video box so a full 1920×1080 reel plays without side-cut — videos use contain, images cover */
.fp-ed .fp-pf-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 12px; background: #0b0b0f; box-shadow: 0 14px 30px -26px rgba(18, 22, 30, 0.55); transition: transform 0.22s ease, box-shadow 0.22s ease; }
.fp-ed .fp-pf-tile:hover .fp-pf-media { transform: translateY(-4px); box-shadow: 0 28px 52px -30px rgba(18, 22, 30, 0.6); }
.fp-ed .fp-pf-video, .fp-ed .fp-pf-img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.fp-ed .fp-pf-img { object-fit: cover; }
.fp-ed .fp-pf-video { object-fit: contain; }
.fp-ed .fp-pf-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 8, 12, 0.1) 0%, transparent 26%, transparent 72%, rgba(8, 8, 12, 0.18) 100%); pointer-events: none; opacity: 0.7; }
.fp-ed .fp-pf-vbadge { position: absolute; top: 9px; left: 9px; z-index: 2; width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; color: #fff; background: rgba(12, 12, 16, 0.5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.fp-ed .fp-pf-vbadge svg { width: 13px; height: 13px; margin-left: 1px; }
.fp-ed .fp-pf-sound { position: absolute; bottom: 9px; right: 9px; z-index: 3; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: rgba(12, 12, 16, 0.55); border: 1px solid rgba(255, 255, 255, 0.22); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); cursor: pointer; transition: background 0.18s ease, transform 0.18s ease; }
.fp-ed .fp-pf-sound:hover { background: rgba(12, 12, 16, 0.72); transform: scale(1.08); }
.fp-ed .fp-pf-sound.is-on { background: #1f9d57; border-color: #1f9d57; }
.fp-ed .fp-pf-sound svg { width: 15px; height: 15px; }
/* tile hover overlay — open cue + role (real data); the card video also auto-unmutes on hover */
.fp-ed .fp-pf-ov { position: absolute; inset: 0; z-index: 2; opacity: 0; pointer-events: none; transition: opacity 0.22s ease; background: linear-gradient(180deg, rgba(8, 8, 12, 0.22) 0%, transparent 30%, transparent 58%, rgba(8, 8, 12, 0.46) 100%); }
.fp-ed .fp-pf-tile:hover .fp-pf-ov, .fp-ed .fp-pf-tile:focus-visible .fp-pf-ov { opacity: 1; }
.fp-ed .fp-pf-ov-open { position: absolute; top: 9px; right: 9px; width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; color: #fff; background: rgba(12, 12, 16, 0.5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.fp-ed .fp-pf-ov-open svg { width: 13px; height: 13px; }
.fp-ed .fp-pf-ov-role { position: absolute; left: 9px; bottom: 9px; max-width: calc(100% - 50px); font-size: 0.72rem; font-weight: 600; color: #fff; background: rgba(255, 255, 255, 0.18); border: 1px solid rgba(255, 255, 255, 0.3); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); border-radius: 999px; padding: 3px 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* modern caption — Space Grotesk title + uppercase role label */
.fp-ed .fp-pf-cap { padding: 11px 3px 2px; }
.fp-ed .fp-pf-cap h3 { font-family: var(--display); font-size: 0.9rem; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); line-height: 1.3; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .fp-pf-cap-sub { display: block; font-family: var(--display); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin: 4px 0 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* big popup */
.fp-ed .fp-pf-modal { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(10, 10, 14, 0.62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.fp-ed .fp-pf-modal.is-open { display: flex; }
body.fp-pf-modal-open { overflow: hidden; }
.fp-ed .fp-pf-dialog { position: relative; width: min(1000px, 96vw); height: min(560px, 86vh); max-height: 86vh; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); background: var(--bg); border: 1px solid var(--line-2); border-radius: 18px; box-shadow: 0 50px 120px -40px rgba(0, 0, 0, 0.6); animation: fp-pf-pop 0.22s ease; }
@keyframes fp-pf-pop { from { opacity: 0; transform: translateY(14px) scale(0.985); } to { opacity: 1; transform: none; } }
.fp-ed .fp-pf-close { position: absolute; top: 12px; right: 12px; z-index: 4; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: rgba(12, 12, 16, 0.55); border: 1px solid rgba(255, 255, 255, 0.2); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); cursor: pointer; transition: background 0.18s ease, transform 0.18s ease; }
.fp-ed .fp-pf-close:hover { background: rgba(12, 12, 16, 0.78); transform: rotate(90deg); }
.fp-ed .fp-pf-close svg { width: 18px; height: 18px; }
.fp-ed .fp-pf-modal-body { display: contents; }
.fp-ed .fp-pf-modal-stage { position: relative; background: #0b0b0f; display: flex; align-items: center; justify-content: center; min-height: 280px; max-height: 92vh; }
.fp-ed .fp-pf-stage-media { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.fp-ed .fp-pf-modal-video, .fp-ed .fp-pf-modal-img { width: 100%; height: 100%; max-height: 92vh; object-fit: contain; display: block; }
.fp-ed .fp-pf-modal-info { display: flex; flex-direction: column; min-height: 0; min-width: 0; background: linear-gradient(180deg, #ffffff, #faf9f6); }
.fp-ed .fp-pf-stage-media .fp-pf-modal-video, .fp-ed .fp-pf-stage-media .fp-pf-modal-img { border-radius: 0; }
/* lightbox nav + counter (over the dark stage) */
.fp-ed .fp-pf-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: rgba(12, 12, 16, 0.5); border: 1px solid rgba(255, 255, 255, 0.22); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); cursor: pointer; transition: background 0.18s ease, transform 0.18s ease; }
.fp-ed .fp-pf-nav:hover { background: rgba(12, 12, 16, 0.82); }
.fp-ed .fp-pf-nav:active { transform: translateY(-50%) scale(0.94); }
.fp-ed .fp-pf-nav.is-prev { left: 14px; }
.fp-ed .fp-pf-nav.is-next { right: 14px; }
.fp-ed .fp-pf-nav svg { width: 20px; height: 20px; }
.fp-ed .fp-pf-modal-count { position: absolute; top: 14px; left: 50%; transform: translateX(-50%); z-index: 5; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.05em; color: #fff; background: rgba(12, 12, 16, 0.55); border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 999px; padding: 4px 12px; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
/* lightbox info column: creator header + scrollable body + sticky foot */
.fp-ed .fp-pf-modal-creator { display: flex; align-items: center; gap: 12px; padding: 17px 26px; border-bottom: 1px solid var(--line); text-decoration: none; color: inherit; transition: background 0.16s ease; flex: none; }
.fp-ed .fp-pf-modal-creator:hover { background: rgba(18, 22, 30, 0.03); }
.fp-ed .fp-pf-modal-av { width: 42px; height: 42px; flex: none; font-size: 0.92rem; }
.fp-ed .fp-pf-modal-av img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.fp-ed .fp-pf-modal-cr-id { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.fp-ed .fp-pf-modal-cr-id strong { font-weight: 600; font-size: 0.96rem; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-ed .fp-pf-modal-cr-id small { color: var(--muted); font-size: 0.8rem; }
.fp-ed .fp-pf-modal-cr-go { margin-left: auto; color: var(--muted); display: flex; flex: none; transition: transform 0.18s ease, color 0.18s ease; }
.fp-ed .fp-pf-modal-creator:hover .fp-pf-modal-cr-go { transform: translateX(3px); color: var(--ink); }
.fp-ed .fp-pf-modal-cr-go svg { width: 18px; height: 18px; }
.fp-ed .fp-pf-modal-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 24px 26px 26px; display: flex; flex-direction: column; gap: 16px; overscroll-behavior: contain; }
.fp-ed .fp-pf-modal-scroll::-webkit-scrollbar { width: 9px; }
.fp-ed .fp-pf-modal-scroll::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 9px; border: 2.5px solid #faf9f6; }
.fp-ed .fp-pf-modal-scroll::-webkit-scrollbar-thumb:hover { background: var(--muted); }
.fp-ed .fp-pf-modal-foot { display: flex; gap: 10px; padding: 16px 26px; border-top: 1px solid var(--line); background: var(--bg); flex: none; }
.fp-ed .fp-pf-modal-foot .ed-btn { flex: 1 1 auto; min-height: 44px; padding: 0 14px; white-space: nowrap; }
.fp-ed .fp-pf-modal-foot .ed-btn svg { width: 16px; height: 16px; flex: none; }
/* =====================  CUSTOM VIDEO PLAYER (.fp-vp) — marketplace default  ===================== */
.fp-ed .fp-vp { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: #07070a; overflow: hidden; outline: none; }
.fp-ed .fp-vp-video { width: 100%; height: 100%; max-height: 100%; object-fit: contain; display: block; background: #07070a; cursor: pointer; }
.fp-ed .fp-vp-big { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 3; width: 78px; height: 78px; border-radius: 50%; border: 0; display: grid; place-items: center; cursor: pointer; color: #0f1115; background: rgba(255, 255, 255, 0.94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 12px 36px -8px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.55), 0 0 0 11px rgba(255, 255, 255, 0.12); transition: transform 0.22s cubic-bezier(0.2, 0.8, 0.3, 1), background 0.2s ease, opacity 0.25s ease, box-shadow 0.22s ease; }
.fp-ed .fp-vp-big:hover { transform: translate(-50%, -50%) scale(1.07); background: #fff; box-shadow: 0 16px 44px -8px rgba(0, 0, 0, 0.62), 0 0 0 1px rgba(255, 255, 255, 0.75), 0 0 0 15px rgba(255, 255, 255, 0.16); }
.fp-ed .fp-vp-big svg { width: 30px; height: 30px; margin-left: 3px; color: #0f1115; filter: none; }
.fp-ed .fp-vp.is-playing .fp-vp-big { opacity: 0; pointer-events: none; transform: translate(-50%, -50%) scale(0.82); }
.fp-ed .fp-vp-spin { position: absolute; top: 50%; left: 50%; margin: -23px 0 0 -23px; z-index: 4; width: 46px; height: 46px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, 0.22); border-top-color: #fff; opacity: 0; pointer-events: none; animation: fp-vp-rot 0.8s linear infinite; }
.fp-ed .fp-vp.is-buffering .fp-vp-spin { opacity: 1; }
.fp-ed .fp-vp.is-buffering .fp-vp-big { opacity: 0; }
@keyframes fp-vp-rot { to { transform: rotate(360deg); } }
.fp-ed .fp-vp-bar { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 3; padding: 9px 13px 10px; border-radius: 16px; background: rgba(16, 16, 22, 0.46); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: 0 16px 40px -16px rgba(0, 0, 0, 0.72), inset 0 1px 0 rgba(255, 255, 255, 0.09); opacity: 0; transform: translateY(10px); transition: opacity 0.24s ease, transform 0.24s ease; }
.fp-ed .fp-vp.is-active .fp-vp-bar, .fp-ed .fp-vp:not(.is-playing) .fp-vp-bar, .fp-ed .fp-vp:focus-within .fp-vp-bar { opacity: 1; transform: none; }
.fp-ed .fp-vp-seek { position: relative; height: 16px; display: flex; align-items: center; cursor: pointer; margin: 0 4px 3px; touch-action: none; }
.fp-ed .fp-vp-seek::before { content: ""; position: absolute; left: 0; right: 0; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, 0.26); transition: height 0.14s ease; }
.fp-ed .fp-vp-buf { position: absolute; left: 0; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, 0.34); width: 0; }
.fp-ed .fp-vp-prog { position: absolute; left: 0; height: 4px; border-radius: 4px; background: linear-gradient(90deg, #d49633, #f2c468); width: 0; box-shadow: 0 0 10px -1px rgba(242, 196, 104, 0.6); }
.fp-ed .fp-vp-knob { position: absolute; top: 50%; left: 0; width: 13px; height: 13px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%) scale(0.55); opacity: 0; transition: opacity 0.15s ease, transform 0.15s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6), 0 0 0 4px rgba(242, 196, 104, 0.28); }
.fp-ed .fp-vp-seek:hover::before, .fp-ed .fp-vp-seek:focus-visible::before { height: 6px; }
.fp-ed .fp-vp-seek:hover .fp-vp-knob, .fp-ed .fp-vp-seek:focus-visible .fp-vp-knob { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.fp-ed .fp-vp-row { display: flex; align-items: center; gap: 7px; }
.fp-ed .fp-vp-btn { width: 36px; height: 36px; border: 0; background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center; border-radius: 9px; flex: none; transition: background 0.16s ease, transform 0.16s ease; }
.fp-ed .fp-vp-btn:hover { background: rgba(255, 255, 255, 0.16); }
.fp-ed .fp-vp-btn:active { transform: scale(0.92); }
.fp-ed .fp-vp-btn svg { width: 20px; height: 20px; }
.fp-ed .fp-vp-play svg { width: 22px; height: 22px; }
.fp-ed .fp-vp-vol { display: flex; align-items: center; }
.fp-ed .fp-vp-volbar { width: 0; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, 0.3); cursor: pointer; overflow: hidden; transition: width 0.2s ease, margin 0.2s ease; touch-action: none; }
.fp-ed .fp-vp-vol:hover .fp-vp-volbar, .fp-ed .fp-vp-volbar:focus, .fp-ed .fp-vp-volbar:focus-within { width: 62px; margin: 0 6px 0 1px; }
.fp-ed .fp-vp-volfill { height: 100%; width: 100%; background: #fff; border-radius: 4px; }
.fp-ed .fp-vp-time { color: rgba(255, 255, 255, 0.9); font-size: 0.78rem; font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: 0.02em; margin-left: 5px; white-space: nowrap; }
.fp-ed .fp-vp-time b { font-weight: 600; color: #fff; }
.fp-ed .fp-vp-spacer { flex: 1 1 auto; }
.fp-ed .fp-vp.is-full, .fp-ed .fp-vp:fullscreen { width: 100vw; height: 100vh; background: #000; border-radius: 0; }
.fp-ed .fp-vp:-webkit-full-screen { width: 100vw; height: 100vh; background: #000; }
@media (max-width: 600px) {
  .fp-ed .fp-vp-big { width: 62px; height: 62px; }
  .fp-ed .fp-vp-big svg { width: 27px; height: 27px; }
  .fp-ed .fp-vp-bar { padding: 28px 10px 10px; }
  .fp-ed .fp-vp-time { font-size: 0.74rem; }
  .fp-ed .fp-vp-vol:hover .fp-vp-volbar { width: 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-ed .fp-vp-big, .fp-ed .fp-vp-bar, .fp-ed .fp-vp-btn, .fp-ed .fp-vp-knob, .fp-ed .fp-vp-seek::before { transition: none; }
}
.fp-ed .fp-pf-modal-chips { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fp-ed .fp-pf-modal-type { font-size: 0.66rem; letter-spacing: 0.09em; text-transform: uppercase; font-weight: 600; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; }
.fp-ed .fp-pf-modal-role { font-size: 0.74rem; font-weight: 600; color: #1f7a3d; background: #e9f7ef; border: 1px solid #c8ebd6; border-radius: 999px; padding: 3px 11px; }
.fp-ed .fp-pf-modal-title { font-family: var(--serif, Fraunces, serif); font-weight: 500; font-size: clamp(1.24rem, 1.05rem + 0.7vw, 1.5rem); line-height: 1.22; letter-spacing: -0.01em; color: var(--ink); margin: 0; }
.fp-ed .fp-pf-modal-desc { color: var(--ink-2); font-size: 0.95rem; line-height: 1.7; margin: 0; }
.fp-ed .fp-pf-modal-desc.is-muted { color: var(--muted); font-style: italic; }
/* toast */
.fp-ed .fp-pf-toast, body .fp-pf-toast { position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 18px); z-index: 1100; display: inline-flex; align-items: center; gap: 9px; background: var(--ink); color: #fff; font-size: 0.86rem; font-weight: 600; padding: 10px 16px; border-radius: 999px; box-shadow: 0 20px 44px -20px rgba(0, 0, 0, 0.55); opacity: 0; pointer-events: none; transition: opacity 0.22s ease, transform 0.22s cubic-bezier(0.2, 0.7, 0.2, 1); }
.fp-ed .fp-pf-toast.is-on, body .fp-pf-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.fp-ed .fp-pf-toast-ic, body .fp-pf-toast-ic { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: #1f9d57; color: #fff; flex: none; }
.fp-ed .fp-pf-toast-ic svg, body .fp-pf-toast-ic svg { width: 13px; height: 13px; display: block; }
@media (max-width: 820px) {
  .fp-ed .fp-pf-top { grid-template-columns: 1fr; gap: 16px; }
  .fp-ed .fp-pf-intro { min-height: 0; aspect-ratio: 16 / 9; }
  .fp-ed .fp-pf-profile-actions .ed-btn { flex: 1 1 auto; }
}
@media (max-width: 760px) {
  .fp-ed .fp-pf-dialog { grid-template-columns: 1fr; grid-template-rows: auto auto; height: auto; max-height: 94vh; overflow-y: auto; }
  .fp-ed .fp-pf-modal-stage { max-height: 56vh; }
  .fp-ed .fp-pf-modal-video, .fp-ed .fp-pf-modal-img { max-height: 56vh; }
  .fp-ed .fp-pf-modal-scroll { overflow: visible; padding: 18px 20px; }
  .fp-ed .fp-pf-modal-foot { position: sticky; bottom: 0; }
  .fp-ed .fp-pf-nav { width: 38px; height: 38px; }
}
@media (max-width: 600px) {
  .fp-ed .fp-pf-modal { padding: 0; }
  .fp-ed .fp-pf-dialog { width: 100vw; max-height: 100vh; height: 100vh; border-radius: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-ed .fp-pf-tile .fp-pf-media, .fp-ed .fp-pf-sound, .fp-ed .fp-pf-close, .fp-ed .fp-pf-ov { transition: none; }
  .fp-ed .fp-pf-dialog { animation: none; }
}

/* ===== Seller profile — portfolio CTA (cards replaced by a button) ===== */
.fp-ed[data-public-profile] .ed-sp-pf-cta { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding: 22px 24px; border: 1px solid var(--line); border-radius: 18px; background: var(--bg); box-shadow: 0 16px 38px -32px rgba(18, 22, 30, 0.5); }
.fp-ed .ed-sp-pf-thumbs { display: flex; align-items: center; flex: none; }
.fp-ed .ed-sp-pf-thumb { position: relative; width: 64px; height: 50px; border-radius: 10px; overflow: hidden; border: 2px solid var(--bg); margin-left: -14px; box-shadow: 0 8px 18px -12px rgba(18, 22, 30, 0.5); background: var(--band); }
.fp-ed .ed-sp-pf-thumb:first-child { margin-left: 0; }
.fp-ed .ed-sp-pf-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-ed .ed-sp-pf-play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; background: rgba(10, 10, 14, 0.34); }
.fp-ed .ed-sp-pf-play svg { width: 16px; height: 16px; margin-left: 1px; }
.fp-ed .ed-sp-pf-more { display: inline-grid; place-items: center; width: 46px; height: 50px; margin-left: -14px; border-radius: 10px; border: 2px solid var(--bg); background: var(--ink); color: #fff; font-size: 0.82rem; font-weight: 600; }
.fp-ed .ed-sp-pf-tx { min-width: 0; flex: 1 1 220px; }
.fp-ed .ed-sp-pf-tx strong { display: block; font-size: 1.04rem; color: var(--ink); }
.fp-ed .ed-sp-pf-tx span { display: block; margin-top: 3px; color: var(--muted); font-size: 0.88rem; line-height: 1.45; }
.fp-ed .ed-sp-pf-act { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fp-ed .ed-sp-pf-act .ed-btn { display: inline-flex; align-items: center; gap: 8px; }
.fp-ed .ed-sp-pf-act .ed-btn svg { width: 16px; height: 16px; }
@media (max-width: 560px) {
  .fp-ed[data-public-profile] .ed-sp-pf-cta { gap: 16px; padding: 18px; }
  .fp-ed .ed-sp-pf-act { width: 100%; }
  .fp-ed .ed-sp-pf-act .ed-btn { flex: 1 1 auto; justify-content: center; }
}

/* ===== Seller portfolio MANAGEMENT page (.ed-pf-*) ===== */
.fp-ed .ed-pf-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 4px 0 8px; }
.fp-ed .ed-pf-head p { color: var(--muted); margin-top: 8px; max-width: 62ch; }
.fp-ed .ed-pf-head-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fp-ed .ed-pf-head-actions .ed-btn { display: inline-flex; align-items: center; gap: 8px; }
.fp-ed .ed-pf-head-actions .ed-btn svg { width: 16px; height: 16px; }
.fp-ed .ed-pf-list { margin-top: 24px; }
.fp-ed .ed-pf-intro { position: relative; margin-top: 24px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); border: 1px solid color-mix(in srgb, var(--brand) 14%, var(--line)); border-radius: 22px; overflow: hidden; background: linear-gradient(135deg, color-mix(in srgb, var(--brand) 8%, var(--bg)), var(--bg) 58%); box-shadow: 0 30px 64px -46px rgba(12, 30, 70, 0.55); }
.fp-ed .ed-pf-intro::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--brand), color-mix(in srgb, var(--brand) 32%, transparent) 70%, transparent); z-index: 4; }
.fp-ed .ed-pf-intro::after { content: ""; position: absolute; top: -35%; right: -6%; width: 48%; height: 170%; background: radial-gradient(circle, color-mix(in srgb, var(--brand) 12%, transparent), transparent 68%); pointer-events: none; z-index: 0; }
.fp-ed .ed-pf-intro.is-empty { grid-template-columns: minmax(0, 1.22fr) minmax(0, 0.78fr); }
.fp-ed .ed-pf-intro-tx { position: relative; z-index: 1; padding: 32px 34px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0; min-width: 0; }
.fp-ed .ed-pf-intro-kick { display: inline-flex; align-items: center; gap: 8px; padding: 5px 13px 5px 6px; border-radius: 999px; background: color-mix(in srgb, var(--brand) 9%, var(--paper)); border: 1px solid color-mix(in srgb, var(--brand) 22%, transparent); font-family: var(--display); font-weight: 700; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--brand); }
.fp-ed .ed-pf-intro-kick svg { width: 19px; height: 19px; padding: 4px; border-radius: 50%; background: var(--brand); color: #fff; box-shadow: 0 4px 10px -4px rgba(37, 99, 235, 0.7); }
.fp-ed .ed-pf-intro-tx h3 { font-family: var(--serif); font-size: clamp(1.34rem, 2.4vw, 1.74rem); letter-spacing: -0.02em; line-height: 1.1; margin: 13px 0 5px; color: var(--ink); }
.fp-ed .ed-pf-intro-tx p { font-size: 0.95rem; line-height: 1.55; color: var(--muted); max-width: 46ch; margin: 0; }
.fp-ed .ed-pf-intro-points { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.fp-ed .ed-pf-intro-points li { display: flex; align-items: flex-start; gap: 10px; font-size: 0.875rem; line-height: 1.4; color: color-mix(in srgb, var(--ink) 68%, transparent); }
.fp-ed .ed-pf-intro-points svg { flex: none; width: 18px; height: 18px; margin-top: 1px; padding: 3.5px; border-radius: 50%; background: color-mix(in srgb, var(--brand) 13%, var(--paper)); color: var(--brand); }
.fp-ed .ed-pf-intro-hint { font-size: 0.76rem; color: var(--muted); margin-top: 12px; }
.fp-ed .ed-pf-intro-tx > .ed-btn { margin-top: 20px; }
.fp-ed .ed-pf-intro-actions { display: flex; align-items: center; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.fp-ed .ed-pf-intro .ed-btn { white-space: nowrap; }
.fp-ed .ed-pf-intro .ed-pf-intro-actions [data-pf-intro-add] { border-radius: 12px; padding: 11px 18px; font-weight: 600; border: 1px solid color-mix(in srgb, var(--brand) 28%, var(--line)); background: color-mix(in srgb, var(--brand) 5%, var(--paper)); color: var(--brand); box-shadow: 0 8px 18px -14px rgba(37, 99, 235, 0.55); transition: transform 0.16s ease, box-shadow 0.22s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.fp-ed .ed-pf-intro .ed-pf-intro-actions [data-pf-intro-add] svg { width: 16px; height: 16px; color: var(--brand); transition: color 0.2s ease; }
.fp-ed .ed-pf-intro .ed-pf-intro-actions [data-pf-intro-add]:hover { background: var(--brand); border-color: var(--brand); color: #fff; transform: translateY(-1px); box-shadow: 0 16px 30px -16px rgba(37, 99, 235, 0.6); }
.fp-ed .ed-pf-intro .ed-pf-intro-actions [data-pf-intro-add]:hover svg { color: #fff; }
.fp-ed .ed-pf-intro .ed-pf-intro-actions .ed-pf-del { width: 42px; height: 42px; flex: none; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); color: var(--muted); transition: transform 0.16s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.fp-ed .ed-pf-intro .ed-pf-intro-actions .ed-pf-del svg { width: 17px; height: 17px; }
.fp-ed .ed-pf-intro .ed-pf-intro-actions .ed-pf-del:hover { border-color: color-mix(in srgb, #b3261e 38%, var(--line)); background: color-mix(in srgb, #b3261e 7%, var(--paper)); color: #b3261e; transform: translateY(-1px); }
.fp-ed .ed-pf-intro-status { font-size: 0.82rem; margin-top: 12px; min-height: 1em; }
.fp-ed .ed-pf-intro-status.is-ok { color: #1f7a3d; }
.fp-ed .ed-pf-intro-status.is-err { color: #b3261e; }
.fp-ed .ed-pf-intro-preview { position: relative; z-index: 1; min-height: 256px; background: #0b0b0c; overflow: hidden; }
.fp-ed .ed-pf-intro-preview video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-ed .ed-pf-intro-preview::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 9, 14, 0.1) 0%, transparent 30%, transparent 60%, rgba(6, 9, 14, 0.42)); pointer-events: none; z-index: 1; }
.fp-ed .ed-pf-intro-badge { position: absolute; top: 13px; left: 13px; z-index: 2; display: inline-flex; align-items: center; gap: 5px; padding: 5px 11px 5px 8px; border-radius: 999px; background: color-mix(in srgb, var(--brand) 90%, #000); color: #fff; font-family: var(--display); font-weight: 700; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.07em; box-shadow: 0 8px 18px -8px rgba(37, 99, 235, 0.75); }
.fp-ed .ed-pf-intro-badge svg { width: 11px; height: 11px; }
.fp-ed .ed-pf-intro-art { position: relative; z-index: 1; display: grid; place-items: center; background: linear-gradient(160deg, color-mix(in srgb, var(--brand) 16%, var(--band)), var(--band)); border-left: 1px solid var(--line); }
.fp-ed .ed-pf-intro-art svg { width: 58px; height: 58px; padding: 18px; border-radius: 50%; background: var(--brand); color: #fff; box-shadow: 0 22px 44px -18px rgba(37, 99, 235, 0.7); }
@media (max-width: 760px) {
  .fp-ed .ed-pf-intro, .fp-ed .ed-pf-intro.is-empty { grid-template-columns: 1fr; }
  .fp-ed .ed-pf-intro-preview { min-height: 0; aspect-ratio: 16 / 10; order: -1; }
  .fp-ed .ed-pf-intro-art { display: none; }
  .fp-ed .ed-pf-intro-tx { padding: 24px 22px; }
}
.fp-ed .ed-pf-skeleton { padding: 44px 16px; color: var(--muted); text-align: center; border: 1px dashed var(--line-2); border-radius: 16px; }
.fp-ed .ed-pf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.fp-ed .ed-pf-card { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--bg); box-shadow: 0 14px 34px -32px rgba(18, 22, 30, 0.5); transition: box-shadow 0.2s ease, border-color 0.2s ease; }
.fp-ed .ed-pf-card:hover { box-shadow: 0 22px 46px -30px rgba(18, 22, 30, 0.5); border-color: var(--line-2); }
.fp-ed .ed-pf-card-media { position: relative; aspect-ratio: 16 / 10; background: #0e0e12; overflow: hidden; }
.fp-ed .ed-pf-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-ed .ed-pf-noimg { position: absolute; inset: 0; background: linear-gradient(135deg, var(--band), var(--line)); }
.fp-ed .ed-pf-vplay { position: absolute; bottom: 10px; left: 10px; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; color: #fff; background: rgba(12, 12, 16, 0.55); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
.fp-ed .ed-pf-vplay svg { width: 14px; height: 14px; margin-left: 1px; }
.fp-ed .ed-pf-card-body { padding: 14px 15px 15px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.fp-ed .ed-pf-card-chips { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.fp-ed .ed-pf-type { font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 2px 8px; }
.fp-ed .ed-pf-role { font-size: 0.66rem; font-weight: 600; color: #1f7a3d; background: #e9f7ef; border: 1px solid #c8ebd6; border-radius: 999px; padding: 2px 9px; }
.fp-ed .ed-pf-card-body h3 { font-size: 0.96rem; font-weight: 600; color: var(--ink); line-height: 1.3; margin: 0; }
.fp-ed .ed-pf-card-body p { font-size: 0.85rem; color: var(--muted); line-height: 1.45; margin: 0; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fp-ed .ed-pf-card-actions { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 6px; }
.fp-ed .ed-pf-card-actions .ed-btn-sm { display: inline-flex; align-items: center; gap: 6px; }
.fp-ed .ed-pf-card-actions .ed-btn-sm svg { width: 14px; height: 14px; }
.fp-ed .ed-pf-del { margin-left: auto; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; border: 1px solid var(--line); background: var(--bg); color: var(--muted); cursor: pointer; transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease; }
.fp-ed .ed-pf-del:hover { color: #b4231f; border-color: #f0c9c6; background: #fcf2f1; }
.fp-ed .ed-pf-del svg { width: 16px; height: 16px; }
.fp-ed .ed-pf-addcard { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 210px; border: 2px dashed var(--line-2); border-radius: 16px; background: transparent; color: var(--muted); cursor: pointer; font-size: 0.92rem; font-weight: 500; transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease; }
.fp-ed .ed-pf-addcard:hover { border-color: var(--ink); color: var(--ink); background: var(--paper); }
.fp-ed .ed-pf-addcard-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--band); color: var(--ink); }
.fp-ed .ed-pf-addcard-ic svg { width: 20px; height: 20px; }
.fp-ed .ed-pf-empty { text-align: center; padding: 52px 20px; border: 1px dashed var(--line-2); border-radius: 18px; background: var(--paper); }
.fp-ed .ed-pf-empty-ic { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; margin: 0 auto 16px; background: var(--band); color: var(--ink); }
.fp-ed .ed-pf-empty-ic svg { width: 26px; height: 26px; }
.fp-ed .ed-pf-empty h3 { font-size: 1.2rem; margin: 0 0 8px; }
.fp-ed .ed-pf-empty p { color: var(--muted); max-width: 48ch; margin: 0 auto 18px; line-height: 1.5; }
.fp-ed .ed-pf-empty .ed-btn { display: inline-flex; align-items: center; gap: 8px; }
.fp-ed .ed-pf-empty .ed-btn svg { width: 16px; height: 16px; }
/* editor modal */
.fp-ed .ed-pf-modal { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(8, 12, 20, 0.62); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); }
.fp-ed .ed-pf-modal.is-open { display: flex; }
.fp-ed .ed-pf-dialog { width: min(580px, 96vw); max-height: 92vh; display: flex; flex-direction: column; background: var(--bg); border: 1px solid color-mix(in srgb, var(--brand) 12%, var(--line-2)); border-radius: 22px; overflow: hidden; box-shadow: 0 60px 130px -42px rgba(8, 21, 50, 0.6); animation: fp-pf-pop 0.24s cubic-bezier(0.22, 1, 0.36, 1); }
.fp-ed .ed-pf-dialog-head { position: relative; display: flex; align-items: center; gap: 14px; padding: 20px 22px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, color-mix(in srgb, var(--brand) 7%, var(--bg)), var(--bg)); }
.fp-ed .ed-pf-dialog-head::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--brand), color-mix(in srgb, var(--brand) 30%, transparent) 70%, transparent); }
.fp-ed .ed-pf-head-ic { flex: none; width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: var(--brand); color: #fff; box-shadow: 0 10px 22px -10px rgba(37, 99, 235, 0.65); }
.fp-ed .ed-pf-head-ic svg { width: 22px; height: 22px; }
.fp-ed .ed-pf-head-tx { flex: 1 1 auto; min-width: 0; }
.fp-ed .ed-pf-dialog-head h2 { font-family: var(--serif); font-size: 1.32rem; letter-spacing: -0.02em; line-height: 1.1; margin: 0; color: var(--ink); }
.fp-ed .ed-pf-head-sub { font-size: 0.82rem; color: var(--muted); margin: 3px 0 0; }
.fp-ed .ed-pf-x { flex: none; width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; border: 1px solid var(--line); background: var(--bg); color: var(--muted); cursor: pointer; transition: color 0.16s ease, border-color 0.16s ease, background 0.16s ease; }
.fp-ed .ed-pf-x:hover { color: var(--ink); border-color: color-mix(in srgb, var(--brand) 35%, var(--line-2)); background: color-mix(in srgb, var(--brand) 6%, var(--bg)); }
.fp-ed .ed-pf-x svg { width: 18px; height: 18px; }
.fp-ed .ed-pf-dialog-body { padding: 20px 22px; overflow-y: auto; display: flex; flex-direction: column; gap: 16px; }
.fp-ed .ed-pf-field-block { display: flex; flex-direction: column; gap: 8px; }
.fp-ed .ed-pf-blocklabel { font-family: var(--display); font-weight: 600; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.fp-ed .ed-pf-typeseg { align-self: flex-start; }
.fp-ed .ed-pf-typeseg button { display: inline-flex; align-items: center; gap: 7px; }
.fp-ed .ed-pf-typeseg button svg { width: 15px; height: 15px; }
.fp-ed .ed-pf-drop { position: relative; min-height: 168px; border: 2px dashed color-mix(in srgb, var(--brand) 22%, var(--line-2)); border-radius: 16px; background: linear-gradient(160deg, color-mix(in srgb, var(--brand) 5%, var(--paper)), var(--paper)); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; text-align: center; cursor: pointer; overflow: hidden; padding: 22px; transition: border-color 0.18s ease, background 0.18s ease; }
.fp-ed .ed-pf-drop:hover { border-color: var(--brand); background: color-mix(in srgb, var(--brand) 8%, var(--paper)); }
.fp-ed .ed-pf-drop.has-media { border-style: solid; border-color: var(--line); padding: 0; min-height: 0; cursor: default; background: #0e0e12; }
.fp-ed .ed-pf-drop-preview { width: 100%; }
.fp-ed .ed-pf-drop-preview img, .fp-ed .ed-pf-drop-preview video { width: 100%; max-height: 300px; object-fit: cover; display: block; background: #0e0e12; }
.fp-ed .ed-pf-drop.has-media .ed-pf-drop-cta { padding: 12px; display: flex; justify-content: center; }
.fp-ed .ed-pf-drop:not(.has-media) .ed-pf-drop-cta { display: flex; flex-direction: column; align-items: center; gap: 7px; }
.fp-ed .ed-pf-drop:not(.has-media) .ed-pf-drop-cta .ed-pf-drop-ic { margin-bottom: 3px; }
.fp-ed .ed-pf-drop-ic { width: 50px; height: 50px; border-radius: 15px; display: grid; place-items: center; background: var(--brand); color: #fff; box-shadow: 0 12px 26px -12px rgba(37, 99, 235, 0.6); }
.fp-ed .ed-pf-drop-ic svg { width: 22px; height: 22px; }
.fp-ed .ed-pf-drop strong { font-size: 0.98rem; color: var(--ink); }
.fp-ed .ed-pf-hint { font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-pf-poster-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.fp-ed .ed-pf-poster-row[hidden] { display: none; }
.fp-ed .ed-pf-poster-thumb { width: 60px; height: 44px; border-radius: 9px; overflow: hidden; background: var(--band); border: 1px solid var(--line); flex: none; }
.fp-ed .ed-pf-poster-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-ed .ed-pf-poster-tx { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fp-ed .ed-pf-fld .ed-pf-fhead { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.fp-ed .ed-pf-count { font-family: var(--display); font-size: 0.72rem; font-weight: 600; font-style: normal; color: var(--muted); flex: none; letter-spacing: 0.01em; transition: color 0.16s ease; }
.fp-ed .ed-pf-count.is-warn { color: #9a6a00; }
.fp-ed .ed-pf-count.is-full { color: #b4231f; }
.fp-ed .ed-pf-dialog .ed-field input:focus, .fp-ed .ed-pf-dialog .ed-field textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 16%, transparent); }
.fp-ed .ed-pf-ed-status { font-size: 0.84rem; margin: 0; min-height: 1.1em; }
.fp-ed .ed-pf-ed-status.is-err { color: #b4231f; }
.fp-ed .ed-pf-ed-status.is-ok { color: #1f7a3d; }
.fp-ed .ed-pf-dialog-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 22px; border-top: 1px solid var(--line); background: var(--paper); }
.fp-ed .ed-pf-foot-hint { display: inline-flex; align-items: center; gap: 6px; font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-pf-foot-hint svg { width: 15px; height: 15px; color: color-mix(in srgb, var(--brand) 60%, var(--muted)); }
.fp-ed .ed-pf-foot-act { display: inline-flex; align-items: center; gap: 10px; }
@media (max-width: 560px) {
  .fp-ed .ed-pf-head-actions { width: 100%; }
  .fp-ed .ed-pf-head-actions .ed-btn { flex: 1 1 auto; justify-content: center; }
  .fp-ed .ed-pf-grid { grid-template-columns: 1fr; }
  .fp-ed .ed-pf-head-sub { display: none; }
  .fp-ed .ed-pf-foot-hint { display: none; }
  .fp-ed .ed-pf-dialog-foot { justify-content: flex-end; }
}

.fp-ed .messages-offer-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 6px; }
.fp-ed .messages-offer-seg-opt {
  display: grid; gap: 2px; padding: 12px 14px; border: 1.5px solid var(--line, #e2e7e4);
  border-radius: 12px; cursor: pointer; background: var(--paper, #fff); position: relative;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.fp-ed .messages-offer-seg-opt input { position: absolute; opacity: 0; pointer-events: none; }
.fp-ed .messages-offer-seg-opt.is-active {
  border-color: #0e9f6e; background: color-mix(in srgb, #0e9f6e 7%, var(--paper, #fff));
  box-shadow: 0 1px 0 rgba(14, 159, 110, 0.14);
}
.fp-ed .messages-offer-seg-opt:focus-within { outline: 2px solid color-mix(in srgb, #0e9f6e 55%, transparent); outline-offset: 2px; }
.fp-ed .messages-offer-seg-t { font-weight: 700; font-size: 0.92rem; color: var(--ink, #14181a); }
.fp-ed .messages-offer-seg-d { color: var(--muted, #6b7280); font-size: 0.78rem; }
.fp-ed .messages-offer-suffix { color: var(--muted, #6b7280); font-size: 0.85rem; padding: 0 6px; }
.fp-ed .messages-offer-hrpreview {
  margin-top: 12px; padding: 11px 13px; border-radius: 10px; font-size: 0.85rem; font-weight: 600;
  color: var(--ink, #14181a); background: color-mix(in srgb, #0e9f6e 8%, var(--paper, #fff));
  border: 1px solid color-mix(in srgb, #0e9f6e 22%, var(--line, #e2e7e4));
}
.fp-ed .messages-offer-hrnote { display: block; margin-top: 8px; color: var(--muted, #6b7280); font-size: 0.78rem; line-height: 1.5; }
.fp-ed .messages-contract-typebadge {
  display: inline-flex; align-items: center; margin-left: 6px; padding: 2px 8px; border-radius: 999px;
  background: #0e7490; color: #fff; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
}
.fp-ed .messages-contract-detail-hrnote { margin-top: 10px; color: var(--muted, #6b7280); font-size: 0.8rem; line-height: 1.55; }
@media (max-width: 480px) {
  .fp-ed .messages-offer-seg { grid-template-columns: 1fr; }
}

.fp-ed .ed-oc-hr-strip {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  padding: 14px 18px; border: 1px solid var(--line); border-radius: var(--r2, 14px);
  background: linear-gradient(180deg, color-mix(in srgb, #0e7490 6%, var(--paper)), var(--paper));
}
.fp-ed .ed-oc-hr-strip-main { display: flex; align-items: center; gap: 12px; }
.fp-ed .ed-oc-hr-strip-main svg { width: 26px; height: 26px; color: #0e7490; flex: 0 0 auto; }
.fp-ed .ed-oc-hr-strip-k { display: block; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.fp-ed .ed-oc-hr-strip-main strong { font-size: 1.02rem; }
.fp-ed .ed-oc-hr-strip-stats { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.fp-ed .ed-oc-hr-strip-stats > span { display: flex; flex-direction: column; font-size: 0.74rem; color: var(--muted); line-height: 1.2; }
.fp-ed .ed-oc-hr-strip-stats > span b { font-family: var(--serif); font-size: 1.12rem; color: var(--ink); font-weight: 600; }
.fp-ed .ed-oc-hr-strip-stats > span.ed-pill { flex-direction: row; }
.fp-ed .ed-oc-hr-whead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.fp-ed .ed-oc-hr-note { margin: 4px 0 12px; color: var(--muted); font-size: 0.86rem; line-height: 1.5; }
.fp-ed .ed-oc-hr-note.is-warn { color: #9a5b00; }
.fp-ed .ed-oc-hr-bar { height: 9px; border-radius: 999px; background: var(--band); overflow: hidden; }
.fp-ed .ed-oc-hr-bar-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #0e9f6e, #0e7490); transition: width 0.3s ease; }
.fp-ed .ed-oc-hr-wstats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 14px 0; }
.fp-ed .ed-oc-hr-wstats > div { padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.fp-ed .ed-oc-hr-wstats span { display: block; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.fp-ed .ed-oc-hr-wstats strong { display: block; margin-top: 2px; font-size: 1.02rem; }
.fp-ed .ed-oc-hr-wact { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.fp-ed .ed-oc-hr-wact .ed-btn { flex: 1 1 auto; margin-top: 0 !important; }
.fp-ed .ed-oc-hr-logwrap { margin-top: 14px; }
.fp-ed .ed-oc-subh { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin: 0 0 8px; }
.fp-ed .ed-oc-hr-logs { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.fp-ed .ed-oc-hr-logs th { text-align: left; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); font-weight: 600; padding: 6px 10px; border-bottom: 1px solid var(--line); }
.fp-ed .ed-oc-hr-logs td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.fp-ed .ed-oc-hr-logs tr:last-child td { border-bottom: 0; }
.fp-ed .ed-oc-hr-logact { text-align: right; white-space: nowrap; }
.fp-ed .ed-oc-hr-iconbtn { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--muted); cursor: pointer; padding: 5px; margin-left: 4px; }
.fp-ed .ed-oc-hr-iconbtn:hover { color: var(--ink); border-color: var(--ink); }
.fp-ed .ed-oc-hr-iconbtn.is-del:hover { color: #b4231f; border-color: #b4231f; }
.fp-ed .ed-oc-hr-iconbtn svg { width: 100%; height: 100%; }
.fp-ed .ed-oc-hr-weeks { display: flex; flex-direction: column; gap: 8px; }
.fp-ed .ed-oc-hr-wrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.fp-ed .ed-oc-hr-wrow-l { display: flex; flex-direction: column; gap: 1px; }
.fp-ed .ed-oc-hr-wrow-l strong { font-size: 0.94rem; }
.fp-ed .ed-oc-hr-wrow-l span { font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-oc-hr-wrow-r { display: flex; align-items: center; gap: 12px; }
.fp-ed .ed-oc-hr-wrow-money { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; font-size: 0.82rem; }
.fp-ed .ed-oc-hr-cleared { color: #1f7a3d; font-weight: 600; }
.fp-ed .ed-oc-hr-warn { color: #9a5b00; font-weight: 600; }
.fp-ed .ed-oc-hr-review { border-color: #0e7490; box-shadow: 0 0 0 1px #0e7490 inset; background: linear-gradient(180deg, color-mix(in srgb, #0e7490 6%, var(--paper)), var(--paper)); }
@media (max-width: 700px) {
  .fp-ed .ed-oc-hr-wstats { grid-template-columns: 1fr; }
  .fp-ed .ed-oc-hr-strip-stats { gap: 12px; }
  .fp-ed .ed-oc-hr-wrow { flex-direction: column; align-items: flex-start; }
  .fp-ed .ed-oc-hr-wrow-r { width: 100%; justify-content: space-between; }
  .fp-ed .ed-oc-hr-wrow-money { align-items: flex-start; }
}
.fp-ed .ed-sc-hourly {
  display: inline-block; vertical-align: middle; margin-left: 6px; padding: 1px 7px; border-radius: 999px;
  background: #0e7490; color: #fff; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.05em;
  text-transform: uppercase; font-family: var(--body);
}

/* ---- Log-hours modal (advanced) ---- */
.fp-ed .ed-hl-cap { border: 1px solid var(--line); border-radius: 14px; padding: 13px 14px; margin-bottom: 14px;
  background: linear-gradient(180deg, color-mix(in srgb, #0e7490 6%, var(--paper)), var(--paper)); }
.fp-ed .ed-hl-cap-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.fp-ed .ed-hl-cap-k { display: inline-flex; align-items: center; gap: 7px; font-size: 0.74rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--ink-2); }
.fp-ed .ed-hl-cap-k svg { width: 16px; height: 16px; color: #0e7490; }
.fp-ed .ed-hl-cap-rate { display: inline-flex; align-items: baseline; gap: 5px; font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-hl-cap-rate strong { font-family: var(--serif); font-size: 1.1rem; font-weight: 600; color: var(--ink); }
.fp-ed .ed-hl-cap-rate small { font-size: 0.72rem; }
.fp-ed .ed-hl-bar { position: relative; display: flex; height: 9px; border-radius: 999px; background: var(--band); overflow: hidden; }
.fp-ed .ed-hl-bar-fill { height: 100%; background: linear-gradient(90deg, #0e9f6e, #0e7490); }
.fp-ed .ed-hl-bar-add { height: 100%; transition: width 0.18s ease;
  background: repeating-linear-gradient(45deg, color-mix(in srgb, #0e7490 52%, transparent), color-mix(in srgb, #0e7490 52%, transparent) 4px, color-mix(in srgb, #0e7490 26%, transparent) 4px, color-mix(in srgb, #0e7490 26%, transparent) 8px); }
.fp-ed .ed-hl-cap-meta { margin-top: 7px; font-size: 0.76rem; color: var(--muted); }

.fp-ed .ed-hl-chips { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.fp-ed .ed-hl-chips-k { margin-right: 2px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.fp-ed .ed-hl-chip { min-height: 30px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--bg); color: var(--ink-2); font-family: inherit; font-size: 0.82rem; font-weight: 600; cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
.fp-ed .ed-hl-chip:hover:not(:disabled) { border-color: #0e7490; color: #0e7490; }
.fp-ed .ed-hl-chip.is-active { background: #0e7490; border-color: #0e7490; color: #fff; }
.fp-ed .ed-hl-chip:disabled { opacity: 0.4; cursor: not-allowed; }

.fp-ed .ed-hl-bill { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); transition: border-color 0.18s ease, background 0.18s ease; }
.fp-ed .ed-hl-bill.is-over { border-color: #d68a1a; background: color-mix(in srgb, #d68a1a 7%, var(--paper)); }
.fp-ed .ed-hl-bill-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fp-ed .ed-hl-bill-row > span { display: inline-flex; align-items: center; gap: 7px; font-size: 0.82rem; font-weight: 600; color: var(--ink-2); }
.fp-ed .ed-hl-bill-row > span svg { width: 15px; height: 15px; color: #0e7490; }
.fp-ed .ed-hl-bill-row strong { font-family: var(--serif); font-size: 1.5rem; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); }
.fp-ed .ed-hl-bill.is-over .ed-hl-bill-row strong { color: #9a5b00; }
.fp-ed .ed-hl-bill-sub { margin: 5px 0 0; font-size: 0.78rem; line-height: 1.45; color: var(--muted); }
.fp-ed .ed-hl-bill.is-over .ed-hl-bill-sub { color: #9a5b00; }

.fp-ed .ed-hl-count { font-weight: 500; }
.fp-ed .ed-hl-drop { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1.5px dashed var(--line-2); border-radius: 12px; background: var(--paper); cursor: pointer; transition: border-color 0.16s ease, background 0.16s ease; }
.fp-ed .ed-hl-drop:hover { border-color: #0e7490; background: color-mix(in srgb, #0e7490 4%, var(--paper)); }
.fp-ed .ed-hl-drop > svg { width: 26px; height: 26px; color: #0e7490; flex: 0 0 auto; }
.fp-ed .ed-hl-drop strong { display: block; font-size: 0.88rem; color: var(--ink); }
.fp-ed .ed-hl-drop small { display: block; margin-top: 1px; font-size: 0.75rem; color: var(--muted); }
.fp-ed .ed-hl-file { display: flex; align-items: center; gap: 9px; margin-top: 8px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--band); font-size: 0.82rem; color: var(--ink-2); }
.fp-ed .ed-hl-file[hidden] { display: none; }
.fp-ed .ed-hl-file > svg { width: 18px; height: 18px; color: #0e7490; flex: 0 0 auto; }
.fp-ed .ed-hl-file span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-ed .ed-hl-fileclear { width: 24px; height: 24px; border: 0; background: none; font-size: 1.2rem; line-height: 1; color: var(--muted); cursor: pointer; flex: 0 0 auto; }
.fp-ed .ed-hl-fileclear:hover { color: #b4231f; }
.fp-ed .ed-hl-foot { margin: 12px 0 0; font-size: 0.78rem; line-height: 1.5; }
@media (max-width: 560px) {
  .fp-ed .ed-hl-bill-row strong { font-size: 1.3rem; }
  .fp-ed .ed-hl-cap-top { flex-wrap: wrap; }
}

.fp-ed .spx-hero { position: relative; overflow: hidden; background: var(--paper); border-bottom: 1px solid var(--line); padding: 30px 0 34px; }
.fp-ed .spx-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; background-image: radial-gradient(rgba(11, 11, 12, 0.05) 1px, transparent 1.4px); background-size: 24px 24px; background-position: -2px -2px; }
.fp-ed .spx-hero-bg span { position: absolute; border-radius: 50%; filter: blur(60px); opacity: 0.5; }
.fp-ed .spx-hero-bg span:nth-child(1) { width: 460px; height: 460px; top: -160px; left: -90px; background: radial-gradient(circle at 30% 30%, rgba(0, 38, 120, 0.16), transparent 70%); }
.fp-ed .spx-hero-bg span:nth-child(2) { width: 420px; height: 420px; top: -120px; right: -80px; background: radial-gradient(circle at 60% 40%, rgba(14, 116, 144, 0.14), transparent 70%); }
.fp-ed .spx-hero-bg span:nth-child(3) { width: 520px; height: 360px; bottom: -200px; left: 32%; background: radial-gradient(circle at 50% 50%, rgba(212, 138, 26, 0.10), transparent 70%); }
.fp-ed .spx-hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, var(--paper) 100%); }
.fp-ed .spx-hero-in { position: relative; z-index: 1; }
.fp-ed .spx-crumb { margin-bottom: 22px; }

.fp-ed .spx-hero-top { display: flex; align-items: flex-start; gap: 26px; }
.fp-ed .spx-hero-av { width: 128px; height: 128px; font-size: 2.4rem; flex: 0 0 auto; position: relative;
  box-shadow: 0 0 0 5px var(--paper), 0 0 0 6px var(--line-2), 0 0 0 13px var(--paper), 0 0 0 14px var(--line), 0 26px 50px -22px rgba(18, 22, 30, 0.42); }
.fp-ed .spx-hero-av.is-online::after { content: ""; position: absolute; right: 8px; bottom: 8px; width: 20px; height: 20px; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 4px var(--paper); }
.fp-ed .spx-hero-id { min-width: 0; padding-top: 4px; }
.fp-ed .spx-hero-honors { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.fp-ed .spx-hero-name { font-family: var(--special); font-weight: 600; font-size: clamp(2.1rem, 4.6vw, 3.3rem); line-height: 1.02; letter-spacing: -0.03em; color: var(--ink); margin: 0; }
.fp-ed .spx-hero-handle { margin: 6px 0 0; font-family: var(--body); font-size: 0.95rem; font-weight: 500; color: var(--muted); }
.fp-ed .spx-hero-role { margin: 12px 0 0; font-size: 1.06rem; line-height: 1.5; color: var(--ink-2); max-width: 56ch; }
.fp-ed .spx-hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: 16px; font-size: 0.9rem; color: var(--muted); }
.fp-ed .spx-hero-meta > span { display: inline-flex; align-items: center; gap: 7px; }
.fp-ed .spx-hero-meta svg { width: 15px; height: 15px; }
.fp-ed .spx-on { color: #16a34a; font-weight: 600; }
.fp-ed .spx-on svg { width: 9px !important; height: 9px !important; }
.fp-ed .spx-seen svg { width: 9px !important; height: 9px !important; color: var(--faint); }
.fp-ed .spx-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.fp-ed .spx-hero-actions .ed-btn { min-width: 168px; }

.fp-ed .spx-hero-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 30px; }
.fp-ed .spx-stat { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; min-height: 142px; padding: 17px 18px; border: 1px solid var(--line); border-radius: 18px;
  background: color-mix(in srgb, var(--bg) 80%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: 0 18px 36px -28px rgba(18, 22, 30, 0.45); transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.fp-ed .spx-stat::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--ink), transparent 70%); opacity: 0; transition: opacity 0.22s ease; }
.fp-ed .spx-stat-deco { position: absolute; right: -22px; bottom: -22px; width: 78px; height: 78px; border-radius: 50%; border: 1.5px solid var(--line); opacity: 0.7; pointer-events: none; }
.fp-ed .spx-stat:hover { transform: translateY(-3px); border-color: var(--line-2); box-shadow: 0 26px 48px -26px rgba(18, 22, 30, 0.5); }
.fp-ed .spx-stat:hover::before { opacity: 1; }
.fp-ed .spx-stat-ic { position: relative; z-index: 1; display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 10px; background: var(--band); color: var(--ink); align-self: flex-start; }
.fp-ed .spx-stat-ic svg { width: 17px; height: 17px; }
.fp-ed .spx-stat-body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 5px; }
.fp-ed .spx-stat-v { display: inline-flex; align-items: center; gap: 5px; font-family: var(--serif); font-weight: 600; font-size: 1.85rem; line-height: 1; color: var(--ink); letter-spacing: -0.01em; }
.fp-ed .spx-stat-star { display: inline-flex; }
.fp-ed .spx-stat-star svg { width: 16px; height: 16px; color: var(--ink); }
.fp-ed .spx-stat-l { font-size: 0.78rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; }
.fp-ed .spx-stat-l small { text-transform: none; letter-spacing: 0; font-weight: 500; }

/* sticky section nav */
.fp-ed .spx-subnav { position: sticky; z-index: 70; top: 64px; background: color-mix(in srgb, var(--paper) 85%, transparent); -webkit-backdrop-filter: saturate(150%) blur(14px); backdrop-filter: saturate(150%) blur(14px); border-bottom: 1px solid var(--line); }
.fp-ed .spx-subnav-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; }
.fp-ed .spx-tabs { display: flex; align-items: center; gap: 6px; min-width: 0; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; }
.fp-ed .spx-tabs::-webkit-scrollbar { display: none; }
.fp-ed .spx-tab { display: inline-flex; align-items: center; padding: 8px 16px; border-radius: 999px; font-family: var(--body); font-size: 0.9rem; font-weight: 600; color: var(--muted); white-space: nowrap; transition: background-color 0.16s ease, color 0.16s ease; }
.fp-ed .spx-tab:hover { color: var(--ink); }
.fp-ed .spx-tab.is-active { background: var(--ink); color: #fff; }
.fp-ed .spx-subnav-cta { display: flex; align-items: center; gap: 9px; opacity: 0; transform: translateX(8px); pointer-events: none; transition: opacity 0.22s ease, transform 0.22s ease; }
.fp-ed .spx-subnav-cta.is-on { opacity: 1; transform: none; pointer-events: auto; }
.fp-ed .spx-navcta-id { display: inline-flex; align-items: center; gap: 8px; font-size: 0.9rem; font-weight: 600; color: var(--ink); }
.fp-ed .spx-navcta-av { width: 30px; height: 30px; font-size: 0.78rem; }

/* overview: snapshot + bio + credentials */
.fp-ed .spx-snap { display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 26px; }
.fp-ed .spx-snap-item { display: inline-flex; align-items: center; gap: 11px; padding: 11px 16px 11px 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg); transition: transform 0.18s ease, border-color 0.18s ease; }
.fp-ed .spx-snap-item:hover { transform: translateY(-2px); border-color: var(--line-2); }
.fp-ed .spx-snap-ic { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 9px; background: var(--band); color: var(--ink); flex: 0 0 auto; }
.fp-ed .spx-snap-ic svg { width: 17px; height: 17px; }
.fp-ed .spx-snap-item strong { display: block; font-family: var(--serif); font-weight: 600; font-size: 1.04rem; color: var(--ink); line-height: 1.1; }
.fp-ed .spx-snap-item span:not(.spx-snap-ic) { display: block; font-size: 0.76rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; margin-top: 2px; }
.fp-ed .spx-overview { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.fp-ed .spx-bio { font-size: 1.04rem; line-height: 1.75; color: var(--ink-2); }
.fp-ed .spx-bio p + p { margin-top: 1em; }
.fp-ed .spx-skills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.fp-ed .spx-overview-side { display: flex; flex-direction: column; gap: 16px; }
.fp-ed .spx-cred-grid { display: flex; flex-direction: column; gap: 16px; }
.fp-ed .spx-cred { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--band) 32%, var(--bg))); padding: 20px 22px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5); transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease; }
.fp-ed .spx-cred::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--ink), color-mix(in srgb, var(--ink) 25%, transparent)); opacity: 0; transition: opacity 0.22s ease; }
.fp-ed .spx-cred:hover { transform: translateY(-3px); border-color: var(--line-2); box-shadow: 0 24px 46px -32px rgba(18, 22, 30, 0.44); }
.fp-ed .spx-cred:hover::before { opacity: 1; }
.fp-ed .spx-cred-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.fp-ed .spx-cred-ic { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 11px; background: linear-gradient(145deg, #26262c, var(--ink)); color: #fff; flex: 0 0 auto; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 7px 15px -7px rgba(18, 22, 30, 0.55); }
.fp-ed .spx-cred-ic svg { width: 19px; height: 19px; }
.fp-ed .spx-cred-head h3 { margin: 0; flex: 1; min-width: 0; font-family: var(--display); font-weight: 600; font-size: 1.04rem; letter-spacing: -0.01em; color: var(--ink); }
.fp-ed .spx-cred-count { flex: 0 0 auto; min-width: 24px; height: 24px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--band); border: 1px solid var(--line); font-family: var(--display); font-weight: 700; font-size: 0.76rem; color: var(--ink-2); }
.fp-ed .spx-cred-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.fp-ed .spx-cred-row { position: relative; display: flex; align-items: flex-start; gap: 13px; }
.fp-ed .spx-cred-row:not(:last-child)::before { content: ""; position: absolute; left: 5.5px; top: 16px; bottom: -18px; width: 2px; background: var(--line); z-index: 0; }
.fp-ed .spx-cred-node { flex: 0 0 auto; width: 13px; height: 13px; margin-top: 2px; border-radius: 50%; background: var(--bg); border: 2px solid var(--ink); position: relative; z-index: 1; transition: background 0.2s ease; }
.fp-ed .spx-cred:hover .spx-cred-node { background: var(--ink); }
.fp-ed .spx-cred-body { min-width: 0; flex: 1; }
.fp-ed .spx-cred-body strong { display: block; font-weight: 600; font-size: 0.95rem; line-height: 1.32; color: var(--ink); }
.fp-ed .spx-cred-org { display: block; font-size: 0.84rem; color: var(--muted); margin-top: 2px; }
.fp-ed .spx-cred-when { flex: 0 0 auto; align-self: flex-start; margin-top: 1px; font-family: var(--display); font-weight: 600; font-size: 0.72rem; color: var(--ink-2); background: var(--band); border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.fp-ed .spx-cred-tag { flex: 0 0 auto; align-self: flex-start; margin-top: 1px; display: inline-flex; align-items: center; font-weight: 600; font-size: 0.72rem; color: #fff; background: var(--ink); border-radius: 999px; padding: 3px 11px; white-space: nowrap; }

/* ===== MARKETPLACE VIVID THEME (final · locked) — accents gated under [data-spx-theme="vivid"] (the "brand" alias is dormant/internal). "original" = base monochrome (no themed rules). The Super-Admin Customization page toggles vivid⇄original site-wide; main.js + site-customization.js apply it (no FOUC). ===== */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) { --brand: #1d4ed8; --brand-2: #3b82f6; }
/* ---- shared accents (Brand + Vivid) ---- */
/* labels / chips / links */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-kicker { color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-chip:hover { border-color: color-mix(in srgb, var(--brand) 40%, var(--line-2)); color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-arrow:hover { color: var(--brand); }
/* navbar (top bar) — this page only */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .join-button { background: var(--brand); border-color: var(--brand); color: #fff; }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .join-button:hover { background: #001e5e; border-color: #001e5e; color: #fff; }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .nav-link:hover, .fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .dropdown-toggle:hover, .fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .nav-link-secondary:hover, .fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .dropdown-item:hover strong { color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .site-header { border-bottom-color: color-mix(in srgb, var(--brand) 24%, var(--line)); }
/* footer — this page only */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-footer a:hover { color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-footer { border-top: 2px solid color-mix(in srgb, var(--brand) 30%, var(--line)); }
/* hero — purple mesh glow + avatar ring */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-hero-bg span:nth-child(1) { background: radial-gradient(circle at 30% 30%, rgba(37, 99, 235, 0.22), transparent 70%); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-hero-bg span:nth-child(2) { background: radial-gradient(circle at 60% 40%, rgba(59, 130, 246, 0.16), transparent 70%); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-hero-bg span:nth-child(3) { background: radial-gradient(circle at 50% 50%, rgba(37, 99, 235, 0.13), transparent 70%); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-hero-av { box-shadow: 0 0 0 5px var(--paper), 0 0 0 6px color-mix(in srgb, var(--brand) 42%, var(--line-2)), 0 0 0 13px var(--paper), 0 0 0 14px color-mix(in srgb, var(--brand) 30%, var(--line)), 0 26px 50px -22px rgba(37, 99, 235, 0.34); }
/* primary CTAs become brand (Hire / Message hover / Open portfolio) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-btn-fill { background: var(--brand); border-color: var(--brand); color: #fff; }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-btn-fill:hover { background: #001e5e; border-color: #001e5e; }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-btn-line:hover { border-color: var(--brand); color: var(--brand); }
/* hero stat tiles */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-stat::before { background: linear-gradient(90deg, var(--brand), transparent 70%); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-stat-ic { background: color-mix(in srgb, var(--brand) 11%, var(--band)); color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-stat-star svg { color: var(--brand); }
/* sticky subnav */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-tab.is-active { background: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-tab:hover { color: var(--brand); }
/* credentials (Experience / Education / Certifications) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-cred-ic { background: linear-gradient(145deg, var(--brand-2), var(--brand)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 8px 16px -7px rgba(37, 99, 235, 0.5); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-cred::before { background: linear-gradient(180deg, var(--brand), color-mix(in srgb, var(--brand) 20%, transparent)); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-cred:hover { border-color: color-mix(in srgb, var(--brand) 36%, var(--line-2)); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-cred:hover .spx-cred-node { background: var(--brand); border-color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-cred-tag { background: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-cred-when { color: var(--brand); border-color: color-mix(in srgb, var(--brand) 28%, var(--line)); background: color-mix(in srgb, var(--brand) 7%, var(--bg)); }
/* portfolio chip icons */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-pg-tag svg { color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-pg-badge { background: color-mix(in srgb, var(--brand) 78%, transparent); }
/* reviews — stars, criteria bars, reply, quote */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-rv-agg svg, .fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-review .ed-stars svg { color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-crit-bar i { background: linear-gradient(90deg, var(--brand-2), var(--brand)); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-review::before { color: color-mix(in srgb, var(--brand) 14%, var(--band)); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-rv-reply { border-left-color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-filter.is-active, .fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-seg .is-active { background: var(--brand); border-color: var(--brand); color: #fff; }

/* ---- VIVID only — richer colour wash (no element redesign, colour only) ---- */
.fp-ed[data-spx-theme="vivid"]::before { background: radial-gradient(58% 50% at 12% 0%, rgba(37, 99, 235, 0.12), transparent 72%), radial-gradient(48% 42% at 92% 4%, rgba(59, 130, 246, 0.10), transparent 72%); }
.fp-ed[data-spx-theme="vivid"] .spx-hero { background: linear-gradient(180deg, color-mix(in srgb, var(--brand) 6%, var(--paper)), var(--paper)); }
.fp-ed[data-spx-theme="vivid"] .ed-band { background: color-mix(in srgb, var(--brand) 5%, var(--band)); border-color: color-mix(in srgb, var(--brand) 14%, var(--line)); }
.fp-ed[data-spx-theme="vivid"] .spx-subnav { background: color-mix(in srgb, var(--brand) 6%, color-mix(in srgb, var(--paper) 85%, transparent)); border-bottom-color: color-mix(in srgb, var(--brand) 26%, var(--line)); }
.fp-ed[data-spx-theme="vivid"] .spx-stat { background: color-mix(in srgb, var(--brand) 4%, var(--bg)); border-color: color-mix(in srgb, var(--brand) 16%, var(--line)); }
.fp-ed[data-spx-theme="vivid"] .ed-chip { border-color: color-mix(in srgb, var(--brand) 24%, var(--line)); color: color-mix(in srgb, var(--brand) 80%, var(--ink-2)); }
.fp-ed[data-spx-theme="vivid"] .ed-card:hover { border-color: var(--brand); box-shadow: 0 30px 50px -30px rgba(37, 99, 235, 0.4); }
.fp-ed[data-spx-theme="vivid"] .spx-cred { background: linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--brand) 5%, var(--bg))); }
.fp-ed[data-spx-theme="vivid"] .spx-pg { background: radial-gradient(120% 120% at 100% 0%, color-mix(in srgb, var(--brand) 8%, var(--bg)), transparent 58%), linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--brand) 5%, var(--bg))); }
.fp-ed[data-spx-theme="vivid"] .ed-footer { background: color-mix(in srgb, var(--brand) 4%, var(--paper)); }

/* ---- HOMEPAGE (index.html) — colour only, no redesign ---- */
/* shared (Brand + Vivid) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-search { border-color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-search svg { color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-search button { background: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-search button:hover { background: #001e5e; }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-hero-meta { border-top-color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-hero-in .ed-em::after { background: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-home-step-n { background: var(--brand); box-shadow: 0 8px 16px -8px rgba(37, 99, 235, 0.6); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-home-stats .ed-stat strong { color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-cat:hover { border-color: var(--brand); }
/* Vivid only — richer wash */
.fp-ed[data-spx-theme="vivid"] .ed-cta { background: linear-gradient(150deg, #20212b 0%, #131318 46%, #0b0b0c 100%); }
/* ===== Modern CTA panels — premium depth + lavender glow + dot-texture + rounded (creative pass; both themes; homepage band stays full-bleed) ===== */
.fp-ed .ed-cta { position: relative; overflow: hidden; }
.fp-ed .ed-cta-in { position: relative; z-index: 2; }
.fp-ed .ed-home-cta-deco { z-index: 1; }
.fp-ed .ed-cta::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(640px 320px at 12% -18%, rgba(255, 255, 255, 0.13), transparent 58%), radial-gradient(720px 380px at 92% 120%, rgba(255, 255, 255, 0.08), transparent 60%); }
.fp-ed .ed-cta::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0.4; background-image: radial-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1.5px); background-size: 24px 24px; -webkit-mask-image: radial-gradient(120% 92% at 50% 0%, #000 22%, transparent 72%); mask-image: radial-gradient(120% 92% at 50% 0%, #000 22%, transparent 72%); }
.fp-ed .ed-cta:not(.ed-home-cta) { border-radius: 28px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 40px 84px -46px rgba(18, 22, 30, 0.55); }
.fp-ed .ed-cta:not(.ed-home-cta) .ed-cta-in { padding-left: 36px; padding-right: 36px; }
@media (max-width: 640px) { .fp-ed .ed-cta:not(.ed-home-cta) { border-radius: 20px; } .fp-ed .ed-cta:not(.ed-home-cta) .ed-cta-in { padding: 52px 22px; } }
/* vivid — lavender glow orbs + purple-tinted depth shadow + light kicker so it never goes purple-on-purple */
.fp-ed[data-spx-theme="vivid"] .ed-cta::before { background: radial-gradient(640px 320px at 12% -18%, rgba(112, 149, 230, 0.42), transparent 58%), radial-gradient(720px 380px at 92% 120%, rgba(40, 81, 170, 0.42), transparent 60%); }
.fp-ed[data-spx-theme="vivid"] .ed-cta:not(.ed-home-cta) { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 40px 84px -44px rgba(37, 99, 235, 0.6); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-cta .ed-kicker { color: rgba(255, 255, 255, 0.72); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-cta .ed-kicker::before { background: rgba(255, 255, 255, 0.45); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-cta .ed-btn-fill { background: var(--brand); color: #fff; border-color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-cta .ed-btn-fill:hover { background: #001e5e; color: #fff; border-color: #001e5e; }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-cta .ed-btn-line { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.55); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-cta .ed-btn-line:hover { background: #fff; color: var(--brand); border-color: #fff; }
/* become-seller "dashboard preview" hero card — brand accents (colour only). Earnings sparkline + trend + %-up stay money-green on purpose; only the chrome (glow/border/shadow/wash/stat-tiles) goes brand so the warm-peach glow no longer clashes with the theme. */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-bs-card { border-color: color-mix(in srgb, var(--brand) 22%, var(--line)); box-shadow: 0 44px 80px -42px rgba(37, 99, 235, 0.5); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-bs-card-glow { background: linear-gradient(120deg, rgba(37, 99, 235, 0.2), rgba(59, 130, 246, 0.12) 42%, transparent 64%); }
.fp-ed[data-spx-theme="vivid"] .ed-bs-card-main { background: linear-gradient(180deg, color-mix(in srgb, var(--brand) 5%, #fff), #fff 60%); }
.fp-ed[data-spx-theme="vivid"] .ed-bs-mini > div { border-color: color-mix(in srgb, var(--brand) 14%, var(--line)); background: color-mix(in srgb, var(--brand) 3%, var(--paper)); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-bs-chip { color: #fff; }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-bs-chip-2 { border-color: rgba(255, 255, 255, 0.2); }
.fp-ed[data-spx-theme="vivid"] .ed-home-cta-deco { background: radial-gradient(620px 320px at 78% -10%, rgba(96, 137, 224, 0.26), transparent 70%), radial-gradient(560px 300px at 12% 120%, rgba(59, 130, 246, 0.22), transparent 70%); }
.fp-ed[data-spx-theme="vivid"] .ed-cat { background: color-mix(in srgb, var(--brand) 4%, var(--bg)); border-color: color-mix(in srgb, var(--brand) 16%, var(--line)); }
.fp-ed[data-spx-theme="vivid"] .ed-home-stats .ed-stat { background: color-mix(in srgb, var(--brand) 4%, #fff); border-color: color-mix(in srgb, var(--brand) 16%, var(--line)); }
.fp-ed[data-spx-theme="vivid"] .ed-home-step { background: color-mix(in srgb, var(--brand) 4%, #fff); border-color: color-mix(in srgb, var(--brand) 16%, var(--line)); }

/* ---- MARKETPLACE-WIDE accents (colour only) — every var(--ink) primary/active/stepper/avatar/accent surface becomes brand. Each already pairs ink with light text, so white-on-#1d4ed8 (~10:1) stays legible. Semantic green/red/amber, official-blue staff badge, emerald contract card, black Pro+ badge, dark video stages, money breakdown bars, charts/tooltips/toasts are intentionally NOT repainted. ---- */
/* background-only (light text / bars / pseudos already in place) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-av,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-co-art,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-searchbar button,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-list-row:hover,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-card-sound:hover,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-card-sound.is-on,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-kicker::before,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .fp-fw-kicker::before,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-switch input:checked + .ed-switch-tr,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-actrow.is-unread::before,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .seller-notification-badge,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-sd-fs:hover,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-sdash .ed-quick:hover svg,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-actv-num,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-bs-chip,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-bs-step-n,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-sps .ed-panel .ed-panel-head::before,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-done-num,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-co-promo button:hover,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-job-step-line.is-done,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-job-card.is-click::before,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-step.is-done::before,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-step.is-current::before,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-step.is-done .ed-oc-step-node,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-crit-bar i,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-kyc-step-pill.is-active span,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-kyc-step-pill.is-done span,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .fp-pf-tab.is-active,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-sp-pf-more,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .spx-pg-more,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .messages-conversation-pill,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .messages-conversation-dot,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .messages-thread-avatar,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .messages-send-button { background: var(--ink); }
/* background + brand border (active pills / steppers / primary buttons with ink borders) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-nav-join,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-tag:hover,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-save.is-saved,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-pill.is-active,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-pager a.is-active,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-cs-step.is-active b,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-co-pkg button.is-active,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-job-step.is-active b,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-job-step.is-done b,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .fp-fw-board .fp-fw-qchip.is-active,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-deliv-item.is-latest .ed-oc-deliv-tag,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-seg button.is-on,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-tip-presets button.is-on,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-resolve-open,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .messages-filter-chip.is-active,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .messages-tool-button-primary { background: var(--ink); border-color: var(--ink); }
/* marketing ticker strip (full dark → full brand, light text already) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-ticker { background: var(--brand); border-top-color: var(--brand); }
/* auth split-panel + badge (dark marketing half → brand; white text already, desktop-only) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-auth-aside,
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-auth-badge { background: var(--brand); }
/* primary button hover-darken */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-nav-join:hover { background: #001e5e; border-color: #001e5e; }
/* portfolio hire button gradient */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .fp-pf-hire { background: linear-gradient(180deg, var(--brand-2), var(--brand)); border-color: var(--brand); }
/* active-contract stepper current node (light bg, brand ring + label) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-step.is-current .ed-oc-step-node { border-color: var(--brand); color: var(--brand); }
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .ed-oc-step.is-current .ed-oc-step-label { color: var(--brand); }
/* emoji active tab (bg + inset ring) */
.fp-ed:is([data-spx-theme="brand"], [data-spx-theme="vivid"]) .messages-emoji-tab.is-active { background: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }
/* vivid-only — gentle brand tint on "my" dispute reply bubble (keeps dark text readable) */
.fp-ed[data-spx-theme="vivid"] .ed-oc-dmsg.is-mine .ed-oc-dmsg-body { background: color-mix(in srgb, var(--brand) 8%, var(--band)); }
/* ===== END MARKETPLACE VIVID THEME ===== */
/* ===== END BRAND ACCENT EXPERIMENT ===== */

/* re-assert purple on the navbar Join CTA (the big list above was neutralised to ink) */
.fp-ed[data-spx-theme="vivid"] .ed-nav-join { background: var(--brand); border-color: var(--brand); }
/* labels / chips / arrows / nav + footer links → neutral ink */
.fp-ed[data-spx-theme="vivid"] .ed-kicker { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .ed-kicker::before { background: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .ed-chip { border-color: var(--line); color: var(--ink-2); }
.fp-ed[data-spx-theme="vivid"] .ed-chip:hover { border-color: var(--line-2); color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .ed-arrow:hover { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .nav-link:hover, .fp-ed[data-spx-theme="vivid"] .dropdown-toggle:hover, .fp-ed[data-spx-theme="vivid"] .nav-link-secondary:hover, .fp-ed[data-spx-theme="vivid"] .dropdown-item:hover strong { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .site-header { border-bottom-color: var(--line); }
.fp-ed[data-spx-theme="vivid"] .ed-footer { border-top: 2px solid var(--line); background: var(--paper); }
.fp-ed[data-spx-theme="vivid"] .ed-footer a:hover { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .ed-btn-line:hover { border-color: var(--ink); color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .ed-filter.is-active, .fp-ed[data-spx-theme="vivid"] .ed-seg .is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
/* page wash + section bands + cards → neutral (drop purple mesh/tint, keep faint depth) */
.fp-ed[data-spx-theme="vivid"]::before { background: radial-gradient(58% 50% at 12% 0%, rgba(11, 11, 12, 0.035), transparent 72%), radial-gradient(48% 42% at 92% 4%, rgba(11, 11, 12, 0.025), transparent 72%); }
.fp-ed[data-spx-theme="vivid"] .ed-band { background: var(--band); border-color: var(--line); }
.fp-ed[data-spx-theme="vivid"] .ed-card:hover { border-color: var(--line-2); box-shadow: 0 30px 50px -30px rgba(11, 11, 12, 0.18); }
/* homepage accents */
.fp-ed[data-spx-theme="vivid"] .ed-search { border-color: var(--line-2); }
.fp-ed[data-spx-theme="vivid"] .ed-search svg { color: var(--muted); }
.fp-ed[data-spx-theme="vivid"] .ed-hero-in .ed-em::after { background: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .ed-home-step-n { background: var(--ink); box-shadow: 0 8px 16px -8px rgba(11, 11, 12, 0.4); }
.fp-ed[data-spx-theme="vivid"] .ed-home-stats .ed-stat strong { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .ed-cat { background: var(--bg); border-color: var(--line); }
.fp-ed[data-spx-theme="vivid"] .ed-cat:hover { border-color: var(--line-2); }
.fp-ed[data-spx-theme="vivid"] .ed-home-stats .ed-stat { background: #fff; border-color: var(--line); }
.fp-ed[data-spx-theme="vivid"] .ed-home-step { background: #fff; border-color: var(--line); }
.fp-ed[data-spx-theme="vivid"] .ed-home-cta-deco { background: radial-gradient(620px 320px at 78% -10%, rgba(255, 255, 255, 0.10), transparent 70%); }
.fp-ed[data-spx-theme="vivid"] .ed-cta::before { background: radial-gradient(680px 340px at 14% -16%, rgba(255, 255, 255, 0.11), transparent 56%), radial-gradient(780px 420px at 90% 122%, rgba(82, 124, 214, 0.24), transparent 62%); }
.fp-ed[data-spx-theme="vivid"] .ed-cta:not(.ed-home-cta) { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 40px 84px -46px rgba(11, 11, 12, 0.55); }
/* seller public profile (.spx-*) accents → neutral */
.fp-ed[data-spx-theme="vivid"] .spx-hero { background: var(--paper); }
.fp-ed[data-spx-theme="vivid"] .spx-hero-bg span:nth-child(1) { background: radial-gradient(circle at 30% 30%, rgba(11, 11, 12, 0.05), transparent 70%); }
.fp-ed[data-spx-theme="vivid"] .spx-hero-bg span:nth-child(2) { background: radial-gradient(circle at 60% 40%, rgba(11, 11, 12, 0.04), transparent 70%); }
.fp-ed[data-spx-theme="vivid"] .spx-hero-bg span:nth-child(3) { background: radial-gradient(circle at 50% 50%, rgba(11, 11, 12, 0.03), transparent 70%); }
.fp-ed[data-spx-theme="vivid"] .spx-hero-av { box-shadow: 0 0 0 5px var(--paper), 0 0 0 6px var(--line-2), 0 0 0 13px var(--paper), 0 0 0 14px var(--line), 0 26px 50px -22px rgba(11, 11, 12, 0.3); }
.fp-ed[data-spx-theme="vivid"] .spx-stat { background: var(--bg); border-color: var(--line); }
.fp-ed[data-spx-theme="vivid"] .spx-stat::before { background: linear-gradient(90deg, var(--ink), transparent 70%); }
.fp-ed[data-spx-theme="vivid"] .spx-stat-ic { background: var(--band); color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-stat-star svg { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-subnav { background: color-mix(in srgb, var(--paper) 85%, transparent); border-bottom-color: var(--line); }
.fp-ed[data-spx-theme="vivid"] .spx-tab.is-active { background: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-tab:hover { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-cred { background: var(--bg); }
.fp-ed[data-spx-theme="vivid"] .spx-cred-ic { background: var(--ink); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 8px 16px -7px rgba(11, 11, 12, 0.4); }
.fp-ed[data-spx-theme="vivid"] .spx-cred::before { background: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-cred:hover { border-color: var(--line-2); }
.fp-ed[data-spx-theme="vivid"] .spx-cred:hover .spx-cred-node { background: var(--ink); border-color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-cred-tag { background: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-cred-when { color: var(--ink-2); border-color: var(--line); background: var(--band); }
.fp-ed[data-spx-theme="vivid"] .spx-pg { background: var(--bg); }
.fp-ed[data-spx-theme="vivid"] .spx-pg-tag svg { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-pg-badge { background: rgba(11, 11, 12, 0.78); }
.fp-ed[data-spx-theme="vivid"] .spx-rv-agg svg, .fp-ed[data-spx-theme="vivid"] .spx-review .ed-stars svg { color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-crit-bar i { background: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .spx-review::before { color: var(--line-2); }
.fp-ed[data-spx-theme="vivid"] .spx-rv-reply { border-left-color: var(--line-2); }
/* become-seller hero illustration → neutral chrome (its inline money-green stays) */
.fp-ed[data-spx-theme="vivid"] .ed-bs-card { border-color: var(--line); box-shadow: 0 44px 80px -42px rgba(11, 11, 12, 0.4); }
.fp-ed[data-spx-theme="vivid"] .ed-bs-card-glow { background: linear-gradient(120deg, rgba(11, 11, 12, 0.06), transparent 64%); }
.fp-ed[data-spx-theme="vivid"] .ed-bs-card-main { background: #fff; }
.fp-ed[data-spx-theme="vivid"] .ed-bs-mini > div { border-color: var(--line); background: var(--paper); }
/* marketing ticker + auth split panel → neutral ink */
.fp-ed[data-spx-theme="vivid"] .ed-ticker { background: var(--ink); border-top-color: var(--ink); }
.fp-ed[data-spx-theme="vivid"] .ed-auth-aside, .fp-ed[data-spx-theme="vivid"] .ed-auth-badge { background: var(--ink); }

/* portfolio gallery — editorial count + photo-stack */
.fp-ed .spx-pg { position: relative; overflow: hidden; display: grid; gap: 24px; padding: 26px; border: 1px solid var(--line); border-radius: 24px; background:
    radial-gradient(120% 120% at 100% 0%, color-mix(in srgb, var(--band) 70%, var(--bg)), transparent 58%),
    linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--band) 45%, var(--bg))); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 5px 14px -8px rgba(18, 22, 30, 0.2), 0 38px 72px -42px rgba(18, 22, 30, 0.55); }
.fp-ed .spx-pg-info { min-width: 0; }
.fp-ed .spx-pg-kick { display: inline-block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--muted); }
.fp-ed .spx-pg-count { display: flex; align-items: flex-end; gap: 16px; margin: 12px 0 0; }
.fp-ed .spx-pg-count b { font-family: var(--serif); font-weight: 600; font-size: 5rem; line-height: 0.8; color: var(--ink); letter-spacing: -0.02em; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.85), 0 12px 26px rgba(18, 22, 30, 0.16); }
.fp-ed .spx-pg-count span { font-family: var(--display); font-weight: 600; font-size: 0.96rem; line-height: 1.2; color: var(--ink-2); text-transform: uppercase; letter-spacing: 0.05em; padding-bottom: 7px; }
.fp-ed .spx-pg-inside { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.fp-ed .spx-pg-tag { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--bg); font-size: 0.8rem; font-weight: 500; color: var(--ink-2); }
.fp-ed .spx-pg-tag svg { width: 14px; height: 14px; color: var(--muted); }
.fp-ed .spx-pg-lead { margin: 18px 0 0; font-size: 0.95rem; line-height: 1.6; color: var(--muted); max-width: 44ch; }
.fp-ed .spx-pg-act { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.fp-ed .spx-pg-act .ed-btn { white-space: nowrap; flex: 0 0 auto; }
/* photo stack (mobile-first = swipeable filmstrip) */
.fp-ed .spx-pg-stack { position: relative; display: flex; gap: 12px; overflow-x: auto; padding: 4px 2px 10px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; text-decoration: none; }
.fp-ed .spx-pg-card { position: relative; flex: 0 0 70%; aspect-ratio: 4 / 5; border-radius: 18px; overflow: hidden; background: var(--band); border: 3px solid var(--bg); box-shadow: 0 20px 40px -26px rgba(18, 22, 30, 0.55); scroll-snap-align: center; }
.fp-ed .spx-pg-card img, .fp-ed .spx-pg-card video { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-ed .spx-pg-card-ov { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 7px; padding: 15px; background: linear-gradient(180deg, transparent 42%, rgba(9, 11, 14, 0.8)); }
.fp-ed .spx-pg-card-ov strong { font-family: var(--display); font-weight: 600; font-size: 0.92rem; line-height: 1.35; color: #fff; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fp-ed .spx-pg-card-tag { align-self: flex-start; display: inline-flex; padding: 3px 11px; border-radius: 999px; background: rgba(255, 255, 255, 0.2); color: #fff; font-size: 0.64rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; }
.fp-ed .spx-pg-play { position: absolute; top: 13px; right: 13px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(11, 11, 12, 0.52); color: #fff; backdrop-filter: blur(3px); }
.fp-ed .spx-pg-play svg { width: 16px; height: 16px; margin-left: 2px; }
.fp-ed .spx-pg-more { position: absolute; top: 12px; left: 12px; padding: 5px 12px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 0.74rem; font-weight: 600; z-index: 60; pointer-events: none; }
@media (min-width: 721px) {
  .fp-ed .spx-pg { grid-template-columns: 0.92fr 1.08fr; align-items: center; gap: 20px; padding: 34px 38px; }
  .fp-ed .spx-pg-count b { font-size: 6.4rem; }
  .fp-ed .spx-pg-stack { display: block; overflow: visible; height: 360px; padding: 0; perspective: 1500px; }
  .fp-ed .spx-pg-card { position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; width: min(258px, 64%); height: min(322px, 90%); flex: none; aspect-ratio: auto; box-shadow: 0 3px 10px -4px rgba(18, 22, 30, 0.4), 0 28px 50px -24px rgba(18, 22, 30, 0.62); transition: transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.45s ease; }
  .fp-ed .spx-pg-card:not(.is-front) { filter: saturate(0.95) brightness(0.99); }
  .fp-ed .spx-pg-card:not(.is-front)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(125deg, rgba(11, 13, 16, 0.06), rgba(11, 13, 16, 0.26)); }
  .fp-ed .spx-pg-card.is-1 { transform: rotate(-3deg) rotateY(-7deg) translateZ(56px); }
  .fp-ed .spx-pg-card.is-2 { transform: translate(16%, 5%) rotate(8deg) rotateY(-15deg) translateZ(10px); }
  .fp-ed .spx-pg-card.is-3 { transform: translate(-17%, 7%) rotate(-10deg) rotateY(11deg) translateZ(-18px); }
  .fp-ed .spx-pg-card.is-4 { transform: translate(29%, 11%) rotate(14deg) rotateY(-19deg) translateZ(-44px); }
  .fp-ed .spx-pg-stack:hover .spx-pg-card.is-1 { transform: translateY(-4%) rotate(-2deg) rotateY(-3deg) translateZ(94px); box-shadow: 0 8px 18px -6px rgba(18, 22, 30, 0.46), 0 46px 74px -28px rgba(18, 22, 30, 0.66); }
  .fp-ed .spx-pg-stack:hover .spx-pg-card.is-2 { transform: translate(34%, 3%) rotate(10deg) rotateY(-18deg) translateZ(34px); }
  .fp-ed .spx-pg-stack:hover .spx-pg-card.is-3 { transform: translate(-36%, 5%) rotate(-13deg) rotateY(13deg) translateZ(6px); }
  .fp-ed .spx-pg-stack:hover .spx-pg-card.is-4 { transform: translate(50%, 9%) rotate(17deg) rotateY(-23deg) translateZ(-16px); }
}
@media (prefers-reduced-motion: reduce) {
  .fp-ed .spx-pg-card { transition: none; }
}

/* reviews */
.fp-ed .spx-rv-agg { display: inline-flex; align-items: center; gap: 8px; }
.fp-ed .spx-rv-agg svg { width: 22px; height: 22px; color: var(--ink); }
.fp-ed .spx-rv-agg b { font-family: var(--serif); font-weight: 600; font-size: 1.8rem; color: var(--ink); line-height: 1; }
.fp-ed .spx-rv-agg span { font-size: 0.88rem; color: var(--muted); }
.fp-ed .spx-crit { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 14px 28px; margin: 18px 0 22px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg); }
.fp-ed .spx-crit-head { font-size: 0.74rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); padding-top: 5px; }
.fp-ed .spx-crit-rows { flex: 1; min-width: 240px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 26px; }
.fp-ed .spx-crit-row { display: flex; align-items: center; gap: 10px; }
.fp-ed .spx-crit-l { flex: 0 0 130px; font-size: 0.82rem; color: var(--ink-2); }
.fp-ed .spx-crit-bar { flex: 1; height: 6px; border-radius: 999px; background: var(--band); overflow: hidden; }
.fp-ed .spx-crit-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #2a2a2f, var(--ink)); }
.fp-ed .spx-crit-row b { font-family: var(--serif); font-weight: 600; font-size: 0.92rem; color: var(--ink); min-width: 26px; text-align: right; }
.fp-ed .spx-reviews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.fp-ed .spx-review { position: relative; overflow: hidden; background: var(--bg); transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.fp-ed .spx-review::before { content: "\201D"; position: absolute; top: 6px; right: 18px; font-family: var(--special); font-size: 4.4rem; line-height: 1; color: var(--band); z-index: 0; pointer-events: none; }
.fp-ed .spx-review > * { position: relative; z-index: 1; }
.fp-ed .spx-review:hover { transform: translateY(-2px); border-color: var(--line-2); box-shadow: 0 20px 40px -30px rgba(18, 22, 30, 0.45); }
.fp-ed .spx-review .ed-review-q { font-family: var(--display); font-size: 1.02rem; line-height: 1.6; color: var(--ink); }
.fp-ed .spx-rv-reply { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: var(--band); border-left: 3px solid var(--ink); }
.fp-ed .spx-rv-reply strong { font-size: 0.8rem; }
.fp-ed .spx-rv-reply p { margin: 4px 0 0; color: var(--ink-2); font-size: 0.9rem; line-height: 1.5; }
.fp-ed .spx-rv-replyform { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.fp-ed .spx-rv-replyform textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 9px 11px; font-family: inherit; font-size: 0.88rem; resize: vertical; background: var(--bg); color: var(--ink); }
.fp-ed .spx-rv-replyrow { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.fp-ed .spx-rv-replyrow span { font-size: 0.8rem; color: var(--muted); }

@media (max-width: 980px) {
  .fp-ed .spx-overview { grid-template-columns: 1fr; gap: 28px; }
  .fp-ed .spx-reviews { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .fp-ed .spx-subnav-cta { display: none; }
  .fp-ed .spx-hero-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .fp-ed .spx-hero { padding: 22px 0 26px; }
  .fp-ed .spx-hero-top { flex-direction: column; gap: 16px; }
  .fp-ed .spx-hero-av { width: 92px; height: 92px; font-size: 1.7rem; }
  .fp-ed .spx-hero-av.is-online::after { width: 16px; height: 16px; right: 5px; bottom: 5px; }
  .fp-ed .spx-hero-actions .ed-btn { min-width: 0; flex: 1; }
  .fp-ed .spx-stat-v { font-size: 1.45rem; }
  .fp-ed .spx-pg { padding: 18px; gap: 18px; }
  .fp-ed .spx-pg-count b { font-size: 4.2rem; }
  .fp-ed .spx-pg-act { width: 100%; }
  .fp-ed .spx-pg-act .ed-btn { flex: 1; min-width: 0; justify-content: center; }
}


body.fp-ed:not(.fp-guide) { --r: 6px; --r2: 14px; }

/* 1b — a few hardcoded-radius components, softened via scoped override only */
body.fp-ed:not(.fp-guide) .ed-btn { border-radius: 14px; }
body.fp-ed:not(.fp-guide) .ed-btn-sm { border-radius: 12px; }
body.fp-ed:not(.fp-guide) .ed-ws-thumb { border-radius: 12px; }
body.fp-ed:not(.fp-guide) .ed-msg-dialog,
body.fp-ed:not(.fp-guide) .notification-detail-dialog,
body.fp-ed:not(.fp-guide) .ed-oc-dialog,
body.fp-ed:not(.fp-guide) .ed-crop-dialog { border-radius: 18px; }

body.fp-ed:not(.fp-guide) .ed-card:not(.ed-tpro-tile),
body.fp-ed:not(.fp-guide) .ed-cat,
body.fp-ed:not(.fp-guide) .ed-job-card {
  box-shadow: 0 14px 34px -28px rgba(18,22,30,0.40);
  transition: transform 0.26s ease, box-shadow 0.26s ease, border-color 0.26s ease;
}
body.fp-ed:not(.fp-guide) .ed-card:not(.ed-tpro-tile):hover,
body.fp-ed:not(.fp-guide) .ed-cat:hover,
body.fp-ed:not(.fp-guide) .ed-job-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 48px -28px rgba(18,22,30,0.48);
  border-color: var(--line-2);
}
/* talent pro card — gentle lift (inner 206×172 tiles unchanged) */
body.fp-ed:not(.fp-guide) .ed-tpro {
  box-shadow: 0 16px 40px -30px rgba(18,22,30,0.40);
  transition: transform 0.26s ease, box-shadow 0.26s ease;
}
body.fp-ed:not(.fp-guide) .ed-tpro:hover {
  transform: translateY(-3px);
  box-shadow: 0 28px 52px -30px rgba(18,22,30,0.46);
}
/* review cards */
body.fp-ed:not(.fp-guide) .ed-review {
  box-shadow: 0 12px 30px -28px rgba(18,22,30,0.38);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}
body.fp-ed:not(.fp-guide) .ed-review:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 42px -28px rgba(18,22,30,0.46);
}
body.fp-ed:not(.fp-guide) .ed-profile-stat,
body.fp-ed:not(.fp-guide) .ed-metric,
body.fp-ed:not(.fp-guide) .ed-wsx,
body.fp-ed:not(.fp-guide) .ed-wsx-metric,
body.fp-ed:not(.fp-guide) .ed-quick,
body.fp-ed:not(.fp-guide) .ed-rc-card,
body.fp-ed:not(.fp-guide) .messages-conversation-card {
  box-shadow: 0 10px 26px -24px rgba(18,22,30,0.32);
}
body.fp-ed:not(.fp-guide) .ed-pkg { box-shadow: 0 26px 56px -38px rgba(18,22,30,0.48); }

body.fp-ed:not(.fp-pub):not(.fp-guide) { position: relative; }
body.fp-ed:not(.fp-pub):not(.fp-guide)::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 440px; z-index: 0; pointer-events: none;
  background:
    radial-gradient(720px 380px at 6% -12%, rgba(28,72,168,0.05), transparent 70%);
  -webkit-mask-image: linear-gradient(#000 0, #000 46%, transparent);
  mask-image: linear-gradient(#000 0, #000 46%, transparent);
}
body.fp-ed:not(.fp-pub):not(.fp-guide) > main,
body.fp-ed:not(.fp-pub):not(.fp-guide) > section,
body.fp-ed:not(.fp-pub):not(.fp-guide) > footer { position: relative; z-index: 1; }

/* 4 — Vivid theme keeps its purple card-hover accent (preserve existing look) */
.fp-ed[data-spx-theme="vivid"]:not(.fp-guide) .ed-card:not(.ed-tpro-tile):hover,
.fp-ed[data-spx-theme="vivid"]:not(.fp-guide) .ed-cat:hover {
  box-shadow: 0 26px 48px -28px rgba(37,99,235,0.42);
  border-color: var(--brand);
}

/* 5 — reduced-motion: drop the new hover transforms/transitions */
@media (prefers-reduced-motion: reduce) {
  body.fp-ed:not(.fp-guide) .ed-card,
  body.fp-ed:not(.fp-guide) .ed-cat,
  body.fp-ed:not(.fp-guide) .ed-job-card,
  body.fp-ed:not(.fp-guide) .ed-tpro,
  body.fp-ed:not(.fp-guide) .ed-review { transition: none; }
  body.fp-ed:not(.fp-guide) .ed-card:hover,
  body.fp-ed:not(.fp-guide) .ed-cat:hover,
  body.fp-ed:not(.fp-guide) .ed-job-card:hover,
  body.fp-ed:not(.fp-guide) .ed-tpro:hover,
  body.fp-ed:not(.fp-guide) .ed-review:hover { transform: none; }
}


/* core system headings → heavy/bold like the guide pages (were ~600) */
body.fp-ed:not(.fp-guide) .ed-h1 { font-weight: 800; letter-spacing: -0.035em; }
body.fp-ed:not(.fp-guide) .ed-h2 { font-weight: 800; letter-spacing: -0.03em; }
body.fp-ed:not(.fp-guide) .ed-h3 { font-weight: 700; }
/* other prominent page titles that don't use .ed-h1 (already sans, just need weight;
   any Fraunces-italic accent <em> inside keeps its own weight = stays a special accent) */
body.fp-ed:not(.fp-guide) .ed-serve-title { font-weight: 800; letter-spacing: -0.03em; }
body.fp-ed:not(.fp-guide) .ed-profile-name h1 { font-weight: 800; }
body.fp-ed:not(.fp-guide) .ed-actv-h1 { font-weight: 800; }
body.fp-ed:not(.fp-guide) .ed-bs-h1 { font-weight: 800; }
body.fp-ed:not(.fp-guide) .ed-done-h1 { font-weight: 800; }

/* — Consulting card: clean cut-out consultant photo — */
.fp-ed .ed-cons-photo { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); height: 100%; width: auto; max-width: 128%; z-index: 2; display: block; pointer-events: none; object-fit: contain; object-position: bottom center; filter: drop-shadow(0 10px 16px rgba(24,24,40,0.15)); }

/* remaining serif WORD-titles → Plus Jakarta Sans, bold (prices stay Fraunces) */
body.fp-ed:not(.fp-guide) .ed-sdash-h1 { font-family: var(--display); font-weight: 800; }
body.fp-ed:not(.fp-guide) .fp-fw-title { font-family: var(--display); font-weight: 800; }
body.fp-ed:not(.fp-guide) .ed-job-hero-title { font-family: var(--display); font-weight: 700; }
body.fp-ed:not(.fp-guide) .fp-fw-board .ed-job-title { font-family: var(--display); font-weight: 700; }
body.fp-ed:not(.fp-guide) .ed-co-preview h3 { font-family: var(--display); font-weight: 700; }
body.fp-ed:not(.fp-guide) .fp-pf-profile-id h1 { font-family: var(--display); font-weight: 800; }
body.fp-ed:not(.fp-guide) .fp-pf-modal-title { font-family: var(--display); font-weight: 700; }
body.fp-ed:not(.fp-guide) .ed-pf-intro-tx h3 { font-family: var(--display); font-weight: 700; }
body.fp-ed:not(.fp-guide) .ed-pf-dialog-head h2 { font-family: var(--display); font-weight: 700; }

.fp-ed .ed-st-wrap { padding: 30px 0 84px; max-width: 1120px; }
.fp-ed .ed-st-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 18px; }
.fp-ed .ed-st-title { margin-top: 10px; }
.fp-ed .ed-st-lead { margin-top: 8px; max-width: 52ch; }
.fp-ed .ed-st-new-btn { display: inline-flex; align-items: center; gap: 7px; }
.fp-ed .ed-st-new-btn svg { width: 16px; height: 16px; }
.fp-ed .ed-st-stats { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.fp-ed .ed-st-stat { flex: 0 0 auto; min-width: 108px; border: 1px solid var(--line); border-radius: 14px; padding: 11px 16px; background: var(--paper); }
.fp-ed .ed-st-stat strong { display: block; font-family: var(--serif); font-size: 1.5rem; font-weight: 600; line-height: 1; }
.fp-ed .ed-st-stat span { font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-st-stat.is-warn { border-color: #d8a31f; background: #fdf6e6; }
.fp-ed .ed-st-stat.is-warn strong { color: #9a6a00; }
/* shell */
.fp-ed .ed-st-shell { display: grid; grid-template-columns: minmax(300px, 360px) minmax(0, 1fr); gap: 18px; align-items: start; }
.fp-ed .ed-st-list { display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 150px); overflow-y: auto; padding-right: 2px; position: sticky; top: 88px; }
.fp-ed .ed-st-loading { color: var(--muted); font-size: 0.92rem; padding: 18px 4px; }
/* ticket card */
.fp-ed .ed-st-card { text-align: left; width: 100%; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); padding: 13px 15px; cursor: pointer; display: flex; flex-direction: column; gap: 7px; transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; }
.fp-ed .ed-st-card:hover { border-color: var(--ink); transform: translateY(-1px); box-shadow: 0 10px 26px -22px rgba(18,22,30,0.5); }
.fp-ed .ed-st-card.is-active { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink) inset; }
.fp-ed .ed-st-card.is-needs { border-left: 3px solid #d8a31f; }
.fp-ed .ed-st-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fp-ed .ed-st-code { font-family: var(--serif); font-size: 0.82rem; color: var(--muted); }
.fp-ed .ed-st-card-subj { font-weight: 600; font-size: 0.95rem; line-height: 1.3; color: var(--ink); overflow-wrap: break-word; }
.fp-ed .ed-st-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 0.76rem; color: var(--muted); }
.fp-ed .ed-st-card-flag { font-size: 0.74rem; font-weight: 700; color: #9a6a00; }
.fp-ed .ed-st-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; padding: 3px 9px; border-radius: var(--pill); color: var(--c, #555); background: color-mix(in srgb, var(--c, #888) 13%, transparent); }
.fp-ed .ed-st-empty { margin: 4px 0; }
.fp-ed .ed-st-empty .ed-btn { margin-top: 12px; }
/* detail */
.fp-ed .ed-st-detail { border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); min-height: 460px; display: flex; flex-direction: column; overflow: hidden; }
.fp-ed .ed-st-placeholder { margin: auto; text-align: center; padding: 50px 26px; color: var(--muted); }
.fp-ed .ed-st-placeholder svg { width: 40px; height: 40px; opacity: 0.5; margin-bottom: 12px; }
.fp-ed .ed-st-placeholder h3 { font-family: var(--display); font-weight: 700; color: var(--ink); margin: 0 0 4px; }
.fp-ed .ed-st-placeholder p { margin: 0; font-size: 0.92rem; }
.fp-ed .ed-st-detail-head { display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.fp-ed .ed-st-back { display: none; align-items: center; gap: 5px; font-size: 0.84rem; font-weight: 600; color: var(--muted); background: none; border: 0; cursor: pointer; padding: 4px 0; }
.fp-ed .ed-st-back svg { width: 15px; height: 15px; }
.fp-ed .ed-st-detail-subj { font-family: var(--display); font-weight: 800; font-size: 1.12rem; line-height: 1.2; color: var(--ink); overflow-wrap: break-word; }
.fp-ed .ed-st-detail-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; font-size: 0.8rem; color: var(--muted); }
/* thread */
.fp-ed .ed-st-thread { flex: 1; overflow-y: auto; max-height: 56vh; padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.fp-ed .ed-st-msg { max-width: 80%; border-radius: 14px; padding: 10px 13px; }
.fp-ed .ed-st-msg.is-mine { align-self: flex-end; background: var(--ink); color: #fff; border-bottom-right-radius: 5px; }
.fp-ed .ed-st-msg.is-staff { align-self: flex-start; background: #eef3fc; border: 1px solid #d9e4f7; border-left: 3px solid #2456b8; border-bottom-left-radius: 5px; }
.fp-ed .ed-st-msg-head { display: flex; align-items: center; gap: 8px; justify-content: space-between; font-size: 0.78rem; font-weight: 700; margin-bottom: 4px; }
.fp-ed .ed-st-msg.is-mine .ed-st-msg-head { color: rgba(255,255,255,0.85); }
.fp-ed .ed-st-msg-head time { font-weight: 500; font-size: 0.72rem; opacity: 0.8; }
.fp-ed .ed-st-staff { display: inline-flex; align-items: center; gap: 5px; color: #2456b8; }
.fp-ed .ed-st-staff svg { width: 13px; height: 13px; }
.fp-ed .ed-st-msg-body { font-size: 0.92rem; line-height: 1.55; overflow-wrap: break-word; word-break: break-word; }
.fp-ed .ed-st-sys { align-self: center; font-size: 0.78rem; color: var(--muted); background: var(--band); padding: 5px 12px; border-radius: var(--pill); }
.fp-ed .ed-st-closed { margin: 0 18px; padding: 10px 14px; font-size: 0.84rem; color: #9a6a00; background: #fdf6e6; border: 1px solid #f0e2c0; border-radius: 12px; }
/* composer + new form */
.fp-ed .ed-st-composer { border-top: 1px solid var(--line); padding: 14px 18px; display: flex; flex-direction: column; gap: 10px; }
.fp-ed .ed-st-composer textarea { width: 100%; resize: vertical; min-height: 48px; max-height: 160px; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; font: inherit; font-size: 0.92rem; background: var(--bg); }
.fp-ed .ed-st-composer-row, .fp-ed .ed-st-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fp-ed .ed-st-status { font-size: 0.82rem; color: var(--muted); }
.fp-ed .ed-st-form { padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.fp-ed .ed-st-form .ed-field { margin: 0; }
@media (max-width: 920px) {
  .fp-ed .ed-st-shell { grid-template-columns: 1fr; }
  .fp-ed .ed-st-list { position: static; max-height: none; }
  .fp-ed .ed-st-shell.is-detail .ed-st-list { display: none; }
  .fp-ed .ed-st-shell:not(.is-detail) .ed-st-detail { display: none; }
  .fp-ed .ed-st-back { display: inline-flex; }
  .fp-ed .ed-st-thread { max-height: none; }
}
.fp-ed .ed-st-detail-tx { flex: 1; min-width: 0; }
.fp-ed .ed-st-detail-actions { display: flex; gap: 8px; flex-shrink: 0; }
.fp-ed .ed-st-act { display: inline-flex; align-items: center; gap: 5px; font-size: 0.8rem; font-weight: 700; color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: 10px; padding: 6px 11px; cursor: pointer; transition: border-color 0.16s ease, background 0.16s ease, color 0.16s ease; }
.fp-ed .ed-st-act svg { width: 14px; height: 14px; }
.fp-ed .ed-st-act:hover { border-color: var(--ink); }
.fp-ed .ed-st-act[data-st-resolve]:hover { border-color: #1f9d57; color: #1f7a45; background: #eafaf0; }
.fp-ed .ed-st-act.is-close:hover { border-color: #c2410c; color: #9a3412; background: #fff2ea; }
.fp-ed .ed-st-attachrow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fp-ed .ed-st-attach-btn { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; font-weight: 600; color: var(--muted); background: none; border: 1px dashed var(--line); border-radius: 10px; padding: 6px 11px; cursor: pointer; transition: border-color 0.16s ease, color 0.16s ease; }
.fp-ed .ed-st-attach-btn:hover { border-color: var(--ink); color: var(--ink); }
.fp-ed .ed-st-attach-btn svg { width: 14px; height: 14px; }
.fp-ed .ed-st-attach-hint { font-size: 0.78rem; color: var(--muted); }
.fp-ed .ed-st-atts { display: flex; flex-wrap: wrap; gap: 7px; }
.fp-ed .ed-st-atts.is-editable:empty { display: none; }
.fp-ed .ed-st-att { display: inline-flex; align-items: center; gap: 6px; max-width: 240px; font-size: 0.8rem; font-weight: 600; color: var(--ink); text-decoration: none; background: var(--band); border: 1px solid var(--line); border-radius: 9px; padding: 5px 9px; }
.fp-ed .ed-st-att svg { width: 13px; height: 13px; flex-shrink: 0; opacity: 0.75; }
.fp-ed .ed-st-att > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-ed .ed-st-att em { font-style: normal; font-size: 0.72rem; color: var(--muted); flex-shrink: 0; }
.fp-ed .ed-st-att[href]:hover { border-color: var(--ink); }
.fp-ed .ed-st-msg.is-mine .ed-st-att { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.28); color: #fff; }
.fp-ed .ed-st-msg.is-mine .ed-st-att em { color: rgba(255,255,255,0.7); }
.fp-ed .ed-st-att-x { background: none; border: 0; color: var(--muted); font-size: 1.1rem; line-height: 1; cursor: pointer; padding: 0 0 0 2px; }
.fp-ed .ed-st-att-x:hover { color: #c2410c; }
.fp-ed .ed-st-atts { margin-top: 6px; }
.fp-ed .ed-st-modal { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(15,18,24,0.5); opacity: 0; transition: opacity 0.18s ease; }
.fp-ed .ed-st-modal.is-open { opacity: 1; }
.fp-ed .ed-st-modal-card { width: min(420px, 100%); background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 22px; box-shadow: 0 30px 80px -30px rgba(8,12,20,0.6); transform: translateY(8px) scale(0.98); transition: transform 0.18s ease; }
.fp-ed .ed-st-modal.is-open .ed-st-modal-card { transform: none; }
.fp-ed .ed-st-modal-card h3 { font-family: var(--display); font-weight: 800; font-size: 1.12rem; color: var(--ink); margin: 0 0 8px; }
.fp-ed .ed-st-modal-card p { margin: 0 0 18px; font-size: 0.9rem; line-height: 1.55; color: var(--muted); }
.fp-ed .ed-st-modal-row { display: flex; justify-content: flex-end; gap: 10px; }

.fp-ed .ed-rf-wrap { padding: 40px 0 80px; }
.fp-ed .ed-rf-head { max-width: 680px; margin: 0 auto 30px; text-align: center; }
.fp-ed .ed-rf-title { margin: 12px 0 10px; }
.fp-ed .ed-rf-lead { margin: 0 auto; color: var(--muted); }
.fp-ed .ed-rf-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 18px; align-items: stretch; }
.fp-ed .ed-rf-share { position: relative; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: 24px; box-shadow: 0 18px 40px -32px rgba(18, 22, 30, 0.5); }
.fp-ed .ed-rf-share-kick { display: block; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin-bottom: 12px; }
.fp-ed .ed-rf-linkrow { display: flex; gap: 10px; align-items: stretch; }
.fp-ed .ed-rf-link { flex: 1 1 auto; min-width: 0; font-family: var(--display); font-size: 0.95rem; color: var(--ink); background: var(--band); border: 1px solid var(--line); border-radius: 12px; padding: 0 14px; height: 48px; }
.fp-ed .ed-rf-link:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14); }
.fp-ed .ed-rf-copy { flex: 0 0 auto; height: 48px; }
.fp-ed .ed-rf-code-line { margin: 14px 0 18px; color: var(--muted); font-size: 0.9rem; }
.fp-ed .ed-rf-code-line strong { color: var(--ink); font-family: var(--display); }
.fp-ed .ed-rf-share-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.fp-ed .ed-rf-sbtn { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px; border: 1px solid var(--line); border-radius: var(--pill); background: var(--paper); color: var(--ink); font-family: var(--display); font-weight: 600; font-size: 0.88rem; cursor: pointer; transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s; }
.fp-ed .ed-rf-sbtn:hover { border-color: var(--brand); transform: translateY(-2px); box-shadow: 0 12px 24px -18px rgba(18, 22, 30, 0.5); }
.fp-ed .ed-rf-sbtn svg { width: 18px; height: 18px; color: var(--brand); }
.fp-ed .ed-rf-copied { display: inline-block; margin-top: 14px; font-size: 0.82rem; color: #1f7a3d; font-weight: 600; }
.fp-ed .ed-rf-stat { display: flex; flex-direction: column; justify-content: center; text-align: center; background: linear-gradient(160deg, var(--brand), var(--brand-2, #1d4ed8)); color: #fff; border-radius: var(--r2); padding: 28px 22px; box-shadow: 0 22px 48px -30px rgba(37, 99, 235, 0.7); }
.fp-ed .ed-rf-stat-n { font-family: var(--serif); font-size: 3.4rem; line-height: 1; font-weight: 600; }
.fp-ed .ed-rf-stat-l { display: block; margin-top: 6px; font-size: 0.95rem; letter-spacing: 0.02em; opacity: 0.92; }
.fp-ed .ed-rf-stat-note { margin: 16px 0 0; font-size: 0.86rem; opacity: 0.85; line-height: 1.5; }
.fp-ed .ed-rf-how { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 36px; }
.fp-ed .ed-rf-step { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: 22px; }
.fp-ed .ed-rf-step-n { display: inline-block; font-family: var(--serif); font-size: 1.4rem; color: var(--brand); font-weight: 600; margin-bottom: 8px; }
.fp-ed .ed-rf-step h3 { margin: 0 0 6px; font-size: 1.02rem; }
.fp-ed .ed-rf-step p { margin: 0; color: var(--muted); font-size: 0.9rem; line-height: 1.55; }
.fp-ed .ed-rf-recent-wrap { margin-top: 40px; }
.fp-ed .ed-rf-recent-title { margin: 0 0 16px; }
.fp-ed .ed-rf-rec-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fp-ed .ed-rf-rec { display: flex; align-items: center; gap: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; }
.fp-ed .ed-rf-rec-av { width: 40px; height: 40px; flex: 0 0 auto; font-size: 0.95rem; }
.fp-ed .ed-rf-rec-main { flex: 1 1 auto; min-width: 0; }
.fp-ed .ed-rf-rec-name { display: block; font-family: var(--display); font-weight: 600; color: var(--ink); }
.fp-ed .ed-rf-rec-handle { color: var(--muted); font-weight: 500; font-size: 0.86rem; }
.fp-ed .ed-rf-rec-meta { display: block; color: var(--muted); font-size: 0.82rem; margin-top: 2px; }
.fp-ed .ed-rf-rec-tag { flex: 0 0 auto; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #1f7a3d; background: rgba(31, 122, 61, 0.1); border-radius: var(--pill); padding: 4px 10px; }
.fp-ed .ed-rf-empty, .fp-ed .ed-rf-loading { margin: 0; color: var(--muted); background: var(--band); border: 1px dashed var(--line); border-radius: 12px; padding: 22px; text-align: center; font-size: 0.92rem; }
.fp-ed .ed-rf-sbtn[hidden], .fp-ed .ed-rf-copied[hidden] { display: none !important; }
@media (max-width: 860px) {
  .fp-ed .ed-rf-grid { grid-template-columns: 1fr; }
  .fp-ed .ed-rf-how { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .fp-ed .ed-rf-share { padding: 18px; }
  .fp-ed .ed-rf-linkrow { flex-direction: column; }
  .fp-ed .ed-rf-copy { width: 100%; }
  .fp-ed .ed-rf-stat-n { font-size: 2.8rem; }
}

/* JOB ALERTS (job-alerts.html) */
.fp-ed .ed-ja-wrap { padding: 40px 0 80px; max-width: 920px; }
.fp-ed .ed-ja-head { margin-bottom: 26px; }
.fp-ed .ed-ja-title { margin: 12px 0 8px; }
.fp-ed .ed-ja-lead { margin: 0; color: var(--muted); max-width: 640px; }
.fp-ed .ed-ja-create { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: 24px; box-shadow: 0 18px 40px -32px rgba(18, 22, 30, 0.5); margin-bottom: 30px; }
.fp-ed .ed-ja-create-kick { font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin: 0 0 16px; }
.fp-ed .ed-ja-form { display: grid; grid-template-columns: 1.6fr 1fr 1fr auto; gap: 14px; align-items: end; }
.fp-ed .ed-ja-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.fp-ed .ed-ja-field label { font-size: 0.82rem; font-weight: 600; color: var(--ink); }
.fp-ed .ed-ja-field input, .fp-ed .ed-ja-field select { height: 46px; border: 1px solid var(--line); border-radius: 12px; background: var(--band); padding: 0 14px; font-family: var(--display); font-size: 0.92rem; color: var(--ink); }
.fp-ed .ed-ja-field input:focus, .fp-ed .ed-ja-field select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14); }
.fp-ed .ed-ja-field-submit .ed-btn { height: 46px; white-space: nowrap; }
.fp-ed .ed-ja-hint { margin: 12px 0 0; font-size: 0.82rem; color: var(--muted); }
.fp-ed .ed-ja-status { display: block; margin-top: 12px; font-size: 0.86rem; font-weight: 600; }
.fp-ed .ed-ja-status.is-ok { color: #1f7a3d; }
.fp-ed .ed-ja-status.is-err { color: #b3261e; }
.fp-ed .ed-ja-list-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.fp-ed .ed-ja-list-title { margin: 0; }
.fp-ed .ed-ja-list { display: grid; gap: 12px; }
.fp-ed .ed-ja-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: 16px 20px; transition: border-color 0.2s, box-shadow 0.2s; }
.fp-ed .ed-ja-card:hover { box-shadow: 0 14px 30px -24px rgba(18, 22, 30, 0.45); }
.fp-ed .ed-ja-card.is-paused { opacity: 0.7; }
.fp-ed .ed-ja-card-main { min-width: 0; }
.fp-ed .ed-ja-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.fp-ed .ed-ja-chip { font-size: 0.82rem; font-weight: 600; color: var(--ink); background: var(--band); border: 1px solid var(--line); border-radius: var(--pill); padding: 4px 12px; }
.fp-ed .ed-ja-chip-kw { background: rgba(37, 99, 235, 0.08); border-color: rgba(37, 99, 235, 0.2); color: var(--brand); }
.fp-ed .ed-ja-meta { margin-top: 8px; font-size: 0.82rem; color: var(--muted); }
.fp-ed .ed-ja-card-actions { display: flex; align-items: center; gap: 16px; flex: 0 0 auto; }
.fp-ed .ed-ja-toggle { display: inline-flex; align-items: center; gap: 8px; font-size: 0.84rem; font-weight: 600; color: var(--muted); cursor: pointer; }
.fp-ed .ed-ja-toggle input { width: 16px; height: 16px; accent-color: var(--brand); cursor: pointer; }
.fp-ed .ed-ja-del { border: none; background: none; color: #b3261e; font-family: var(--display); font-weight: 600; font-size: 0.84rem; cursor: pointer; padding: 6px 8px; border-radius: 8px; }
.fp-ed .ed-ja-del:hover { background: rgba(179, 38, 30, 0.08); }
.fp-ed .ed-ja-empty, .fp-ed .ed-ja-loading { margin: 0; color: var(--muted); background: var(--band); border: 1px dashed var(--line); border-radius: var(--r2); padding: 28px; text-align: center; }
.fp-ed .ed-ja-empty-sub { margin: 8px 0 0; font-size: 0.86rem; }
@media (max-width: 760px) {
  .fp-ed .ed-ja-form { grid-template-columns: 1fr 1fr; }
  .fp-ed .ed-ja-field-submit { grid-column: 1 / -1; }
  .fp-ed .ed-ja-field-submit .ed-btn { width: 100%; }
}
@media (max-width: 520px) {
  .fp-ed .ed-ja-form { grid-template-columns: 1fr; }
  .fp-ed .ed-ja-card { flex-direction: column; align-items: flex-start; }
  .fp-ed .ed-ja-card-actions { width: 100%; justify-content: space-between; }
  .fp-ed .ed-ja-list-head { flex-direction: column; align-items: flex-start; }
}

.fp-ed .ed-biz-wrap { padding: 36px 0 80px; }
.fp-ed .ed-biz-head { margin-bottom: 18px; }
.fp-ed .ed-biz-title { margin: 10px 0 8px; }
.fp-ed .ed-biz-lead { margin: 0; color: var(--muted); max-width: 640px; }
.fp-ed .ed-biz-tabs { display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.fp-ed .ed-biz-tab { appearance: none; background: none; border: none; border-bottom: 2px solid transparent; padding: 12px 14px; font-family: var(--display); font-weight: 600; font-size: 0.95rem; color: var(--muted); cursor: pointer; margin-bottom: -1px; }
.fp-ed .ed-biz-tab:hover { color: var(--ink); }
.fp-ed .ed-biz-tab.is-active { color: var(--brand); border-bottom-color: var(--brand); }
.fp-ed .ed-biz-loading { padding: 40px 16px; text-align: center; color: var(--muted); }
.fp-ed .ed-biz-muted { color: var(--muted); font-size: 0.88rem; }
.fp-ed .ed-biz-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 16px 0; }
.fp-ed .ed-biz-money-rows { display: grid; gap: 10px; margin-top: 4px; }
.fp-ed .ed-biz-money-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.fp-ed .ed-biz-money-row span { color: var(--muted); font-size: 0.9rem; }
.fp-ed .ed-biz-money-row strong { font-family: var(--serif); font-size: 1.05rem; color: var(--ink); }
.fp-ed .ed-biz-money-row strong.is-ok { color: #1f7a3d; }
.fp-ed .ed-biz-standing-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 6px 0 12px; }
.fp-ed .ed-biz-standing-badges { min-height: 26px; }
.fp-ed .ed-biz-serve-meta { display: block; color: var(--muted); font-size: 0.82rem; margin-top: 2px; }
.fp-ed .ed-biz-serves-wrap { margin-top: 16px; }
.fp-ed .ed-biz-sec-head { margin: 30px 0 14px; }
.fp-ed .ed-biz-sec-head .ed-h3 { margin: 4px 0 0; }
.fp-ed .ed-biz-standing-lg { margin-bottom: 8px; }
.fp-ed .ed-biz-standing-lg-row { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; }
.fp-ed .ed-biz-standing-lg-chip { margin-top: 8px; }
.fp-ed .ed-biz-standing-lg-next { color: var(--muted); font-size: 0.95rem; }
.fp-ed .ed-biz-standing-lg-badges { margin-top: 14px; }
.fp-ed .ed-biz-levels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.fp-ed .ed-biz-level { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: 18px; }
.fp-ed .ed-biz-level.is-current { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12); }
.fp-ed .ed-biz-level.is-achieved { background: var(--band); }
.fp-ed .ed-biz-level-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.fp-ed .ed-biz-level-note { margin: 0 0 12px; color: var(--muted); font-size: 0.86rem; line-height: 1.5; }
.fp-ed .ed-biz-tag { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 3px 9px; border-radius: var(--pill); color: var(--muted); background: var(--band); border: 1px solid var(--line); white-space: nowrap; }
.fp-ed .ed-biz-tag.is-current { color: #fff; background: var(--brand); border-color: var(--brand); }
.fp-ed .ed-biz-tag.is-achieved { color: #1f7a3d; background: rgba(31, 122, 61, 0.1); border-color: rgba(31, 122, 61, 0.25); }
.fp-ed .ed-biz-tag.is-manual { color: #3d5fa8; background: #f0f5ff; border-color: #bccdf3; }
.fp-ed .ed-biz-crit-h { display: block; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); margin: 8px 0 8px; }
.fp-ed .ed-biz-crit { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.fp-ed .ed-biz-crit-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: baseline; }
.fp-ed .ed-biz-crit-label { font-size: 0.86rem; color: var(--ink); font-weight: 500; }
.fp-ed .ed-biz-crit-val { font-size: 0.82rem; color: var(--muted); font-family: var(--display); }
.fp-ed .ed-biz-crit-row.is-met .ed-biz-crit-val { color: #1f7a3d; font-weight: 600; }
.fp-ed .ed-biz-crit-bar { grid-column: 1 / -1; height: 5px; border-radius: 999px; background: var(--band); overflow: hidden; }
.fp-ed .ed-biz-crit-bar i { display: block; height: 100%; border-radius: 999px; background: var(--brand); }
.fp-ed .ed-biz-crit-row.is-met .ed-biz-crit-bar i { background: #1f7a3d; }
.fp-ed .ed-biz-perks { list-style: none; margin: 14px 0 0; padding: 12px 0 0; border-top: 1px solid var(--line); display: grid; gap: 6px; }
.fp-ed .ed-biz-perks li { position: relative; padding-left: 18px; font-size: 0.85rem; color: var(--muted); }
.fp-ed .ed-biz-perks li::before { content: ""; position: absolute; left: 2px; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }
.fp-ed .ed-biz-badges { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.fp-ed .ed-biz-badge-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: 18px; }
.fp-ed .ed-biz-badge-card.is-earned { background: var(--band); }
.fp-ed .ed-biz-badge-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.fp-ed .ed-biz-badge-desc { margin: 0 0 12px; color: var(--muted); font-size: 0.88rem; line-height: 1.55; }
@media (max-width: 760px) {
  .fp-ed .ed-biz-cols { grid-template-columns: 1fr; }
  .fp-ed .ed-biz-levels, .fp-ed .ed-biz-badges { grid-template-columns: 1fr; }
}

.fp-ed .ed-biz-tabs { flex-wrap: wrap; overflow-x: auto; }
.fp-ed .ed-biz-cols-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
.fp-ed .ed-biz-sec-note { color: var(--muted); margin: 4px 0 0; font-size: 14px; max-width: 60ch; }
.fp-ed .ed-biz-sec-head { position: relative; }
.fp-ed .ed-biz-sec-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.fp-ed .ed-biz-money-ink { color: #12774b; }
.fp-ed .ed-biz-link { background: none; border: 0; padding: 0; color: var(--brand); font: inherit; font-weight: 600; cursor: pointer; }
.fp-ed .ed-biz-link:hover { text-decoration: underline; }
.fp-ed .ed-biz-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* progress bars */
.fp-ed .ed-biz-progress { display: block; height: 7px; border-radius: 99px; background: color-mix(in srgb, var(--line) 70%, transparent); overflow: hidden; }
.fp-ed .ed-biz-progress > i { display: block; height: 100%; border-radius: 99px; background: var(--brand); }
.fp-ed .ed-biz-progress.is-health > i { background: #12774b; }

/* rings (SVG) */
.fp-ed .ed-biz-ring { flex: 0 0 auto; }
.fp-ed .ed-biz-ring-bg { fill: none; stroke: color-mix(in srgb, var(--line) 80%, transparent); stroke-width: 7; }
.fp-ed .ed-biz-ring-fg { fill: none; stroke: var(--brand); stroke-width: 7; stroke-linecap: round; transition: stroke-dashoffset .6s ease; }
.fp-ed .ed-biz-ring.is-health .ed-biz-ring-fg { stroke: #12774b; }
.fp-ed .ed-biz-ring.is-seo .ed-biz-ring-fg { stroke: var(--brand); }
.fp-ed .ed-biz-ring.is-goal .ed-biz-ring-fg { stroke: var(--brand); }
.fp-ed .ed-biz-ring-top { font-family: var(--serif); font-size: 19px; font-weight: 600; fill: var(--ink); text-anchor: middle; dominant-baseline: middle; }
.fp-ed .ed-biz-ring-sub { font-size: 9px; fill: var(--muted); text-anchor: middle; }
.fp-ed .ed-biz-mini-row { display: flex; align-items: center; gap: 16px; }
.fp-ed .ed-biz-mini-tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fp-ed .ed-biz-mini-grade { font-family: var(--display); font-weight: 800; font-size: 20px; line-height: 1.1; }

/* goal mini bars (overview) */
.fp-ed .ed-biz-goalmini { margin-top: 12px; }
.fp-ed .ed-biz-goalmini-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; font-size: 13px; }
.fp-ed .ed-biz-goalmini-top strong { font-family: var(--serif); font-weight: 600; }
.fp-ed .ed-biz-goalmini-top em { color: var(--muted); font-style: normal; font-weight: 400; }

/* smart alerts */
.fp-ed .ed-biz-alerts-wrap { margin-bottom: 18px; }
.fp-ed .ed-biz-alert { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r2); margin-top: 10px; text-decoration: none; color: inherit; transition: border-color .15s ease, transform .15s ease; }
.fp-ed .ed-biz-alert:hover { border-color: color-mix(in srgb, var(--brand) 45%, var(--line)); transform: translateY(-1px); }
.fp-ed .ed-biz-alert-dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 99px; margin-top: 5px; background: var(--brand); }
.fp-ed .ed-biz-alert.is-warn .ed-biz-alert-dot { background: #c08a17; }
.fp-ed .ed-biz-alert.is-good .ed-biz-alert-dot { background: #12774b; }
.fp-ed .ed-biz-alert.is-info .ed-biz-alert-dot { background: var(--brand); }
.fp-ed .ed-biz-alert-tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fp-ed .ed-biz-alert-tx strong { font-size: 14px; }
.fp-ed .ed-biz-alert-tx span { color: var(--muted); font-size: 13px; }

/* SERVE analytics cards */
.fp-ed .ed-biz-serve-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fp-ed .ed-biz-serve-card { min-width: 0; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); padding: 16px; }
.fp-ed .ed-biz-serve-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.fp-ed .ed-biz-serve-thumb { flex: 0 0 auto; width: 56px; height: 42px; border-radius: 8px; object-fit: cover; background: color-mix(in srgb, var(--line) 50%, transparent); }
.fp-ed .ed-biz-serve-id { min-width: 0; flex: 1; }
.fp-ed .ed-biz-serve-id a { color: inherit; text-decoration: none; }
.fp-ed .ed-biz-serve-id a:hover { color: var(--brand); }
.fp-ed .ed-biz-serve-id strong { display: block; font-size: 14.5px; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-ed .ed-biz-serve-sub { display: block; color: var(--muted); font-size: 12.5px; }
.fp-ed .ed-biz-seo-badge { flex: 0 0 auto; display: inline-flex; align-items: baseline; gap: 2px; padding: 5px 9px; border-radius: 99px; font-family: var(--serif); font-weight: 600; font-size: 15px; border: 1px solid; }
.fp-ed .ed-biz-seo-badge i { font-style: normal; font-size: 9.5px; font-family: var(--display); opacity: .8; }
.fp-ed .ed-biz-seo-badge.is-a { color: #12774b; border-color: color-mix(in srgb, #12774b 40%, var(--line)); background: color-mix(in srgb, #12774b 8%, transparent); }
.fp-ed .ed-biz-seo-badge.is-b { color: var(--brand); border-color: color-mix(in srgb, var(--brand) 40%, var(--line)); background: color-mix(in srgb, var(--brand) 8%, transparent); }
.fp-ed .ed-biz-seo-badge.is-c { color: #b07d12; border-color: color-mix(in srgb, #b07d12 40%, var(--line)); background: color-mix(in srgb, #b07d12 8%, transparent); }
.fp-ed .ed-biz-seo-badge.is-d { color: #b42318; border-color: color-mix(in srgb, #b42318 40%, var(--line)); background: color-mix(in srgb, #b42318 8%, transparent); }
.fp-ed .ed-biz-serve-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px; min-width: 0; }
.fp-ed .ed-biz-serve-funnel { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.fp-ed .ed-biz-funnel-row { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 8px; }
.fp-ed .ed-biz-funnel-label { font-size: 11.5px; color: var(--muted); }
.fp-ed .ed-biz-funnel-bar { height: 8px; border-radius: 99px; background: color-mix(in srgb, var(--line) 60%, transparent); overflow: hidden; }
.fp-ed .ed-biz-funnel-bar > i { display: block; height: 100%; border-radius: 99px; background: var(--brand); }
.fp-ed .ed-biz-funnel-bar > i.is-imp { background: color-mix(in srgb, var(--brand) 35%, var(--line)); }
.fp-ed .ed-biz-funnel-bar > i.is-view { background: color-mix(in srgb, var(--brand) 60%, var(--line)); }
.fp-ed .ed-biz-funnel-bar > i.is-click { background: var(--brand); }
.fp-ed .ed-biz-funnel-bar > i.is-save { background: color-mix(in srgb, var(--brand) 80%, #12774b); }
.fp-ed .ed-biz-funnel-bar > i.is-order { background: #12774b; }
.fp-ed .ed-biz-funnel-val { font-family: var(--serif); font-size: 13px; text-align: right; min-width: 38px; }
.fp-ed .ed-biz-serve-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-content: start; }
.fp-ed .ed-biz-serve-stat { display: flex; flex-direction: column; gap: 1px; }
.fp-ed .ed-biz-serve-stat span { font-size: 11.5px; color: var(--muted); }
.fp-ed .ed-biz-serve-stat strong { font-family: var(--serif); font-size: 15px; font-weight: 600; }
.fp-ed .ed-biz-serve-kw { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 13px; padding-top: 12px; border-top: 1px solid var(--line); }
.fp-ed .ed-biz-serve-kw-h { font-size: 11.5px; color: var(--muted); margin-right: 2px; }
.fp-ed .ed-biz-kwchip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 99px; border: 1px solid var(--line); font-size: 12px; }
.fp-ed .ed-biz-kwchip i { font-style: normal; font-family: var(--serif); color: var(--muted); font-size: 11px; }
.fp-ed .ed-biz-serve-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; }

/* rank spark + delta */
.fp-ed .ed-biz-spark { display: inline-block; width: 116px; height: 28px; vertical-align: middle; }
.fp-ed .ed-biz-spark polyline { stroke: var(--brand); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.fp-ed .ed-biz-spark.is-up polyline { stroke: #12774b; }
.fp-ed .ed-biz-spark.is-down polyline { stroke: #b42318; }
.fp-ed .ed-biz-spark-empty { color: var(--muted); }
.fp-ed .ed-biz-delta { font-size: 11.5px; font-weight: 600; }
.fp-ed .ed-biz-delta.is-up { color: #12774b; }
.fp-ed .ed-biz-delta.is-down { color: #b42318; }
.fp-ed .ed-biz-delta.is-flat { color: var(--muted); }

/* tables */
.fp-ed .ed-biz-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 520px; }
.fp-ed .ed-biz-table th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 600; padding: 0 12px 9px; border-bottom: 1px solid var(--line); }
.fp-ed .ed-biz-table td { padding: 11px 12px; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); vertical-align: middle; }
.fp-ed .ed-biz-table th.num, .fp-ed .ed-biz-table td.num { text-align: right; }
.fp-ed .ed-biz-table td.num { font-family: var(--serif); }
.fp-ed .ed-biz-table tbody tr:last-child td { border-bottom: 0; }
.fp-ed .ed-biz-table a { color: inherit; text-decoration: none; font-weight: 600; }
.fp-ed .ed-biz-table a:hover { color: var(--brand); }

/* Gig SEO opportunities */
.fp-ed .ed-biz-opp { display: flex; gap: 11px; align-items: flex-start; padding: 11px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); }
.fp-ed .ed-biz-opp:last-child { border-bottom: 0; }
.fp-ed .ed-biz-opp-ic { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 3px; margin-top: 4px; background: var(--brand); }
.fp-ed .ed-biz-opp-ic.improve_rank { background: #c08a17; }
.fp-ed .ed-biz-opp-ic.new_serve { background: var(--brand); }
.fp-ed .ed-biz-opp-tx { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.fp-ed .ed-biz-opp-tx strong { font-size: 14px; }
.fp-ed .ed-biz-opp-tx span { color: var(--muted); font-size: 13px; }

/* Growth */
.fp-ed .ed-biz-coach { display: flex; gap: 11px; align-items: flex-start; padding: 11px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); }
.fp-ed .ed-biz-coach:last-child { border-bottom: 0; }
.fp-ed .ed-biz-coach-ic { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 99px; margin-top: 6px; background: var(--brand); }
.fp-ed .ed-biz-coach-tx { display: flex; flex-direction: column; gap: 1px; }
.fp-ed .ed-biz-coach-tx strong { font-size: 14px; }
.fp-ed .ed-biz-coach-tx span { color: var(--muted); font-size: 13px; }

/* Goals & Health */
.fp-ed .ed-biz-goals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 18px; }
.fp-ed .ed-biz-goal-card { display: flex; align-items: center; gap: 16px; }
.fp-ed .ed-biz-goal-tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fp-ed .ed-biz-goal-tx strong { font-family: var(--serif); font-size: 22px; font-weight: 600; line-height: 1; }
.fp-ed .ed-biz-health-top { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.fp-ed .ed-biz-health-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.fp-ed .ed-biz-health-factor-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; font-size: 13.5px; }
.fp-ed .ed-biz-health-factor-top em { color: var(--muted); font-style: normal; font-size: 11.5px; }
.fp-ed .ed-biz-health-factor-top strong { font-family: var(--serif); font-weight: 600; }
.fp-ed .ed-biz-health-hint { display: block; color: var(--muted); font-size: 12.5px; margin-top: 5px; }

/* set-goals modal */
.ed-biz-modal { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 20px; }
.ed-biz-modal[hidden] { display: none; }
.ed-biz-modal-backdrop { position: absolute; inset: 0; background: rgba(12, 16, 24, .5); backdrop-filter: blur(2px); }
.ed-biz-modal-card { position: relative; width: 100%; max-width: 420px; background: var(--paper, #fff); border: 1px solid var(--line); border-radius: 18px; padding: 22px; box-shadow: 0 24px 70px rgba(12, 21, 40, .28); }
.ed-biz-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.ed-biz-modal-x { background: none; border: 0; font-size: 26px; line-height: 1; color: var(--muted); cursor: pointer; padding: 0 4px; }
.ed-biz-modal-x:hover { color: var(--ink); }
.ed-biz-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; font-size: 13.5px; font-weight: 600; }
.ed-biz-field input { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r); font: inherit; font-weight: 500; }
.ed-biz-field input:focus { outline: none; border-color: var(--brand); }
.ed-biz-input-money { position: relative; }
.ed-biz-input-money i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); font-style: normal; }
.ed-biz-input-money input { padding-left: 26px; }
.ed-biz-modal-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px; }
.ed-biz-goals-msg { margin: 12px 0 0; font-size: 13px; }
.ed-biz-goals-msg.is-ok { color: #12774b; }
.ed-biz-goals-msg.is-err { color: #b42318; }

@media (max-width: 880px) {
  .fp-ed .ed-biz-cols-2 { grid-template-columns: 1fr; }
  .fp-ed .ed-biz-serve-cards { grid-template-columns: 1fr; }
  .fp-ed .ed-biz-goals { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .fp-ed .ed-biz-serve-grid { grid-template-columns: 1fr; }
  .fp-ed .ed-biz-health-top, .fp-ed .ed-biz-mini-row, .fp-ed .ed-biz-goal-card { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-ed .ed-biz-ring-fg { transition: none; }
  .fp-ed .ed-biz-alert:hover { transform: none; }
}

.fp-ed .ed-biz-chart { width: 100%; min-height: 150px; }
.fp-ed .ed-biz-chart-lg { min-height: 230px; }
.ed-chart-svg { display: block; width: 100%; overflow: visible; }
.ed-chart-grid { stroke: rgba(12, 21, 40, .08); stroke-width: 1; }
.ed-chart-axy { font-family: var(--serif); font-size: 10px; fill: var(--muted); text-anchor: end; }
.ed-chart-axx { font-family: var(--display); font-size: 10px; fill: var(--muted); }
.ed-chart-cross { stroke: color-mix(in srgb, var(--brand) 55%, transparent); stroke-width: 1; stroke-dasharray: 3 3; }
.ed-chart-pt { stroke: var(--paper); stroke-width: 2; }
.ed-chart-bar { fill: color-mix(in srgb, var(--brand) 78%, var(--line)); transition: fill .12s ease; }
.ed-chart-empty { display: flex; align-items: center; justify-content: center; min-height: 140px; color: var(--muted); font-size: 14px; text-align: center; padding: 14px; }

/* floating value tooltip (shared) */
.ed-chart-tip { position: fixed; z-index: 220; pointer-events: none; max-width: 240px; padding: 8px 11px; background: var(--paper, #fff); color: var(--ink); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 38px rgba(12, 21, 40, .22); font-size: 12.5px; opacity: 0; transform: translateY(3px); transition: opacity .12s ease, transform .12s ease; }
.ed-chart-tip.is-on { opacity: 1; transform: translateY(0); }
.ed-chart-tip-h { font-weight: 700; font-size: 12px; margin-bottom: 4px; }
.ed-chart-tip-r { display: flex; align-items: center; gap: 6px; line-height: 1.5; }
.ed-chart-tip-r b { font-family: var(--serif); font-weight: 600; }
.ed-chart-tip-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 99px; }

/* donut */
.ed-chart-donut-wrap { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.ed-chart-donut { flex: 0 0 auto; }
.ed-chart-arc { cursor: pointer; transition: stroke-width .12s ease; }
.ed-chart-donut-c1 { font-family: var(--serif); font-size: 19px; font-weight: 600; fill: var(--ink); }
.ed-chart-donut-c2 { font-size: 9.5px; fill: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.ed-chart-legend { list-style: none; margin: 0; padding: 0; flex: 1; min-width: 160px; display: flex; flex-direction: column; gap: 8px; }
.ed-chart-legend li { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.ed-chart-legend-dot { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 3px; }
.ed-chart-legend-l { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.ed-chart-legend b { font-family: var(--serif); font-weight: 600; }

/* metric switcher (segmented control) + chart panel head */
.fp-ed .ed-biz-metric-switch { display: inline-flex; gap: 2px; padding: 3px; background: color-mix(in srgb, var(--line) 45%, transparent); border-radius: 99px; flex-wrap: wrap; }
.fp-ed .ed-biz-metric-switch button { border: 0; background: transparent; color: var(--muted); font: inherit; font-size: 12.5px; font-weight: 600; padding: 5px 12px; border-radius: 99px; cursor: pointer; }
.fp-ed .ed-biz-metric-switch button.is-on { background: var(--paper); color: var(--brand); box-shadow: 0 1px 3px rgba(12, 21, 40, .12); }
.fp-ed .ed-biz-chart-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
/* two segmented controls (metric + time-range) sharing a chart head */
.fp-ed .ed-biz-switch-row { display: inline-flex; gap: 8px; flex-wrap: wrap; align-items: center; }
/* horizontal wrapping legend for the stacked tier chart (sits below the bars) */
.ed-chart-legend--row { flex-direction: row; flex-wrap: wrap; flex: none; min-width: 0; gap: 5px 16px; margin-top: 10px; }
.ed-chart-legend--row li { font-size: 12px; }
.ed-chart-legend--row .ed-chart-legend-l { flex: 0 0 auto; overflow: visible; }
.fp-ed .ed-biz-chart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fp-ed .ed-biz-forecast { display: flex; flex-wrap: wrap; gap: 18px; align-items: baseline; padding: 12px 0 2px; }
.fp-ed .ed-biz-forecast-big { font-family: var(--serif); font-size: 26px; font-weight: 600; }
.fp-ed .ed-biz-buyerrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); font-size: 13.5px; }
.fp-ed .ed-biz-buyerrow:last-child { border-bottom: 0; }
.fp-ed .ed-biz-buyerrow b { font-family: var(--serif); font-weight: 600; }

/* help dot + popup (editorial) */
.ed-help-dot { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; padding: 0; margin: 0 0 0 5px; border: 0; border-radius: 50%; background: transparent; color: color-mix(in srgb, var(--brand) 70%, var(--muted)); opacity: .5; cursor: help; vertical-align: middle; transition: opacity .14s ease, transform .14s ease; }
.ed-help-dot:hover, .ed-help-dot:focus-visible { opacity: 1; transform: scale(1.08); outline: none; }
.ed-help-dot--kpi { position: absolute; top: 8px; right: 9px; margin: 0; z-index: 2; }
.ed-help-pop { position: fixed; z-index: 240; max-width: 248px; padding: 9px 12px; background: #1a243a; color: #eef2fb; font-size: 12.5px; font-weight: 500; line-height: 1.5; border-radius: 11px; box-shadow: 0 12px 34px rgba(12, 21, 40, .34); opacity: 0; transform: translateY(4px); transition: opacity .14s ease, transform .14s ease; pointer-events: none; }
.ed-help-pop.is-on { opacity: 1; transform: translateY(0); }
.ed-help-pop::after { content: ""; position: absolute; left: var(--arrow-x, 50%); width: 9px; height: 9px; background: #1a243a; transform: translateX(-50%) rotate(45deg); }
.ed-help-pop[data-place="top"]::after { bottom: -4px; }
.ed-help-pop[data-place="bottom"]::after { top: -4px; }

@media (max-width: 760px) {
  .fp-ed .ed-biz-chart-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-chart-tip, .ed-help-pop, .ed-chart-bar, .ed-chart-arc { transition: none; }
}


body[data-business-page].fp-ed { --brand: #3a4660; --brand-2: #4a5878; --data: #2f6df0; }
body[data-business-page] .ed-biz-ring.is-seo .ed-biz-ring-fg,
body[data-business-page] .ed-biz-ring.is-goal .ed-biz-ring-fg { stroke: var(--data); }
/* soft analytics light-wash backdrop (replaces any purple tint) */
body[data-business-page].fp-ed:not(.fp-pub):not(.fp-guide)::before {
  background:
    radial-gradient(1180px 460px at 12% -8%, color-mix(in srgb, var(--data) 6%, transparent), transparent 70%),
    radial-gradient(1000px 420px at 94% 0%, color-mix(in srgb, var(--brand) 6%, transparent), transparent 72%);
}
/* help popups in a neutral slate-dark on this page */
body[data-business-page] .ed-help-pop { background: #28303f; }

/* 2 — money / amounts → BOLD (money stays green) */
body[data-business-page] .ed-biz-money-ink,
body[data-business-page] .ed-biz-forecast-big,
body[data-business-page] .ed-biz-ring-top,
body[data-business-page] .ed-biz-money-row strong,
body[data-business-page] .ed-biz-buyerrow b,
body[data-business-page] .ed-biz-buyertop b { font-weight: 700; }

.fp-ed .ed-wsx-value { font-weight: 700; }
.fp-ed .ed-wsx {
  background: #fff; border-radius: 14px; padding: 18px 18px 16px;
  box-shadow: 0 14px 30px -28px rgba(20, 24, 40, .5);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.fp-ed .ed-wsx:hover {
  transform: translateY(-2px); border-color: var(--line-2);
  box-shadow: 0 22px 44px -28px rgba(20, 24, 40, .5);
}
body[data-business-page] .ed-wsx-value { font-size: 1.85rem; }
body[data-business-page] .ed-wsx-label { color: #5a6172; }

body[data-business-page] [data-biz-panel] > * + *,
body[data-business-page] [data-biz-overview] > * + * { margin-top: 22px; }
body[data-business-page] .ed-biz-chart-grid { gap: 18px; }
body[data-business-page] .ed-wsx-grid { gap: 16px; }
body[data-business-page] .ed-biz-cols,
body[data-business-page] .ed-biz-cols-2 { gap: 20px; }
body[data-business-page] .ed-panel { border-radius: 14px; }
body[data-business-page] .ed-rank-row { display: flex; align-items: center; gap: 12px; }
body[data-business-page] .ed-rank-thumb { flex: 0 0 auto; }
body[data-business-page] .ed-rank-main { flex: 1 1 auto; min-width: 0; }
body[data-business-page] .ed-rank-main strong { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body[data-business-page] .ed-rank-val { flex: 0 0 auto; margin-left: auto; text-align: right; white-space: nowrap; }
@media (max-width: 760px) {
  body[data-business-page] [data-biz-panel] > * + *,
  body[data-business-page] [data-biz-overview] > * + * { margin-top: 18px; }
}
body[data-business-page] .ed-biz-geo { display: flex; flex-direction: column; gap: 3px; margin-top: 4px; }
body[data-business-page] .ed-biz-georow { display: grid; grid-template-columns: 30px minmax(96px, 1.1fr) 2fr 30px 72px; align-items: center; gap: 12px; padding: 8px 6px; border-radius: 9px; transition: background .14s ease; }
body[data-business-page] .ed-biz-georow:hover { background: color-mix(in srgb, var(--data) 8%, transparent); }
body[data-business-page] .ed-biz-geo-code { font-size: 0.66rem; font-weight: 700; letter-spacing: .04em; color: var(--brand); background: color-mix(in srgb, var(--brand) 12%, var(--band)); border-radius: 5px; padding: 4px 0; text-align: center; }
body[data-business-page] .ed-biz-geo-name { font-size: 0.9rem; font-weight: 600; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body[data-business-page] .ed-biz-geo-bar { height: 8px; border-radius: 99px; background: color-mix(in srgb, var(--line) 65%, transparent); overflow: hidden; }
body[data-business-page] .ed-biz-geo-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--data), color-mix(in srgb, var(--data) 60%, #7aa6ff)); }
body[data-business-page] .ed-biz-geo-n { font-family: var(--serif); font-weight: 700; font-size: 0.95rem; text-align: right; }
body[data-business-page] .ed-biz-geo-rev { font-family: var(--serif); font-weight: 700; font-size: 0.9rem; text-align: right; }
@media (max-width: 520px) {
  body[data-business-page] .ed-biz-georow { grid-template-columns: 28px 1fr auto auto; gap: 10px; }
  body[data-business-page] .ed-biz-geo-bar { display: none; }
}

.fp-kyc-tick { display: inline-block !important; vertical-align: middle !important; position: relative; width: 0.82em; height: 0.82em; min-width: 15px; min-height: 15px; max-width: 22px; max-height: 22px; margin: 0 0 0 5px !important; top: -0.06em; line-height: 0; flex: none; }
.fp-kyc-tick > img { display: block !important; width: 100% !important; height: 100% !important; object-fit: contain; }
/* hover tooltip — a small dark pill popup that says what the tick means */
.fp-kyc-tick::after { content: attr(data-kyc-tip); position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translate(-50%, 4px); background: #14171d; color: #fff; font-family: var(--display); font-weight: 600; font-size: 11px; line-height: 1.1; letter-spacing: 0.01em; white-space: nowrap; padding: 6px 9px; border-radius: 7px; box-shadow: 0 8px 22px -8px rgba(0,0,0,0.55); opacity: 0; pointer-events: none; transition: opacity 0.15s ease, transform 0.15s ease; z-index: 60; }
.fp-kyc-tick::before { content: ""; position: absolute; left: 50%; bottom: calc(100% + 3px); transform: translateX(-50%); border: 5px solid transparent; border-top-color: #14171d; opacity: 0; transition: opacity 0.15s ease; z-index: 60; }
.fp-kyc-tick:hover::after { opacity: 1; transform: translate(-50%, 0); }
.fp-kyc-tick:hover::before { opacity: 1; }
.fp-ed .ed-tpro-name .fp-kyc-tick { margin: 0 0 0 -3px !important; top: 0; }

.fp-bhome main { background: var(--bg); }
.fp-bhome .ed-container { max-width: min(1840px, 95vw); }

.fp-bhome .bh-hero { position: relative; overflow: hidden; min-height: clamp(380px, 46vh, 480px); display: flex; align-items: center; padding: 54px 0 48px; background: radial-gradient(120% 120% at 12% 0%, color-mix(in srgb, var(--brand) 16%, var(--paper)) 0%, var(--paper) 46%), linear-gradient(180deg, var(--paper), var(--bg)); border-bottom: 1px solid var(--line); }
.fp-bhome .bh-hero-inner { position: relative; z-index: 2; width: 100%; }
.fp-bhome .bh-hero-deco { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.fp-bhome .bh-orb { position: absolute; border-radius: 50%; filter: blur(46px); opacity: 0.5; }
.fp-bhome .bh-orb-1 { width: 360px; height: 360px; right: -60px; top: -120px; background: radial-gradient(circle, color-mix(in srgb, var(--brand) 42%, transparent), transparent 70%); }
.fp-bhome .bh-orb-2 { width: 300px; height: 300px; right: 18%; bottom: -150px; background: radial-gradient(circle, color-mix(in srgb, #2456b8 34%, transparent), transparent 70%); }
.fp-bhome .bh-orb-3 { width: 220px; height: 220px; left: -70px; bottom: -80px; background: radial-gradient(circle, color-mix(in srgb, var(--brand) 26%, transparent), transparent 70%); }
.fp-bhome .bh-grid-lines { position: absolute; inset: 0; background-image: linear-gradient(to right, color-mix(in srgb, var(--ink) 5%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--ink) 5%, transparent) 1px, transparent 1px); background-size: 46px 46px; -webkit-mask-image: radial-gradient(120% 90% at 50% 0%, #000 35%, transparent 80%); mask-image: radial-gradient(120% 90% at 50% 0%, #000 35%, transparent 80%); opacity: 0.6; }

.fp-bhome .bh-eyebrow { font-family: var(--display); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--brand); margin: 0 0 12px; }
.fp-bhome .bh-title { font-family: var(--display); font-weight: 800; letter-spacing: -0.035em; line-height: 1.03; font-size: clamp(2rem, 4.6vw, 3.4rem); color: var(--ink); margin: 0 0 14px; overflow-wrap: break-word; }
.fp-bhome .bh-title em { font-style: normal; color: var(--brand); }
.fp-bhome .bh-sub { font-size: clamp(0.98rem, 1.4vw, 1.12rem); color: var(--muted); max-width: 56ch; margin: 0 0 22px; line-height: 1.6; }

.fp-bhome .bh-search { display: flex; align-items: center; gap: 8px; max-width: 640px; background: var(--paper); border: 1px solid var(--line-2); border-radius: 999px; padding: 7px 7px 7px 18px; box-shadow: 0 18px 42px -26px rgba(16,18,22,0.4), 0 1px 2px rgba(16,18,22,0.04); }
.fp-bhome .bh-search:focus-within { border-color: color-mix(in srgb, var(--brand) 55%, var(--line-2)); box-shadow: 0 18px 42px -24px color-mix(in srgb, var(--brand) 34%, rgba(16,18,22,0.4)); }
.fp-bhome .bh-search-ic { display: inline-flex; color: var(--muted); flex: none; }
.fp-bhome .bh-search-ic svg { width: 20px; height: 20px; }
.fp-bhome .bh-search input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font-family: var(--body); font-size: 1rem; color: var(--ink); padding: 9px 4px; }
.fp-bhome .bh-search-go { flex: none; border: 0; cursor: pointer; background: var(--brand); color: #fff; font-family: var(--display); font-weight: 700; font-size: 0.92rem; padding: 11px 22px; border-radius: 999px; transition: filter 0.18s ease, transform 0.18s ease; }
.fp-bhome .bh-search-go:hover { filter: brightness(1.08); transform: translateY(-1px); }

.fp-bhome .bh-hero-row { display: flex; align-items: center; justify-content: space-between; gap: 16px 22px; flex-wrap: wrap; margin-top: 20px; }
.fp-bhome .bh-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fp-bhome .bh-chip { display: inline-flex; align-items: center; text-decoration: none; font-size: 0.85rem; font-weight: 600; color: var(--ink-2); background: color-mix(in srgb, var(--paper) 72%, transparent); border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; transition: border-color 0.16s ease, color 0.16s ease, transform 0.16s ease, background 0.16s ease; }
.fp-bhome .bh-chip:hover { color: var(--brand); border-color: color-mix(in srgb, var(--brand) 45%, var(--line)); background: var(--paper); transform: translateY(-1px); }
.fp-bhome .bh-talent-cta { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; background: var(--ink); color: #fff; border-radius: 999px; padding: 11px 18px; font-size: 0.9rem; box-shadow: 0 14px 30px -18px rgba(16,18,22,0.6); transition: transform 0.18s ease, box-shadow 0.18s ease; }
.fp-bhome .bh-talent-cta b { font-weight: 700; }
.fp-bhome .bh-talent-cta span { opacity: 0.94; }
.fp-bhome .bh-talent-cta svg { width: 18px; height: 18px; flex: none; }
.fp-bhome .bh-talent-cta:hover { transform: translateY(-2px); box-shadow: 0 20px 38px -18px rgba(16,18,22,0.66); }

/* Feed */
.fp-bhome .bh-feed-wrap { padding: 40px 0 80px; }
.fp-bhome .bh-feed-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 6px 0 22px; }
.fp-bhome .bh-feed-eyebrow { display: block; font-family: var(--display); font-weight: 700; font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--brand); margin-bottom: 6px; }
.fp-bhome .bh-feed-title { font-family: var(--display); font-weight: 800; letter-spacing: -0.03em; font-size: clamp(1.4rem, 2.4vw, 1.9rem); color: var(--ink); margin: 0; }
.fp-bhome .bh-feed-sub { color: var(--muted); margin: 8px 0 0; max-width: 60ch; }
.fp-bhome .bh-feed-reset { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; font-weight: 600; font-size: 0.9rem; color: var(--ink); white-space: nowrap; }
.fp-bhome .bh-feed-reset svg { width: 16px; height: 16px; }
.fp-bhome .bh-feed-reset:hover { color: var(--brand); }
.fp-bhome .bh-int-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.fp-bhome .bh-int-lead { font-size: 0.86rem; color: var(--muted); }
.fp-bhome .bh-int-chip { font-size: 0.8rem; font-weight: 600; color: var(--brand); background: color-mix(in srgb, var(--brand) 10%, var(--paper)); border: 1px solid color-mix(in srgb, var(--brand) 22%, var(--line)); border-radius: 999px; padding: 4px 11px; }

/* category sections (discover mode) */
.fp-bhome .bh-cat { margin: 0 0 38px; }
.fp-bhome .bh-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }
.fp-bhome .bh-cat-head h3 { font-family: var(--display); font-weight: 800; letter-spacing: -0.02em; font-size: 1.18rem; color: var(--ink); margin: 0; overflow-wrap: break-word; }
.fp-bhome .bh-cat-all { display: inline-flex; align-items: center; gap: 5px; text-decoration: none; font-size: 0.86rem; font-weight: 600; color: var(--ink-2); white-space: nowrap; }
.fp-bhome .bh-cat-all svg { width: 15px; height: 15px; }
.fp-bhome .bh-cat-all:hover { color: var(--brand); }

.fp-bhome .bh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); gap: 22px; }

.fp-bhome .bh-empty { grid-column: 1 / -1; text-align: center; padding: 60px 20px; border: 1px dashed var(--line-2); border-radius: var(--r2); background: var(--paper); }
.fp-bhome .bh-empty h3 { font-family: var(--display); font-weight: 800; margin: 0 0 6px; color: var(--ink); }
.fp-bhome .bh-empty p { color: var(--muted); margin: 0; }
.fp-bhome .bh-empty a { color: var(--brand); font-weight: 600; }

@media (max-width: 640px) {
  .fp-bhome .bh-hero { min-height: 0; padding: 36px 0 32px; }
  .fp-bhome .bh-search { padding: 6px 6px 6px 14px; }
  .fp-bhome .bh-search-go { padding: 10px 16px; }
  .fp-bhome .bh-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
  .fp-bhome .bh-talent-cta { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-bhome .bh-chip, .fp-bhome .bh-talent-cta, .fp-bhome .bh-search-go { transition: none; }
}

/* ── Owner hand-polish nudges — talent card (.ed-tpro), set with the nudge tool
   and baked here permanently (2026-06-06). NOTE: the save-heart (.ed-tpro-save)
   and the level chip (.fp-level--l2) from that set were intentionally NOT baked
   — the save button uses transform for its hover reveal (a static transform
   would break it) + its captured value was an accidental 378px, and .fp-level
   is a firewalled badge class. ── */
.fp-ed .ed-tpro-name { transform: translate(1px, 20px); }
.fp-ed .ed-tpro-sub { transform: translate(1px, 11px); }
.fp-ed .ed-tpro-handle { transform: translate(-3px, 0px); }
.fp-ed .ed-tpro-cta { transform: translate(0px, 24px); }
.fp-ed .ed-results-head > div:nth-of-type(1) > h1:nth-of-type(1) { transform: translate(0px, 10px); }
.fp-ed h1.spx-hero-name { transform: translate(0px, 10px); }
.fp-ed p.spx-hero-role { transform: translate(1px, -10px); }
.fp-ed div.spx-hero-meta { transform: translate(-1px, -13px); }
.fp-ed div.spx-hero-meta > span:nth-of-type(2) { transform: translate(-11px, 2px); }
.fp-ed div.ed-prose.spx-bio > p:nth-of-type(1) { transform: translate(1px, -45px); }
.fp-ed div.spx-skills { transform: translate(2px, -55px); }
.fp-ed .spx-overview-side > .spx-cred-grid { margin: -90px 0 0 -2px; }

.fp-ed .ed-home-hero-art { display: none; }
@media (min-width: 1000px) {
  .fp-ed .ed-home-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); align-items: center; gap: 38px; }
  .fp-ed .ed-home-hero .ed-hero-in { text-align: left; max-width: none; margin: 0; padding: 52px 0; }
  .fp-ed .ed-home-hero .ed-hero-in .ed-lead { margin-left: 0; margin-right: 0; max-width: 32rem; }
  .fp-ed .ed-home-hero .ed-home-search-shell { margin-left: 0; margin-right: 0; width: 100%; max-width: 500px; }
  .fp-ed .ed-home-hero .ed-hero-tags { justify-content: flex-start; }
  .fp-ed .ed-home-hero-art { display: flex; position: relative; align-items: center; justify-content: center; min-height: 440px; }
}
/* the big SQUARE CARD — premium canvas; animations get added inside it later */
.fp-ed .ed-home-hero-card { position: relative; width: 100%; max-width: 560px; aspect-ratio: 1 / 1; border-radius: 26px; border: 1px solid var(--line); background: radial-gradient(120% 120% at 28% 10%, #fff, var(--paper) 72%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), 0 44px 84px -46px rgba(11, 11, 12, 0.42); overflow: hidden; }
/* faint dot-grid so the empty square reads as an intentional canvas (masked, fades at edges) */
.fp-ed .ed-home-hero-card::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(rgba(11, 11, 12, 0.05) 1px, transparent 1.4px); background-size: 22px 22px; -webkit-mask-image: radial-gradient(120% 100% at 50% 28%, #000 28%, transparent 80%); mask-image: radial-gradient(120% 100% at 50% 28%, #000 28%, transparent 80%); }
/* soft corner glows for depth */
.fp-ed .ed-home-hero-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(46% 42% at 80% 86%, rgba(18, 119, 75, 0.08), transparent 70%), radial-gradient(40% 40% at 14% 14%, rgba(11, 11, 12, 0.04), transparent 72%); }

.fp-ed .ed-hhc { position: relative; z-index: 2; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 36px 28px 30px; text-align: center; }
.fp-ed .ed-hhc-kick { font-family: var(--display); font-weight: 700; font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.fp-ed .ed-hhc-shield-svg { width: 100%; height: 100%; }
.fp-ed .ed-hhc-shield-bg { fill: #fff; stroke: var(--line); stroke-width: 1; }
.fp-ed .ed-hhc-shield-line { stroke: #12774b; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 320; stroke-dashoffset: 320; animation: hhc-draw 6.5s ease-in-out infinite; }
@keyframes hhc-draw { 0% { stroke-dashoffset: 320; } 28%, 72% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; } }
.fp-ed .ed-hhc-lock, .fp-ed .ed-hhc-tick { position: absolute; top: 45%; left: 50%; width: 44px; height: 44px; margin: -22px 0 0 -22px; display: inline-flex; align-items: center; justify-content: center; }
.fp-ed .ed-hhc-lock svg, .fp-ed .ed-hhc-tick svg { width: 38px; height: 38px; }
.fp-ed .ed-hhc-lock { color: var(--ink); animation: hhc-lock 6.5s ease-in-out infinite; }
.fp-ed .ed-hhc-tick { color: #12774b; opacity: 0; transform: scale(0.5); animation: hhc-tick 6.5s ease-in-out infinite; }
@keyframes hhc-lock { 0%, 58% { opacity: 1; transform: scale(1); } 66%, 92% { opacity: 0; transform: scale(0.7); } 100% { opacity: 1; transform: scale(1); } }
@keyframes hhc-tick { 0%, 60% { opacity: 0; transform: scale(0.5); } 70% { opacity: 1; transform: scale(1.18); } 84%, 90% { opacity: 1; transform: scale(1); } 96%, 100% { opacity: 0; transform: scale(0.6); } }
.fp-ed .ed-hhc-coin-2 { animation-delay: -2.1s; margin-left: -34px; }
.fp-ed .ed-hhc-coin-3 { animation-delay: -4.2s; margin-left: 8px; }
@keyframes hhc-coin { 0% { transform: translateY(-6px) scale(0.85); opacity: 0; } 6% { opacity: 1; } 26% { transform: translateY(140px) scale(1); opacity: 1; } 36% { transform: translateY(160px) scale(0.5); opacity: 0; } 100% { transform: translateY(160px) scale(0.5); opacity: 0; } }
.fp-ed .ed-hhc-ring-2 { animation-delay: -0.45s; }
@keyframes hhc-ring { 0%, 60% { transform: scale(0.5); opacity: 0; } 68% { opacity: 0.5; } 100% { transform: scale(2.5); opacity: 0; } }
.fp-ed .ed-hhc-cap strong { display: block; font-family: var(--display); font-weight: 800; font-size: 1.12rem; color: var(--ink); letter-spacing: -0.01em; }
.fp-ed .ed-hhc-cap span { display: block; margin-top: 5px; font-size: 0.86rem; color: var(--muted); }
@media (prefers-reduced-motion: reduce) {
  .fp-ed .ed-hhc-shield-line { stroke-dashoffset: 0; animation: none; }
  .fp-ed .ed-hhc-lock { opacity: 1; transform: none; animation: none; }
  .fp-ed .ed-hhc-tick { animation: none; opacity: 0; }
}


      .ed-home-hero-card .hs-stage, .ed-home-hero-card .hs-stage *, .ed-home-hero-card .hs-stage *::before, .ed-home-hero-card .hs-stage *::after { box-sizing: border-box; }
      .hs-stage {
        position: relative; width: 100%; height: 100%;
        border-radius: 26px; overflow: hidden;
        background: radial-gradient(130% 120% at 50% -10%, #1d1f25 0%, #131419 45%, #0c0d11 100%);
        box-shadow: 0 44px 84px -46px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.05);
        color: #fff;
      }
      .hs-stage.hs-paused, .hs-stage.hs-paused *, .hs-stage.hs-paused *::before, .hs-stage.hs-paused *::after { animation-play-state: paused !important; }
      /* ambient drifting glow behind every app scene (text cards / finale paint over it) */
      .hs-stage::after {
        content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
        background:
          radial-gradient(38% 42% at 28% 22%, rgba(124, 150, 255, 0.18), transparent 70%),
          radial-gradient(40% 44% at 74% 80%, rgba(118, 161, 255, 0.15), transparent 72%),
          radial-gradient(50% 50% at 50% 50%, rgba(86, 178, 255, 0.06), transparent 75%);
        animation: hs-ambient 16s ease-in-out infinite;
      }
      @keyframes hs-ambient {
        0%, 100% { opacity: 0.65; transform: scale(1) translateY(0); }
        33% { opacity: 1; transform: scale(1.08) translateY(-2%); }
        66% { opacity: 0.85; transform: scale(1.04) translateY(1.5%); }
      }
      /* subtle inner edge framing (kept light so white serve cards stay crisp) */
      .hs-stage::before {
        content: ""; position: absolute; inset: 0; z-index: 7; pointer-events: none; border-radius: 26px;
        box-shadow: inset 0 0 34px -26px rgba(0, 0, 0, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
      }

      .hs-scene {
        position: absolute; inset: 0; z-index: 1;
        background:
          radial-gradient(58% 48% at 50% 24%, rgba(124, 150, 255, 0.085), transparent 72%),
          radial-gradient(130% 120% at 50% -10%, #1d1f25 0%, #131419 45%, #0c0d11 100%);
        opacity: 0; transform: scale(1.022);
        transition: opacity 0.2s ease, transform 0.4s cubic-bezier(.4, 0, .2, 1);
        will-change: opacity, transform; backface-visibility: hidden;
      }
      .hs-scene.is-on {
        opacity: 1; transform: scale(1); z-index: 2;
        transition: opacity 0.4s cubic-bezier(.22, .92, .34, 1), transform 0.6s cubic-bezier(.16, .84, .34, 1);
      }

      .hs-nav {
        position: absolute; top: 0; left: 0; right: 0; z-index: 5; height: 46px;
        display: flex; align-items: center; gap: 16px; padding: 0 16px 0 132px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
        background: linear-gradient(180deg, rgba(22, 23, 28, 0.7), rgba(22, 23, 28, 0));
        transition: opacity 0.5s ease;
      }
      .hs-nav-links { display: flex; gap: 14px; margin-right: auto; font-size: 0.66rem; font-weight: 500; color: rgba(255, 255, 255, 0.6); }
      .hs-nav-join { padding: 5px 12px; border-radius: 999px; background: #1a449e; color: #fff; font-size: 0.66rem; font-weight: 600; box-shadow: 0 6px 16px -6px rgba(26, 68, 158, 0.85); animation: hs-join-glow 3.2s ease-in-out infinite; }
      @keyframes hs-join-glow { 0%, 100% { box-shadow: 0 6px 16px -6px rgba(26, 68, 158, 0.85), 0 0 0 0 rgba(124, 150, 255, 0); } 50% { box-shadow: 0 6px 18px -6px rgba(26, 68, 158, 0.95), 0 0 16px 0 rgba(124, 150, 255, 0.55); } }
      .hs-logo { position: absolute; z-index: 6; left: 16px; top: 13px; width: 104px; height: auto; opacity: 0.45; filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4)); transition: opacity 0.5s ease; }
      .hs-frameless .hs-nav, .hs-frameless .hs-logo { opacity: 0; }

      .hs-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 56px 26px 26px; text-align: center; }

      [data-scene="search"] .hss-wrap { position: absolute; inset: 46px 0 0 0; display: flex; align-items: center; justify-content: center; padding: 0 30px; }
      [data-scene="search"] .hss-bar { position: relative; display: flex; align-items: center; width: 100%; max-width: 430px; height: 54px; padding: 0 18px; border-radius: 14px; background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035)); border: 1px solid rgba(124,150,255,.28); box-shadow: 0 24px 46px -26px rgba(0,0,0,.8), 0 0 50px -2px rgba(124,150,255,.5); }
      [data-scene="search"].is-on .hss-bar { animation: hss-in .55s cubic-bezier(.2,.8,.2,1) both, hss-glow 3s ease-in-out 0.8s infinite; }
      @keyframes hss-glow { 0%, 100% { box-shadow: 0 24px 46px -26px rgba(0,0,0,.8), 0 0 44px -4px rgba(124,150,255,.42); } 50% { box-shadow: 0 24px 46px -26px rgba(0,0,0,.8), 0 0 58px 2px rgba(124,150,255,.62); } }
      [data-scene="search"] .hss-ic { width: 20px; height: 20px; color: rgba(255,255,255,.55); flex: 0 0 auto; }
      [data-scene="search"] .hss-tx { display: inline-flex; align-items: center; min-width: 0; margin-left: 12px; font-size: 1rem; font-weight: 500; color: #f4f5f7; white-space: nowrap; overflow: hidden; }
      [data-scene="search"] .hss-caret { flex: 0 0 auto; width: 2px; height: 18px; margin-left: 2px; border-radius: 2px; background: #f4f5f7; box-shadow: 0 0 8px rgba(255,255,255,.6); }
      [data-scene="search"].is-on .hss-caret { animation: hss-blink 1s steps(1) infinite; }
      @keyframes hss-in { 0% { opacity: 0; transform: scale(.9); } 100% { opacity: 1; transform: scale(1); } }
      @keyframes hss-blink { 0%, 55% { opacity: 1; } 56%, 100% { opacity: 0; } }

      [data-scene="grid"] .hsg-wrap, [data-scene="select"] .hsg-wrap { position: absolute; inset: 46px 0 0 0; display: flex; flex-direction: column; justify-content: center; padding: 6px 22px 16px; }
      [data-scene="grid"] .hsg-head, [data-scene="select"] .hsg-head { display: flex; align-items: baseline; justify-content: space-between; margin: 0 2px 9px; }
      [data-scene="grid"] .hsg-head b, [data-scene="select"] .hsg-head b { font-size: .86rem; font-weight: 700; color: #f4f5f7; }
      [data-scene="grid"] .hsg-head span, [data-scene="select"] .hsg-head span { font-size: .64rem; color: rgba(255,255,255,.45); }
      [data-scene="grid"] .hsg-grid, [data-scene="select"] .hsg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
      [data-scene="grid"] .hsg-card, [data-scene="select"] .hsg-card { transform-origin: center; }
      [data-scene="grid"] .hsg-inner, [data-scene="select"] .hsg-inner { display: flex; flex-direction: column; border-radius: 11px; overflow: hidden; background: #fff; border: 1px solid rgba(0,0,0,.07); box-shadow: 0 14px 26px -18px rgba(0,0,0,.55); }
      [data-scene="grid"] .hsg-thumb, [data-scene="select"] .hsg-thumb { position: relative; height: 72px; display: flex; align-items: center; justify-content: center; background: radial-gradient(120% 120% at 30% 0%, rgba(124,150,255,.32), transparent 62%), linear-gradient(150deg,#34375f,#1b1d33); }
      [data-scene="grid"] .hsg-thumb svg, [data-scene="select"] .hsg-thumb svg { width: 23px; height: 23px; color: #fff; }
      [data-scene="grid"] .hsg-badge, [data-scene="select"] .hsg-badge { position: absolute; top: 5px; left: 5px; padding: 2px 6px; border-radius: 999px; background: rgba(8,9,14,.5); border: 1px solid rgba(255,255,255,.16); font-size: .48rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: #fff; }
      [data-scene="grid"] .hsg-body, [data-scene="select"] .hsg-body { padding: 7px 8px 8px; }
      [data-scene="grid"] .hsg-title, [data-scene="select"] .hsg-title { font-size: .7rem; font-weight: 600; line-height: 1.2; color: #18181b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
      [data-scene="grid"] .hsg-rate, [data-scene="select"] .hsg-rate { display: flex; align-items: center; gap: 3px; margin-top: 4px; font-size: .62rem; font-weight: 600; color: #2c2c32; }
      [data-scene="grid"] .hsg-rate svg, [data-scene="select"] .hsg-rate svg { width: 10px; height: 10px; color: #f5a623; }
      [data-scene="grid"] .hsg-rate small, [data-scene="select"] .hsg-rate small { font-weight: 500; color: #9a9aa2; }
      /* S2 pop-in */
      [data-scene="grid"].is-on .hsg-head { animation: hsg-head .5s ease both; }
      [data-scene="grid"].is-on .hsg-card { animation: hsg-pop .5s cubic-bezier(.2,1.15,.4,1) both; }
      [data-scene="grid"].is-on .hsg-card:nth-child(1){animation-delay:.04s} [data-scene="grid"].is-on .hsg-card:nth-child(2){animation-delay:.1s} [data-scene="grid"].is-on .hsg-card:nth-child(3){animation-delay:.16s} [data-scene="grid"].is-on .hsg-card:nth-child(4){animation-delay:.22s} [data-scene="grid"].is-on .hsg-card:nth-child(5){animation-delay:.28s} [data-scene="grid"].is-on .hsg-card:nth-child(6){animation-delay:.34s} [data-scene="grid"].is-on .hsg-card:nth-child(7){animation-delay:.4s} [data-scene="grid"].is-on .hsg-card:nth-child(8){animation-delay:.46s} [data-scene="grid"].is-on .hsg-card:nth-child(9){animation-delay:.52s}
      @keyframes hsg-head { 0% { opacity: 0; transform: translateY(-5px); } 100% { opacity: 1; transform: none; } }
      @keyframes hsg-pop { 0% { opacity: 0; transform: scale(0); } 70% { opacity: 1; transform: scale(1.06); } 100% { opacity: 1; transform: scale(1); } }
      [data-scene="select"] .hsg-card:nth-child(5) { position: relative; z-index: 3; }
      [data-scene="select"] .hsg-cursor { position: absolute; z-index: 8; width: 22px; height: 22px; pointer-events: none; opacity: 0; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)) drop-shadow(0 0 12px rgba(124,150,255,.7)) drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
      [data-scene="select"] .hsg-cursor svg { width: 100%; height: 100%; }
      [data-scene="select"].is-on .hsg-cursor { animation: hsg-cur 3.4s ease-in-out both; }
      [data-scene="select"].is-on .hsg-card:nth-child(5) .hsg-inner { animation: hsg-sel 3.4s ease-in-out both; }
      [data-scene="select"].is-on .hsg-card:not(:nth-child(5)) .hsg-inner { animation: hsg-dim 3.4s ease-in-out both; }
      @keyframes hsg-cur { 0% { left: 66%; top: 80%; opacity: 0; } 10% { opacity: 1; } 42% { left: 47%; top: 50%; opacity: 1; } 90% { left: 47%; top: 50%; opacity: 1; } 100% { left: 47%; top: 50%; opacity: 0; } }
      @keyframes hsg-sel { 0%, 36% { transform: scale(1); border-color: rgba(0,0,0,.07); box-shadow: 0 14px 26px -18px rgba(0,0,0,.55); } 47% { transform: scale(1.13); border-color: rgba(150,170,255,.95); box-shadow: 0 0 0 1.5px rgba(150,170,255,.95), 0 0 20px 2px rgba(124,150,255,.78), 0 0 44px 6px rgba(124,150,255,.4); } 90% { transform: scale(1.13); border-color: rgba(150,170,255,.95); box-shadow: 0 0 0 1.5px rgba(150,170,255,.95), 0 0 20px 2px rgba(124,150,255,.78), 0 0 44px 6px rgba(124,150,255,.4); } 100% { transform: scale(1); border-color: rgba(0,0,0,.07); box-shadow: 0 14px 26px -18px rgba(0,0,0,.55); } }
      @keyframes hsg-dim { 0%, 36% { filter: blur(0) brightness(1); } 47% { filter: blur(3px) brightness(.58); } 90% { filter: blur(3px) brightness(.58); } 100% { filter: blur(0) brightness(1); } }
      .hs-scene[data-scene="select"].is-on { transition: none; }
      .hs-scene[data-scene="grid"]:not(.is-on) { transition: none; }

      [data-scene="intro"] .hsi-glow { position: absolute; left: 50%; top: 50%; width: 82%; height: 46%; transform: translate(-50%, -50%); pointer-events: none; background: radial-gradient(42% 60% at 32% 45%, rgba(118,161,255,.5), transparent 70%), radial-gradient(40% 60% at 68% 55%, rgba(86,178,255,.42), transparent 70%), radial-gradient(38% 55% at 52% 40%, rgba(236,120,200,.35), transparent 70%); filter: blur(42px); }
      [data-scene="intro"].is-on .hsi-glow { animation: hsi-breathe 5s ease-in-out infinite; }
      @keyframes hsi-breathe { 0%, 100% { opacity: .7; } 50% { opacity: 1; } }
      [data-scene="intro"] .hsi-pill { position: absolute; padding: 5px 12px; border-radius: 999px; font-size: .66rem; font-weight: 600; color: rgba(255,255,255,.92); white-space: nowrap; filter: blur(2.5px); opacity: .5; }
      [data-scene="intro"].is-on .hsi-pill { animation: hsi-float 6s ease-in-out infinite; }
      @keyframes hsi-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
      [data-scene="intro"] .hsi-pill.p1 { top: 17%; left: 13%; background: linear-gradient(135deg,#3a73ed,#ec4899); }
      [data-scene="intro"] .hsi-pill.p2 { top: 25%; right: 11%; background: linear-gradient(135deg,#2563eb,#06b6d4); animation-delay: -1.2s; filter: blur(3.5px); }
      [data-scene="intro"] .hsi-pill.p3 { bottom: 23%; left: 17%; background: linear-gradient(135deg,#0d9488,#22c55e); animation-delay: -2.1s; filter: blur(3.5px); }
      [data-scene="intro"] .hsi-pill.p4 { bottom: 19%; right: 15%; background: linear-gradient(135deg,#ea580c,#f59e0b); animation-delay: -.6s; }
      [data-scene="intro"] .hsi-pill.p5 { top: 13%; left: 43%; background: linear-gradient(135deg,#4678e5,#5588f7); animation-delay: -3s; filter: blur(4.5px); opacity: .4; }
      [data-scene="intro"] .hsi-pill.p6 { bottom: 15%; left: 41%; background: linear-gradient(135deg,#db2777,#fb7185); animation-delay: -1.7s; filter: blur(4.5px); opacity: .4; }
      [data-scene="intro"] .hsi-text { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; text-align: center; z-index: 2; }
      [data-scene="intro"].is-on .hsi-text { animation: hsi-inout 4.2s ease-in-out both; }
      @keyframes hsi-inout { 0% { opacity: 0; transform: scale(.92); filter: blur(6px); } 16% { opacity: 1; transform: scale(1); filter: blur(0); } 80% { opacity: 1; transform: scale(1); filter: blur(0); } 100% { opacity: 0; transform: scale(1.04); filter: blur(6px); } }
      [data-scene="intro"] .hsi-h { font-size: 1.62rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.12; background: linear-gradient(100deg,#fff 0%,#b8ceff 46%,#94d6ff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 5px 22px rgba(118,161,255,.55)); }
      [data-scene="intro"] .hsi-sub { margin-top: 10px; font-size: .82rem; font-weight: 500; color: rgba(255,255,255,.62); }

      [data-scene="detail"] .hsd-wrap { position: absolute; inset: 46px 0 0 0; display: flex; align-items: center; justify-content: center; padding: 14px 24px; }
      [data-scene="detail"] .hsd-card { width: 100%; max-width: 392px; background: #fff; color: #1b1b1e; border-radius: 16px; padding: 16px; box-shadow: 0 40px 80px -40px rgba(0,0,0,.8), 0 0 0 1px rgba(0,0,0,.04), 0 0 50px -10px rgba(124,150,255,.22); }
      [data-scene="detail"].is-on .hsd-card { animation: hsd-in .55s cubic-bezier(.2,.8,.2,1) both; }
      @keyframes hsd-in { 0% { opacity: 0; transform: scale(.92); } 100% { opacity: 1; transform: scale(1); } }
      [data-scene="detail"] .hsd-head { display: flex; gap: 11px; align-items: center; padding-bottom: 11px; border-bottom: 1px solid #eee; }
      [data-scene="detail"] .hsd-thumb { flex: 0 0 auto; width: 78px; height: 50px; border-radius: 9px; display: flex; align-items: center; justify-content: center; background: radial-gradient(120% 120% at 30% 0%, rgba(124,150,255,.4), transparent 62%), linear-gradient(150deg,#34375f,#1b1d33); }
      [data-scene="detail"] .hsd-thumb svg { width: 21px; height: 21px; color: #fff; }
      [data-scene="detail"] .hsd-title { font-size: 1.02rem; font-weight: 700; color: #131316; line-height: 1.15; }
      [data-scene="detail"] .hsd-by { display: flex; align-items: center; gap: 5px; margin-top: 4px; font-size: .7rem; color: #6a6a72; }
      [data-scene="detail"] .hsd-by svg { width: 11px; height: 11px; color: #f5a623; }
      [data-scene="detail"] .hsd-sec { margin-top: 11px; }
      [data-scene="detail"] .hsd-sec h4 { font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9a9aa2; margin-bottom: 5px; }
      [data-scene="detail"] .hsd-sec p { font-size: .74rem; line-height: 1.5; color: #3a3a40; }
      [data-scene="detail"] .hsd-feat { display: flex; flex-wrap: wrap; gap: 5px; }
      [data-scene="detail"] .hsd-feat span { font-size: .64rem; color: #2c2c32; background: #f1f2f8; border-radius: 999px; padding: 3px 9px; }
      [data-scene="detail"] .hsd-pkg { margin-top: 12px; border: 1.5px solid #e6e6ea; border-radius: 12px; padding: 11px; background: #fbfbfd; display: flex; flex-direction: column; gap: 9px; transform-origin: center; }
      [data-scene="detail"].is-on .hsd-pkg { animation: hsd-pkg 6s ease-in-out both; }
      @keyframes hsd-pkg { 0%, 26% { border-color: #e6e6ea; box-shadow: 0 0 0 0 rgba(124,150,255,0); transform: scale(1); } 42% { border-color: rgba(124,150,255,.95); box-shadow: 0 0 0 1.5px rgba(124,150,255,.5), 0 14px 28px -16px rgba(124,150,255,.6); transform: scale(1.025); } 90% { border-color: rgba(124,150,255,.95); box-shadow: 0 0 0 1.5px rgba(124,150,255,.5), 0 14px 28px -16px rgba(124,150,255,.6); transform: scale(1.025); } 100% { border-color: #e6e6ea; box-shadow: 0 0 0 0 rgba(124,150,255,0); transform: scale(1); } }
      [data-scene="detail"] .hsd-tabs { display: flex; gap: 4px; padding: 3px; background: #eceef4; border-radius: 8px; }
      [data-scene="detail"] .hsd-tabs span { flex: 1; text-align: center; font-size: .62rem; font-weight: 600; padding: 5px 0; border-radius: 6px; color: #75757d; }
      [data-scene="detail"] .hsd-tabs span.on { background: #fff; color: #2a2c5a; box-shadow: 0 2px 5px -2px rgba(0,0,0,.2); }
      [data-scene="detail"] .hsd-prow { display: flex; align-items: center; }
      [data-scene="detail"] .hsd-price { font-family: var(--serif); font-weight: 600; font-size: 1.25rem; color: #131316; }
      [data-scene="detail"] .hsd-pkmeta { margin-left: auto; font-size: .62rem; color: #4a4a52; text-align: right; }
      [data-scene="detail"] .hsd-cta { padding: 8px; border-radius: 9px; background: #1a449e; color: #fff; font-size: .74rem; font-weight: 700; text-align: center; }

      [data-scene="packages"] .hsp-wrap { position: absolute; inset: 46px 0 0 0; display: flex; flex-direction: column; justify-content: center; padding: 10px 22px 18px; }
      [data-scene="packages"] .hsp-head { font-size: .86rem; font-weight: 700; color: #f4f5f7; margin: 0 2px 11px; }
      [data-scene="packages"] .hsp-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
      [data-scene="packages"] .hsp-col { position: relative; border-radius: 13px; background: #fff; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 14px 26px -18px rgba(0,0,0,.55); padding: 12px 10px; display: flex; flex-direction: column; gap: 8px; transform-origin: center bottom; }
      [data-scene="packages"] .hsp-tier { font-size: .58rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #8a8a92; }
      [data-scene="packages"] .hsp-price { font-family: var(--serif); font-weight: 600; font-size: 1.4rem; color: #131316; line-height: 1; }
      [data-scene="packages"] .hsp-blur { height: 7px; border-radius: 4px; background: #e9eaf1; }
      [data-scene="packages"] .hsp-blur.w90 { width: 90%; } [data-scene="packages"] .hsp-blur.w70 { width: 70%; } [data-scene="packages"] .hsp-blur.w55 { width: 55%; }
      [data-scene="packages"] .hsp-sel { margin-top: 3px; text-align: center; font-size: .62rem; font-weight: 700; padding: 7px; border-radius: 8px; background: #f1f2f8; color: #3a3a40; }
      [data-scene="packages"] .hsp-col.is-pick { z-index: 2; }
      [data-scene="packages"].is-on .hsp-col.is-pick { animation: hsp-pick 6s ease-in-out both; }
      @keyframes hsp-pick { 0%, 34% { transform: scale(1); border-color: rgba(0,0,0,.08); box-shadow: 0 14px 26px -18px rgba(0,0,0,.55); } 50% { transform: scale(1.05) translateY(-3px); border-color: #f5a623; box-shadow: 0 0 0 1.5px rgba(245,166,35,.6), 0 16px 30px -14px rgba(245,166,35,.6); } 90% { transform: scale(1.05) translateY(-3px); border-color: #f5a623; box-shadow: 0 0 0 1.5px rgba(245,166,35,.6), 0 16px 30px -14px rgba(245,166,35,.6); } 100% { transform: scale(1); border-color: rgba(0,0,0,.08); box-shadow: 0 14px 26px -18px rgba(0,0,0,.55); } }
      [data-scene="packages"].is-on .hsp-col.is-pick .hsp-sel { animation: hsp-selgold 6s ease-in-out both; }
      @keyframes hsp-selgold { 0%, 42% { background: #f1f2f8; color: #3a3a40; } 54%, 90% { background: linear-gradient(135deg,#f5a623,#e8920a); color: #fff; } 100% { background: #f1f2f8; color: #3a3a40; } }
      [data-scene="packages"] .hsp-cursor { position: absolute; z-index: 8; width: 22px; height: 22px; opacity: 0; pointer-events: none; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)) drop-shadow(0 0 12px rgba(245,166,35,.7)) drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
      [data-scene="packages"] .hsp-cursor svg { width: 100%; height: 100%; }
      [data-scene="packages"].is-on .hsp-cursor { animation: hsp-cur 6s ease-in-out both; }
      @keyframes hsp-cur { 0% { opacity: 0; left: 28%; top: 82%; transform: scale(1); } 14% { opacity: 1; } 46% { left: 80%; top: 60%; transform: scale(1); } 51% { transform: scale(.82); } 57% { transform: scale(1); } 88% { opacity: 1; left: 80%; top: 60%; } 100% { opacity: 0; left: 80%; top: 60%; } }

      [data-scene="buy"] .hsb-wrap { position: absolute; inset: 46px 0 0 0; display: flex; align-items: center; justify-content: center; padding: 22px; }
      [data-scene="buy"] .hsb-card { position: relative; width: 100%; max-width: 318px; background: #fff; border-radius: 15px; padding: 18px; box-shadow: 0 36px 70px -38px rgba(0,0,0,.75); text-align: center; }
      [data-scene="buy"] .hsb-tier { font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #e8920a; }
      [data-scene="buy"] .hsb-title { margin-top: 5px; font-size: .94rem; font-weight: 700; color: #18181b; }
      [data-scene="buy"] .hsb-amt { margin-top: 10px; font-family: var(--serif); font-weight: 600; font-size: 1.85rem; color: #131316; line-height: 1; }
      [data-scene="buy"] .hsb-amt small { display: block; margin-top: 4px; font-family: "Plus Jakarta Sans", sans-serif; font-size: .56rem; font-weight: 600; color: #9a9aa2; }
      [data-scene="buy"] .hsb-btn { position: relative; margin-top: 15px; padding: 13px; border-radius: 11px; background: #1a449e; color: #fff; font-size: .88rem; font-weight: 700; overflow: hidden; box-shadow: 0 10px 24px -10px rgba(26,68,158,.85); }
      [data-scene="buy"].is-on .hsb-btn { animation: hsb-press 4s ease both; }
      @keyframes hsb-press { 0%, 46% { transform: scale(1); box-shadow: 0 10px 24px -10px rgba(26,68,158,.85); } 52% { transform: scale(.94); } 60% { transform: scale(1); box-shadow: 0 0 0 4px rgba(124,150,255,.4), 0 0 30px rgba(124,150,255,.7); } 82% { box-shadow: 0 0 0 0 rgba(124,150,255,0), 0 10px 24px -10px rgba(26,68,158,.85); } 100% { transform: scale(1); } }
      [data-scene="buy"] .hsb-ripple { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; border-radius: 50%; background: rgba(255,255,255,.55); transform: translate(-50%,-50%) scale(0); }
      [data-scene="buy"].is-on .hsb-ripple { animation: hsb-rip 1.1s ease .5s both; }
      @keyframes hsb-rip { 0% { transform: translate(-50%,-50%) scale(0); opacity: .7; } 100% { transform: translate(-50%,-50%) scale(26); opacity: 0; } }
      [data-scene="buy"] .hsb-cursor { position: absolute; z-index: 8; width: 22px; height: 22px; opacity: 0; pointer-events: none; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)) drop-shadow(0 0 12px rgba(124,150,255,.7)) drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
      [data-scene="buy"] .hsb-cursor svg { width: 100%; height: 100%; }
      [data-scene="buy"].is-on .hsb-cursor { animation: hsb-cur 4s ease both; }
      @keyframes hsb-cur { 0% { opacity: 0; left: 28%; top: 86%; transform: scale(1); } 18% { opacity: 1; } 46% { left: 50%; top: 74%; transform: scale(1); } 52% { transform: scale(.82); } 58% { transform: scale(1); } 80% { opacity: 1; left: 50%; top: 74%; } 100% { opacity: 0; left: 50%; top: 74%; } }
      [data-scene="buy"] .hsb-wipe { position: absolute; inset: 0; background: #fff; opacity: 0; z-index: 9; pointer-events: none; }
      [data-scene="buy"].is-on .hsb-wipe { animation: hsb-wipe 4s ease both; }
      @keyframes hsb-wipe { 0%, 72% { opacity: 0; } 88% { opacity: .85; } 100% { opacity: .92; } }

      [data-scene="success"] .hsx-wrap { position: absolute; inset: 46px 0 0 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 15px; padding: 24px; }
      [data-scene="success"] .hsx-ring { position: relative; width: 104px; height: 104px; border-radius: 50%; background: radial-gradient(circle, rgba(34,197,94,.2), transparent 68%); display: flex; align-items: center; justify-content: center; }
      [data-scene="success"].is-on .hsx-ring { animation: hsx-pop .5s cubic-bezier(.2,1.2,.4,1) both; }
      @keyframes hsx-pop { 0% { transform: scale(.5); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
      [data-scene="success"] .hsx-check { width: 66px; height: 66px; }
      [data-scene="success"] .hsx-circ { fill: none; stroke: #22c55e; stroke-width: 2.4; stroke-dasharray: 176; stroke-dashoffset: 176; }
      [data-scene="success"].is-on .hsx-circ { animation: hsx-circ .6s ease .15s forwards; }
      @keyframes hsx-circ { to { stroke-dashoffset: 0; } }
      [data-scene="success"] .hsx-tick { fill: none; stroke: #22c55e; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; }
      [data-scene="success"].is-on .hsx-tick { animation: hsx-tick .4s ease .62s forwards; }
      @keyframes hsx-tick { to { stroke-dashoffset: 0; } }
      [data-scene="success"] .hsx-h { font-size: 1.18rem; font-weight: 800; letter-spacing: -.02em; color: #f4f5f7; text-align: center; opacity: 0; }
      [data-scene="success"].is-on .hsx-h { animation: hsx-up .5s ease .9s both; }
      [data-scene="success"] .hsx-sub { display: flex; align-items: center; gap: 6px; font-size: .76rem; font-weight: 500; color: rgba(255,255,255,.62); opacity: 0; }
      [data-scene="success"] .hsx-sub svg { width: 13px; height: 13px; color: #22c55e; }
      [data-scene="success"].is-on .hsx-sub { animation: hsx-up .5s ease 1.05s both; }
      @keyframes hsx-up { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
      [data-scene="success"] .hsx-p { position: absolute; left: 50%; top: 32%; width: 7px; height: 7px; border-radius: 50%; background: #22c55e; opacity: 0; }
      [data-scene="success"].is-on .hsx-p { animation: hsx-burst 1.1s ease .55s both; }
      @keyframes hsx-burst { 0% { opacity: 0; transform: translate(0,0) scale(.4); } 28% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(1); } }

      [data-scene="chatA"] .hsc-wrap, [data-scene="chatB"] .hsc-wrap { position: absolute; inset: 46px 0 0 0; display: flex; align-items: center; justify-content: center; padding: 14px 20px; }
      [data-scene="chatA"] .hsc-panel, [data-scene="chatB"] .hsc-panel { width: 100%; max-width: 426px; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 38px 74px -40px rgba(0,0,0,.78), 0 0 0 1px rgba(0,0,0,.04); display: flex; flex-direction: column; }
      [data-scene="chatA"].is-on .hsc-panel, [data-scene="chatB"].is-on .hsc-panel { animation: hsc-panelin .5s cubic-bezier(.2,.8,.2,1) both; }
      @keyframes hsc-panelin { from { opacity: 0; transform: scale(.95); } to { opacity: 1; transform: scale(1); } }
      [data-scene="chatA"] .hsc-head, [data-scene="chatB"] .hsc-head { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-bottom: 1px solid #eef0f6; background: #fcfcfe; }
      [data-scene="chatA"] .hsc-av, [data-scene="chatB"] .hsc-av { width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg,#60a5fa,#2563eb); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .82rem; }
      [data-scene="chatA"] .hsc-who b, [data-scene="chatB"] .hsc-who b { display: block; font-size: .82rem; font-weight: 700; color: #18181b; }
      [data-scene="chatA"] .hsc-who span, [data-scene="chatB"] .hsc-who span { display: flex; align-items: center; gap: 5px; margin-top: 2px; font-size: .62rem; color: #6a6a72; }
      [data-scene="chatA"] .hsc-dot, [data-scene="chatB"] .hsc-dot { width: 7px; height: 7px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 2px rgba(34,197,94,.2); }
      [data-scene="chatA"] .hsc-thread, [data-scene="chatB"] .hsc-thread { padding: 13px 14px; display: flex; flex-direction: column; gap: 4px; }
      [data-scene="chatA"] .hsc-them-typing,
      [data-scene="chatB"] .hsc-them1,
      [data-scene="chatB"] .hsc-b2 { margin-top: 9px; }
      [data-scene="chatA"] .hsc-row, [data-scene="chatB"] .hsc-row { display: flex; }
      [data-scene="chatA"] .hsc-row.is-me, [data-scene="chatB"] .hsc-row.is-me { justify-content: flex-end; }
      [data-scene="chatA"] .hsc-row.is-them, [data-scene="chatB"] .hsc-row.is-them { justify-content: flex-start; }
      [data-scene="chatA"] .hsc-bub, [data-scene="chatB"] .hsc-bub { max-width: 82%; padding: 9px 12px; border-radius: 14px; font-size: .72rem; line-height: 1.5; }
      [data-scene="chatA"] .hsc-row.is-me .hsc-bub, [data-scene="chatB"] .hsc-row.is-me .hsc-bub { background: #1a449e; color: #fff; border-bottom-right-radius: 5px; }
      [data-scene="chatA"] .hsc-row.is-them .hsc-bub, [data-scene="chatB"] .hsc-row.is-them .hsc-bub { background: #f1f2f8; color: #26262c; border-bottom-left-radius: 5px; }
      [data-scene="chatA"] .hsc-seen, [data-scene="chatB"] .hsc-seen { align-self: flex-end; display: flex; align-items: center; gap: 3px; font-size: .58rem; font-weight: 600; color: #16a34a; }
      [data-scene="chatA"] .hsc-seen svg, [data-scene="chatB"] .hsc-seen svg { width: 11px; height: 11px; }
      [data-scene="chatA"] .hsc-typing, [data-scene="chatB"] .hsc-typing { display: inline-flex; gap: 4px; padding: 12px 13px; background: #f1f2f8; border-radius: 14px; border-bottom-left-radius: 5px; }
      [data-scene="chatA"] .hsc-typing span, [data-scene="chatB"] .hsc-typing span { width: 6px; height: 6px; border-radius: 50%; background: #9a9aa2; }
      [data-scene="chatA"] .hsc-composer, [data-scene="chatB"] .hsc-composer { display: flex; align-items: center; gap: 9px; padding: 10px 13px; border-top: 1px solid #eef0f6; }
      [data-scene="chatA"] .hsc-cinput, [data-scene="chatB"] .hsc-cinput { flex: 1; font-size: .7rem; color: #9a9aa2; }
      [data-scene="chatA"] .hsc-send, [data-scene="chatB"] .hsc-send { width: 28px; height: 28px; border-radius: 8px; background: #1a449e; color: #fff; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
      [data-scene="chatA"] .hsc-send svg, [data-scene="chatB"] .hsc-send svg { width: 14px; height: 14px; }
      @keyframes hsc-rev { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
      @keyframes hsc-slL { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: translateX(0); } }
      @keyframes hsc-bounce { 0%, 80%, 100% { transform: translateY(0); opacity: .45; } 40% { transform: translateY(-4px); opacity: 1; } }
      /* chatA staged reveal */
      [data-scene="chatA"] .hsc-thread > * { opacity: 0; }
      [data-scene="chatA"].is-on .hsc-me1 { animation: hsc-rev .4s ease .2s both; }
      [data-scene="chatA"].is-on .hsc-seen { animation: hsc-rev .4s ease 3.7s both; }
      [data-scene="chatA"].is-on .hsc-them-typing { animation: hsc-rev .4s ease 4.7s both; }
      [data-scene="chatA"].is-on .hsc-typing span { animation: hsc-bounce 1.2s ease-in-out infinite; }
      [data-scene="chatA"] .hsc-typing span:nth-child(2) { animation-delay: .16s; }
      [data-scene="chatA"] .hsc-typing span:nth-child(3) { animation-delay: .32s; }
      /* chatB staged reveal */
      [data-scene="chatB"] .hsc-thread > * { opacity: 0; }
      [data-scene="chatB"].is-on .hsc-b1 { animation: hsc-rev .4s ease .2s both; }
      [data-scene="chatB"].is-on .hsc-seen1 { animation: hsc-rev .4s ease .5s both; }
      [data-scene="chatB"].is-on .hsc-them1 { animation: hsc-slL .5s ease 0.7s both; }
      [data-scene="chatB"].is-on .hsc-b2 { animation: hsc-rev .4s ease 2.9s both; }
      [data-scene="chatB"].is-on .hsc-seen2 { animation: hsc-rev .4s ease 4.5s both; }
      .hs-scene[data-scene="chatB"].is-on { transition: none; }
      .hs-scene[data-scene="chatA"]:not(.is-on) { transition: none; }
      [data-scene="chatB"].is-on .hsc-panel { animation: none; }
      [data-scene="chatB"] .hsc-b1, [data-scene="chatB"] .hsc-seen1 { opacity: 1; }
      [data-scene="chatB"].is-on .hsc-b1, [data-scene="chatB"].is-on .hsc-seen1 { animation: none; }

      [data-scene="delivery"] .hsd2-wrap { position: absolute; inset: 46px 0 0 0; display: flex; align-items: center; justify-content: center; padding: 24px; }
      [data-scene="delivery"] .hsd2-card { position: relative; width: 100%; max-width: 342px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 24px 22px; border-radius: 17px; background: rgba(22,24,30,.94); border: 1px solid rgba(255,255,255,.1); border-top: 3px solid #22c55e; box-shadow: 0 36px 70px -38px rgba(0,0,0,.8); }
      [data-scene="delivery"].is-on .hsd2-card { animation: hsd2-in .55s cubic-bezier(.2,.8,.2,1) both; }
      @keyframes hsd2-in { 0% { opacity: 0; transform: translateY(-18px) scale(.96); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
      [data-scene="delivery"] .hsd2-ic { width: 56px; height: 56px; border-radius: 15px; background: rgba(34,197,94,.16); display: flex; align-items: center; justify-content: center; }
      [data-scene="delivery"] .hsd2-ic svg { width: 28px; height: 28px; color: #22c55e; }
      [data-scene="delivery"].is-on .hsd2-ic { animation: hsd2-pulse 1.5s ease-in-out infinite .55s; }
      @keyframes hsd2-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,.45); } 60% { box-shadow: 0 0 0 9px rgba(34,197,94,0); } }
      [data-scene="delivery"] .hsd2-h { font-size: 1.06rem; font-weight: 800; letter-spacing: -.02em; color: #f4f5f7; }
      [data-scene="delivery"] .hsd2-sub { font-size: .74rem; color: rgba(255,255,255,.58); line-height: 1.45; }
      [data-scene="delivery"] .hsd2-btn { margin-top: 5px; padding: 9px 18px; border-radius: 9px; background: #22c55e; color: #06281a; font-size: .76rem; font-weight: 700; }
      [data-scene="delivery"] .hsd2-cursor { position: absolute; z-index: 8; width: 22px; height: 22px; opacity: 0; pointer-events: none; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)) drop-shadow(0 0 11px rgba(34,197,94,.7)) drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
      [data-scene="delivery"] .hsd2-cursor svg { width: 100%; height: 100%; }
      [data-scene="delivery"].is-on .hsd2-cursor { animation: hsd2-cur 4.5s ease both; }
      @keyframes hsd2-cur { 0% { opacity: 0; left: 26%; top: 88%; } 24% { opacity: 1; } 70% { left: 56%; top: 72%; transform: scale(1); } 78% { transform: scale(.84); } 86% { transform: scale(1); opacity: 1; left: 56%; top: 72%; } 100% { opacity: 1; left: 56%; top: 72%; } }

      [data-scene="approve"] .hsa-wrap { position: absolute; inset: 46px 0 0 0; display: flex; align-items: center; justify-content: center; padding: 18px 24px; }
      [data-scene="approve"] .hsa-card { position: relative; width: 100%; max-width: 360px; background: #fff; border-radius: 15px; padding: 17px; box-shadow: 0 38px 74px -40px rgba(0,0,0,.78); overflow: hidden; }
      [data-scene="approve"].is-on .hsa-card { animation: hsd-in .5s ease both; }
      [data-scene="approve"] .hsa-h { font-size: .92rem; font-weight: 700; color: #18181b; }
      [data-scene="approve"] .hsa-sub { margin-top: 3px; font-size: .66rem; color: #8a8a92; }
      [data-scene="approve"] .hsa-file { display: flex; align-items: center; gap: 11px; margin-top: 13px; padding: 11px; border: 1px solid #eee; border-radius: 11px; background: #fbfbfd; }
      [data-scene="approve"] .hsa-fic { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 9px; background: radial-gradient(120% 120% at 30% 0%, rgba(124,150,255,.32), transparent 60%), linear-gradient(150deg,#34375f,#1b1d33); display: flex; align-items: center; justify-content: center; }
      [data-scene="approve"] .hsa-fic svg { width: 17px; height: 17px; color: #fff; }
      [data-scene="approve"] .hsa-finfo b { display: block; font-size: .74rem; font-weight: 600; color: #18181b; }
      [data-scene="approve"] .hsa-finfo span { font-size: .62rem; color: #9a9aa2; }
      [data-scene="approve"] .hsa-actions { display: flex; gap: 9px; margin-top: 14px; }
      [data-scene="approve"] .hsa-rev { flex: 1; text-align: center; padding: 10px; border-radius: 9px; border: 1px solid #e6e6ea; font-size: .74rem; font-weight: 600; color: #3a3a40; }
      [data-scene="approve"] .hsa-app { flex: 1.3; text-align: center; padding: 10px; border-radius: 9px; background: #12774b; color: #fff; font-size: .74rem; font-weight: 700; }
      [data-scene="approve"] .hsa-cursor { position: absolute; z-index: 8; width: 22px; height: 22px; opacity: 0; pointer-events: none; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)) drop-shadow(0 0 11px rgba(34,197,94,.7)) drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
      [data-scene="approve"] .hsa-cursor svg { width: 100%; height: 100%; }
      [data-scene="approve"].is-on .hsa-cursor { animation: hsa-cur 7s ease both; }
      @keyframes hsa-cur { 0% { opacity: 0; left: 24%; top: 90%; } 16% { opacity: 1; } 36% { left: 64%; top: 74%; transform: scale(1); } 41% { transform: scale(.82); } 46% { transform: scale(1); } 52% { opacity: 1; left: 64%; top: 74%; } 60%, 100% { opacity: 0; left: 64%; top: 74%; } }
      [data-scene="approve"].is-on .hsa-app { animation: hsa-press 7s ease both; }
      @keyframes hsa-press { 0%, 41% { transform: scale(1); } 46% { transform: scale(.95); } 52% { transform: scale(1); } 100% { transform: scale(1); } }
      [data-scene="approve"] .hsa-done { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; text-align: center; padding: 22px; color: #fff; background: linear-gradient(160deg,#0f5132,#12774b); opacity: 0; overflow: hidden; }
      [data-scene="approve"].is-on .hsa-done { animation: hsa-doneIn .5s ease 3s both; }
      @keyframes hsa-doneIn { from { opacity: 0; } to { opacity: 1; } }
      [data-scene="approve"] .hsa-done .ring { width: 60px; height: 60px; border-radius: 50%; background: rgba(255,255,255,.16); display: flex; align-items: center; justify-content: center; }
      [data-scene="approve"] .hsa-done .ring svg { width: 34px; height: 34px; }
      [data-scene="approve"] .hsa-dcirc { fill: none; stroke: #fff; stroke-width: 2.4; stroke-dasharray: 176; stroke-dashoffset: 176; }
      [data-scene="approve"].is-on .hsa-dcirc { animation: hsx-circ .55s ease 3.25s forwards; }
      [data-scene="approve"] .hsa-dtick { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; }
      [data-scene="approve"].is-on .hsa-dtick { animation: hsx-tick .4s ease 3.7s forwards; }
      [data-scene="approve"] .hsa-done b { font-size: 1.08rem; font-weight: 800; letter-spacing: -.02em; }
      [data-scene="approve"] .hsa-done span { font-size: .76rem; font-weight: 500; opacity: .9; }
      [data-scene="approve"] .hsa-sweep { position: absolute; top: 0; left: -60%; width: 50%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.22), transparent); transform: skewX(-18deg); }
      [data-scene="approve"].is-on .hsa-sweep { animation: hsa-sweep 1.1s ease 3.9s both; }
      @keyframes hsa-sweep { 0% { left: -60%; } 100% { left: 130%; } }

      [data-scene="rating"] .hsr-wrap { position: absolute; inset: 46px 0 0 0; display: flex; align-items: center; justify-content: center; padding: 24px; }
      [data-scene="rating"] .hsr-card { position: relative; width: 100%; max-width: 338px; background: #fff; border-radius: 16px; padding: 22px 22px 24px; box-shadow: 0 38px 74px -40px rgba(0,0,0,.78); display: flex; flex-direction: column; align-items: center; gap: 11px; text-align: center; }
      [data-scene="rating"].is-on .hsr-card { animation: hsd-in .5s ease both; }
      [data-scene="rating"] .hsr-av { width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg,#7c96ff,#4678e5); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.1rem; }
      [data-scene="rating"] .hsr-h { font-size: .98rem; font-weight: 800; letter-spacing: -.02em; color: #18181b; }
      [data-scene="rating"] .hsr-sub { font-size: .72rem; color: #8a8a92; margin-top: -6px; }
      [data-scene="rating"] .hsr-stars { display: flex; gap: 8px; margin-top: 2px; }
      [data-scene="rating"] .hsr-star { width: 31px; height: 31px; color: #e4e5ec; transform-origin: center; }
      [data-scene="rating"] .hsr-star svg { width: 100%; height: 100%; }
      [data-scene="rating"].is-on .hsr-star { animation: hsr-fill .55s cubic-bezier(.2,1.3,.4,1) both; }
      [data-scene="rating"].is-on .hsr-star:nth-child(1) { animation-delay: .55s; }
      [data-scene="rating"].is-on .hsr-star:nth-child(2) { animation-delay: .9s; }
      [data-scene="rating"].is-on .hsr-star:nth-child(3) { animation-delay: 1.25s; }
      [data-scene="rating"].is-on .hsr-star:nth-child(4) { animation-delay: 1.6s; }
      [data-scene="rating"].is-on .hsr-star:nth-child(5) { animation-delay: 1.95s; }
      @keyframes hsr-fill { 0% { color: #e4e5ec; transform: scale(1) rotate(0); } 50% { color: #f5a623; transform: scale(1.4) rotate(8deg); filter: drop-shadow(0 4px 10px rgba(245,166,35,.6)); } 100% { color: #f5a623; transform: scale(1) rotate(0); } }
      [data-scene="rating"] .hsr-score { font-family: var(--serif); font-weight: 600; font-size: 1.3rem; color: #f5a623; opacity: 0; }
      [data-scene="rating"].is-on .hsr-score { animation: hsr-rev .5s ease 2.5s both; }
      @keyframes hsr-rev { from { opacity: 0; transform: translateY(8px) scale(.9); } to { opacity: 1; transform: translateY(0) scale(1); } }
      [data-scene="rating"] .hsr-cursor { position: absolute; z-index: 8; width: 22px; height: 22px; opacity: 0; pointer-events: none; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)) drop-shadow(0 0 11px rgba(245,166,35,.75)) drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
      [data-scene="rating"] .hsr-cursor svg { width: 100%; height: 100%; }
      [data-scene="rating"].is-on .hsr-cursor { animation: hsr-cur 5s ease both; }
      @keyframes hsr-cur { 0% { opacity: 0; left: 32%; top: 70%; } 12% { opacity: 1; } 22% { left: 38%; top: 56%; } 40% { left: 47%; top: 56%; } 58% { left: 56%; top: 56%; } 76% { left: 65%; top: 56%; } 88% { opacity: 1; left: 65%; top: 56%; } 100% { opacity: 0; left: 65%; top: 56%; } }

      [data-scene="tip"] .hst-wrap { position: absolute; inset: 46px 0 0 0; display: flex; align-items: center; justify-content: center; padding: 24px; }
      [data-scene="tip"] .hst-card { position: relative; width: 100%; max-width: 330px; background: #fff; border-radius: 16px; padding: 22px; box-shadow: 0 38px 74px -40px rgba(0,0,0,.78); text-align: center; overflow: hidden; }
      [data-scene="tip"].is-on .hst-card { animation: hsd-in .5s ease both; }
      [data-scene="tip"] .hst-h { font-size: .96rem; font-weight: 800; letter-spacing: -.02em; color: #18181b; }
      [data-scene="tip"] .hst-sub { margin-top: 4px; font-size: .72rem; color: #8a8a92; }
      [data-scene="tip"] .hst-field { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 16px; padding: 12px 14px; border: 1.5px solid #e6e6ea; border-radius: 12px; background: #fbfbfd; }
      [data-scene="tip"] .hst-cur, [data-scene="tip"] .hst-amt { font-family: var(--serif); font-weight: 600; font-size: 1.5rem; color: #131316; }
      [data-scene="tip"] .hst-caret { width: 2px; height: 22px; border-radius: 2px; background: #131316; }
      [data-scene="tip"].is-on .hst-caret { animation: hss-blink 1s steps(1) infinite; }
      [data-scene="tip"] .hst-btn { margin-top: 14px; padding: 12px; border-radius: 10px; background: #1a449e; color: #fff; font-weight: 700; font-size: .82rem; }
      [data-scene="tip"] .hst-cursor { position: absolute; z-index: 8; width: 22px; height: 22px; opacity: 0; pointer-events: none; filter: drop-shadow(0 0 4px rgba(255,255,255,.9)) drop-shadow(0 0 11px rgba(124,150,255,.7)) drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
      [data-scene="tip"] .hst-cursor svg { width: 100%; height: 100%; }
      [data-scene="tip"].is-on .hst-cursor { animation: hst-cur 5500ms ease both; }
      @keyframes hst-cur { 0% { opacity: 0; left: 28%; top: 88%; } 18% { opacity: 1; } 38% { left: 50%; top: 78%; transform: scale(1); } 43% { transform: scale(.84); } 48% { transform: scale(1); } 56%, 100% { opacity: 0; left: 50%; top: 78%; } }
      [data-scene="tip"] .hst-done { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: #fff; opacity: 0; }
      [data-scene="tip"].is-on .hst-done { animation: hsa-doneIn .45s ease 2.4s both; }
      [data-scene="tip"] .hst-done .ring { width: 58px; height: 58px; border-radius: 50%; background: rgba(34,197,94,.16); display: flex; align-items: center; justify-content: center; }
      [data-scene="tip"] .hst-done .ring svg { width: 32px; height: 32px; }
      [data-scene="tip"] .hst-dcirc { fill: none; stroke: #22c55e; stroke-width: 2.4; stroke-dasharray: 176; stroke-dashoffset: 176; }
      [data-scene="tip"].is-on .hst-dcirc { animation: hsx-circ .55s ease 2.65s forwards; }
      [data-scene="tip"] .hst-dtick { fill: none; stroke: #22c55e; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; }
      [data-scene="tip"].is-on .hst-dtick { animation: hsx-tick .4s ease 3.1s forwards; }
      [data-scene="tip"] .hst-done b { font-size: 1.05rem; font-weight: 800; letter-spacing: -.02em; color: #18181b; }
      [data-scene="tip"] .hst-done span { font-size: .76rem; font-weight: 500; color: #6a6a72; }
      [data-scene="tip"] .hst-coin { position: absolute; left: 50%; top: 56%; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#f7c948,#e8920a); border: 1px solid rgba(255,255,255,.5); display: flex; align-items: center; justify-content: center; font-size: .6rem; font-weight: 800; color: #6b3d04; opacity: 0; z-index: 2; }
      [data-scene="tip"].is-on .hst-coin { animation: hst-coin 1.5s ease 2.45s both; }
      @keyframes hst-coin { 0% { opacity: 0; transform: translate(0,0) scale(.5); } 25% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--cx), var(--cy)) scale(1); } }

      [data-scene="escrow"] .hse-wrap { position: absolute; inset: 46px 0 0 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px; gap: 4px; }
      [data-scene="escrow"] .hse-h { font-size: 1rem; font-weight: 800; letter-spacing: -.02em; color: #f4f5f7; text-align: center; margin-bottom: 20px; }
      [data-scene="escrow"] .hse-flow { display: flex; align-items: flex-start; justify-content: center; }
      [data-scene="escrow"] .hse-node { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 84px; }
      [data-scene="escrow"] .hse-ic { width: 54px; height: 54px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); transition: none; }
      [data-scene="escrow"] .hse-ic svg { width: 24px; height: 24px; color: #cfd3e6; }
      [data-scene="escrow"] .hse-node b { font-size: .68rem; font-weight: 700; color: #f4f5f7; }
      [data-scene="escrow"] .hse-esc .hse-ic { width: 64px; height: 64px; }
      [data-scene="escrow"] .hse-esc { margin: 0 -4px; }
      [data-scene="escrow"] .hse-line { width: 44px; height: 3px; border-radius: 3px; margin-top: 26px; background: rgba(255,255,255,.14); position: relative; overflow: hidden; }
      [data-scene="escrow"] .hse-line::after { content: ''; position: absolute; top: 0; left: 0; height: 100%; width: 45%; transform: translateX(-130%); }
      [data-scene="escrow"] .hse-line.l::after { background: linear-gradient(90deg, transparent, #7c96ff, transparent); }
      [data-scene="escrow"] .hse-line.r::after { background: linear-gradient(90deg, transparent, #22c55e, transparent); }
      [data-scene="escrow"].is-on .hse-line.l::after { animation: hse-sweepL 9.6s ease both; }
      @keyframes hse-sweepL { 0%, 6% { transform: translateX(-130%); } 22% { transform: translateX(260%); } 100% { transform: translateX(260%); } }
      [data-scene="escrow"].is-on .hse-line.r::after { animation: hse-sweepR 9.6s ease both; }
      @keyframes hse-sweepR { 0%, 76% { transform: translateX(-130%); } 94% { transform: translateX(260%); } 100% { transform: translateX(260%); } }
      [data-scene="escrow"].is-on .hse-esc .hse-ic { animation: hse-core 9.6s ease both; }
      @keyframes hse-core { 0%, 8% { box-shadow: 0 0 0 0 rgba(124,150,255,0); border-color: rgba(255,255,255,.12); } 20% { box-shadow: 0 0 26px -2px rgba(124,150,255,.85); border-color: rgba(124,150,255,.85); } 44% { box-shadow: 0 0 26px -2px rgba(245,166,35,.85); border-color: rgba(245,166,35,.9); } 68% { box-shadow: 0 0 26px -2px rgba(34,197,94,.85); border-color: rgba(34,197,94,.9); } 92%, 100% { box-shadow: 0 0 28px -2px rgba(34,197,94,.95); border-color: rgba(34,197,94,.95); } }
      [data-scene="escrow"].is-on .hse-buyer .hse-ic { animation: hse-buyer 9.6s ease both; }
      @keyframes hse-buyer { 0%, 3% { box-shadow: none; border-color: rgba(255,255,255,.12); } 16% { box-shadow: 0 0 18px -3px rgba(124,150,255,.7); border-color: rgba(124,150,255,.75); } 34%, 100% { box-shadow: none; border-color: rgba(255,255,255,.12); } }
      [data-scene="escrow"].is-on .hse-seller .hse-ic { animation: hse-seller 9.6s ease both; }
      @keyframes hse-seller { 0%, 78% { box-shadow: none; border-color: rgba(255,255,255,.12); } 92%, 100% { box-shadow: 0 0 20px -2px rgba(34,197,94,.75); border-color: rgba(34,197,94,.8); } }
      [data-scene="escrow"] .hse-esc .hse-ic { position: relative; }
      [data-scene="escrow"] .hse-esc .hse-ic::before { content: ''; position: absolute; inset: -7px; border-radius: 20px; border: 2px solid rgba(245, 166, 35, .65); opacity: 0; pointer-events: none; }
      [data-scene="escrow"].is-on .hse-esc .hse-ic::before { animation: hse-held 9.6s ease both; }
      @keyframes hse-held { 0%, 26% { opacity: 0; transform: scale(.82); } 33% { opacity: .85; transform: scale(1); } 41% { opacity: 0; transform: scale(1.32); } 47% { opacity: .85; transform: scale(1); } 55% { opacity: 0; transform: scale(1.32); } 62%, 100% { opacity: 0; transform: scale(1); } }
      [data-scene="escrow"] .hse-caps { position: relative; width: 100%; height: 46px; margin-top: 24px; }
      [data-scene="escrow"] .hse-cap { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; gap: 3px; opacity: 0; text-align: center; }
      [data-scene="escrow"] .hse-cap b { font-size: .9rem; font-weight: 800; letter-spacing: -.01em; }
      [data-scene="escrow"] .hse-cap span { font-size: .7rem; color: rgba(255,255,255,.58); }
      [data-scene="escrow"] .hse-cap1 b { color: #9db0ff; } [data-scene="escrow"] .hse-cap2 b { color: #f5a623; } [data-scene="escrow"] .hse-cap3 b { color: #34d07f; } [data-scene="escrow"] .hse-cap4 b { color: #34d07f; }
      @keyframes hse-cap { 0% { opacity: 0; transform: translateY(7px); } 16% { opacity: 1; transform: translateY(0); } 84% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-4px); } }
      [data-scene="escrow"].is-on .hse-cap1 { animation: hse-cap 2.4s ease .25s both; }
      [data-scene="escrow"].is-on .hse-cap2 { animation: hse-cap 2.4s ease 2.64s both; }
      [data-scene="escrow"].is-on .hse-cap3 { animation: hse-cap 2.4s ease 5.04s both; }
      [data-scene="escrow"].is-on .hse-cap4 { animation: hse-cap 2.4s ease 7.44s both; }

      [data-scene="benefits"] .hsb2-wrap { position: absolute; inset: 46px 0 0 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 22px 24px; }
      [data-scene="benefits"] .hsb2-h { font-size: 1.04rem; font-weight: 800; letter-spacing: -.02em; color: #f4f5f7; text-align: center; margin-bottom: 17px; }
      [data-scene="benefits"] .hsb2-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px; width: 100%; max-width: 404px; }
      [data-scene="benefits"] .hsb2-chip { display: flex; align-items: center; gap: 11px; padding: 12px 13px; border-radius: 13px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); }
      [data-scene="benefits"] .hsb2-cic { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; }
      [data-scene="benefits"] .hsb2-cic svg { width: 18px; height: 18px; }
      [data-scene="benefits"] .hsb2-chip b { font-size: .76rem; font-weight: 700; color: #f4f5f7; line-height: 1.2; }
      [data-scene="benefits"] .c1 .hsb2-cic { background: rgba(124,150,255,.16); } [data-scene="benefits"] .c1 .hsb2-cic svg { color: #9db0ff; }
      [data-scene="benefits"] .c2 .hsb2-cic { background: rgba(34,197,94,.16); } [data-scene="benefits"] .c2 .hsb2-cic svg { color: #34d07f; }
      [data-scene="benefits"] .c3 .hsb2-cic { background: rgba(20,184,166,.16); } [data-scene="benefits"] .c3 .hsb2-cic svg { color: #5eead4; }
      [data-scene="benefits"] .c4 .hsb2-cic { background: rgba(245,166,35,.16); } [data-scene="benefits"] .c4 .hsb2-cic svg { color: #f5b850; }
      [data-scene="benefits"] .c5 .hsb2-cic { background: rgba(6,182,212,.16); } [data-scene="benefits"] .c5 .hsb2-cic svg { color: #4dd2e6; }
      [data-scene="benefits"] .c6 .hsb2-cic { background: rgba(236,72,153,.16); } [data-scene="benefits"] .c6 .hsb2-cic svg { color: #f578b0; }
      [data-scene="benefits"].is-on .hsb2-chip { animation: hsb2-in .5s cubic-bezier(.2,1.1,.4,1) both; }
      @keyframes hsb2-in { 0% { opacity: 0; transform: translateY(14px) scale(.94); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
      [data-scene="benefits"].is-on .hsb2-chip:nth-child(1) { animation-delay: .3s; }
      [data-scene="benefits"].is-on .hsb2-chip:nth-child(2) { animation-delay: .55s; }
      [data-scene="benefits"].is-on .hsb2-chip:nth-child(3) { animation-delay: .8s; }
      [data-scene="benefits"].is-on .hsb2-chip:nth-child(4) { animation-delay: 1.05s; }
      [data-scene="benefits"].is-on .hsb2-chip:nth-child(5) { animation-delay: 1.3s; }
      [data-scene="benefits"].is-on .hsb2-chip:nth-child(6) { animation-delay: 1.55s; }
      [data-scene="benefits"].is-on .hsb2-cic { animation: hsb2-glow 2.4s ease-in-out infinite 1.8s; }
      @keyframes hsb2-glow { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }


      [data-scene="logo"] .hsl-wrap { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; background: #05060a; overflow: hidden; }
      [data-scene="logo"] .hsl-aura { position: absolute; left: 50%; top: 43%; width: 360px; max-width: 86%; height: 210px; transform: translate(-50%,-50%); background: radial-gradient(closest-side, rgba(150,172,255,.4), transparent 72%); filter: blur(22px); opacity: 0; }
      [data-scene="logo"].is-on .hsl-aura { animation: hsl-aura 8s ease both; }
      @keyframes hsl-aura { 0% { opacity: 0; } 22% { opacity: 1; } 100% { opacity: .88; } }
      [data-scene="logo"] .hsl-halo { position: absolute; left: 50%; top: 43%; width: 320px; height: 320px; transform: translate(-50%,-50%); border-radius: 50%; opacity: 0; z-index: 1; background: conic-gradient(from 0deg, transparent 0deg, rgba(124,150,255,.55) 40deg, transparent 110deg, transparent 180deg, rgba(118,161,255,.5) 220deg, transparent 290deg); filter: blur(16px); }
      [data-scene="logo"].is-on .hsl-halo { animation: hsl-haloIn 1.1s ease .35s both, hsl-haloSpin 10s linear .35s infinite; }
      @keyframes hsl-haloIn { from { opacity: 0; } to { opacity: .85; } }
      @keyframes hsl-haloSpin { from { transform: translate(-50%,-50%) rotate(0); } to { transform: translate(-50%,-50%) rotate(360deg); } }
      [data-scene="logo"] .hsl-shock { position: absolute; left: 50%; top: 43%; width: 130px; height: 130px; margin: -65px; border-radius: 50%; border: 2px solid rgba(185,205,255,.85); opacity: 0; z-index: 1; }
      [data-scene="logo"].is-on .hsl-shock { animation: hsl-shock 1.2s ease-out .25s both; }
      @keyframes hsl-shock { 0% { opacity: .9; transform: scale(.3); } 100% { opacity: 0; transform: scale(3.6); } }
      [data-scene="logo"] .hsl-logo { position: relative; width: 304px; max-width: 66%; height: auto; opacity: 0; z-index: 2; filter: drop-shadow(0 8px 30px rgba(124,150,255,.5)); }
      [data-scene="logo"].is-on .hsl-logo { animation: hsl-logo 8s cubic-bezier(.2,.8,.2,1) both; }
      @keyframes hsl-logo { 0% { opacity: 0; transform: scale(.5); filter: blur(11px) drop-shadow(0 8px 30px rgba(124,150,255,.5)); } 16% { opacity: 1; transform: scale(1.07); filter: blur(0) drop-shadow(0 10px 36px rgba(124,150,255,.65)); } 26% { transform: scale(1); } 100% { opacity: 1; transform: scale(1); } }
      [data-scene="logo"] .hsl-shine { position: absolute; left: 50%; top: 43%; width: 304px; max-width: 66%; height: 84px; transform: translate(-50%,-50%); overflow: hidden; z-index: 3; pointer-events: none; }
      [data-scene="logo"] .hsl-shine::after { content: ''; position: absolute; top: 0; left: -60%; width: 42%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform: skewX(-18deg); }
      [data-scene="logo"].is-on .hsl-shine::after { animation: hsl-shine 1.2s ease 3.4s both; }
      @keyframes hsl-shine { 0% { left: -60%; } 100% { left: 165%; } }
      [data-scene="logo"] .hsl-orbit { position: absolute; left: 50%; top: 43%; width: 6px; height: 6px; margin: -3px; border-radius: 50%; background: #cfe0ff; box-shadow: 0 0 9px rgba(124,150,255,.95); opacity: 0; z-index: 2; }
      [data-scene="logo"].is-on .hsl-orbit { animation: hsl-orbFade 1s ease 1.1s forwards, hsl-orb 7s linear 1.1s infinite; }
      @keyframes hsl-orbFade { to { opacity: 1; } }
      @keyframes hsl-orb { from { transform: rotate(0) translateX(168px) rotate(0); } to { transform: rotate(360deg) translateX(168px) rotate(-360deg); } }
      [data-scene="logo"] .hsl-orbit.o2 { animation-delay: -2.3s, -2.3s; }
      [data-scene="logo"] .hsl-orbit.o3 { animation-delay: -4.6s, -4.6s; }
      [data-scene="logo"] .hsl-tag { font-size: .98rem; font-weight: 700; letter-spacing: .015em; color: rgba(255,255,255,.85); opacity: 0; z-index: 2; text-align: center; }
      [data-scene="logo"] .hsl-tag b { font-weight: 800; background: linear-gradient(100deg, #fff, #bcd0ff 50%, #94d6ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
      [data-scene="logo"].is-on .hsl-tag { animation: hsl-tag .8s ease 1.7s both; }
      @keyframes hsl-tag { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
      @media (prefers-reduced-motion: reduce) {
        [data-scene="logo"] .hsl-logo, [data-scene="logo"] .hsl-tag, [data-scene="logo"] .hsl-aura { opacity: 1 !important; transform: translate(-50%,-50%) !important; filter: none !important; animation: none !important; }
        [data-scene="logo"] .hsl-logo { transform: none !important; }
        [data-scene="logo"] .hsl-orbit { animation: none !important; opacity: 0 !important; }
      }

      [data-scene="textcard"] .hst2-wrap { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 34px; background: #05060a; overflow: hidden; }
      [data-scene="textcard"] .hst2-glow { position: absolute; left: 50%; top: 50%; width: 80%; height: 42%; transform: translate(-50%,-50%); background: radial-gradient(46% 60% at 38% 45%, rgba(118,161,255,.42), transparent 70%), radial-gradient(44% 60% at 64% 55%, rgba(86,178,255,.34), transparent 70%); filter: blur(48px); opacity: 0; }
      [data-scene="textcard"].is-on .hst2-glow { animation: hst2-glow 4s ease both; }
      @keyframes hst2-glow { 0% { opacity: 0; } 26% { opacity: .95; } 78% { opacity: .95; } 100% { opacity: 0; } }
      [data-scene="textcard"] .hst2-text { position: relative; z-index: 2; }
      [data-scene="textcard"].is-on .hst2-text { animation: hst2-inout 4s ease both; }
      @keyframes hst2-inout { 0% { opacity: 0; transform: scale(.94); filter: blur(6px); } 17% { opacity: 1; transform: scale(1); filter: blur(0); } 80% { opacity: 1; transform: scale(1); filter: blur(0); } 100% { opacity: 0; transform: scale(1.03); filter: blur(6px); } }
      [data-scene="textcard"] .hst2-h { font-size: 1.72rem; font-weight: 800; letter-spacing: -.025em; line-height: 1.16; color: #f4f5f7; }
      [data-scene="textcard"] .hst2-em { background: linear-gradient(100deg, #fff 0%, #b8ceff 46%, #94d6ff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 5px 22px rgba(118,161,255,.6)); }
      [data-scene="textcard"] .hst2-sub { margin: 13px auto 0; max-width: 344px; font-size: .86rem; font-weight: 500; color: rgba(255,255,255,.6); line-height: 1.5; }

      [data-scene="buy"] .hsb-cursor, [data-scene="delivery"] .hsd2-cursor, [data-scene="approve"] .hsa-cursor, [data-scene="rating"] .hsr-cursor, [data-scene="tip"] .hst-cursor { display: none !important; }
      [data-scene="delivery"].is-on .hsd2-btn { animation: hs-press-green 4.5s ease both; }
      @keyframes hs-press-green { 0%, 58% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34,197,94,0); } 66% { transform: scale(.92); box-shadow: 0 0 0 5px rgba(34,197,94,.35), 0 0 22px rgba(34,197,94,.65); } 76% { transform: scale(1.03); } 84% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34,197,94,0); } 100% { transform: scale(1); } }
      [data-scene="approve"].is-on .hsa-app { animation: hs-press-green2 7s ease both; }
      @keyframes hs-press-green2 { 0%, 33% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34,197,94,0); } 39% { transform: scale(.92); box-shadow: 0 0 0 5px rgba(34,197,94,.4), 0 0 22px rgba(34,197,94,.7); } 46% { transform: scale(1.03); } 54% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34,197,94,0); } 100% { transform: scale(1); } }
      [data-scene="tip"].is-on .hst-btn { animation: hs-press-purple 5500ms ease both; }
      @keyframes hs-press-purple { 0%, 30% { transform: scale(1); box-shadow: 0 0 0 0 rgba(124,150,255,0); } 38% { transform: scale(.92); box-shadow: 0 0 0 5px rgba(124,150,255,.4), 0 0 24px rgba(124,150,255,.7); } 45% { transform: scale(1.03); } 53% { transform: scale(1); box-shadow: 0 0 0 0 rgba(124,150,255,0); } 100% { transform: scale(1); } }

.fp-ed .fp-2fa-field { gap: 8px; }
.fp-ed .fp-2fa-code { letter-spacing: 0.42em; font-size: 1.35rem; font-weight: 600; text-align: center; font-variant-numeric: tabular-nums; }
.fp-ed .fp-2fa-code::placeholder { letter-spacing: normal; font-weight: 400; }
.fp-ed .fp-2fa-hint { color: var(--muted); font-size: 0.82rem; line-height: 1.5; }
.fp-ed .fp-2fa-card { border: 1px solid var(--line); border-radius: 16px; padding: 22px; background: var(--paper); }
.fp-ed .fp-2fa-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.fp-ed .fp-2fa-state { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 0.92rem; }
.fp-ed .fp-2fa-dot { width: 9px; height: 9px; border-radius: 50%; background: #c9ccd2; }
.fp-ed .fp-2fa-card.is-on .fp-2fa-dot { background: #18a957; }
.fp-ed .fp-2fa-qr { display: inline-flex; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.fp-ed .fp-2fa-qr canvas, .fp-ed .fp-2fa-qr img { display: block; width: 168px; height: 168px; }
.fp-ed .fp-2fa-key { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: 0.92rem; letter-spacing: 0.06em; word-break: break-all; background: var(--band); border-radius: 8px; padding: 8px 12px; }
.fp-ed .fp-2fa-codes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 18px; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: 0.95rem; margin: 12px 0; }
.fp-ed .fp-2fa-codes li { list-style: none; padding: 6px 10px; background: var(--band); border-radius: 7px; letter-spacing: 0.04em; }


body.fp-ed:not(.fp-guide) .ed-card:not(.ed-tpro-tile),
body.fp-ed:not(.fp-guide) .ed-cat,
body.fp-ed:not(.fp-guide) .ed-job-card {
  box-shadow:
    0 1px 1px rgba(20,24,33,0.05),
    0 5px 10px -6px rgba(20,24,33,0.10),
    0 20px 40px -24px rgba(20,24,33,0.26);
}
body.fp-ed:not(.fp-guide) .ed-card:not(.ed-tpro-tile):hover,
body.fp-ed:not(.fp-guide) .ed-cat:hover,
body.fp-ed:not(.fp-guide) .ed-job-card:hover {
  box-shadow:
    0 2px 4px rgba(20,24,33,0.07),
    0 12px 22px -10px rgba(20,24,33,0.16),
    0 34px 64px -26px rgba(20,24,33,0.36);
}
/* talent pro card (inner 206×172 tiles excluded → stay flat & exact) */
body.fp-ed:not(.fp-guide) .ed-tpro {
  box-shadow:
    0 1px 1px rgba(20,24,33,0.05),
    0 6px 12px -6px rgba(20,24,33,0.10),
    0 24px 46px -26px rgba(20,24,33,0.26);
}
body.fp-ed:not(.fp-guide) .ed-tpro:hover {
  box-shadow:
    0 2px 4px rgba(20,24,33,0.07),
    0 14px 26px -10px rgba(20,24,33,0.16),
    0 36px 66px -28px rgba(20,24,33,0.34);
}
/* review cards */
body.fp-ed:not(.fp-guide) .ed-review {
  box-shadow:
    0 1px 1px rgba(20,24,33,0.04),
    0 4px 9px -6px rgba(20,24,33,0.09),
    0 18px 36px -26px rgba(20,24,33,0.22);
}
body.fp-ed:not(.fp-guide) .ed-review:hover {
  box-shadow:
    0 2px 4px rgba(20,24,33,0.06),
    0 12px 22px -10px rgba(20,24,33,0.14),
    0 30px 54px -28px rgba(20,24,33,0.32);
}

body.fp-ed:not(.fp-guide) .ed-panel,
body.fp-ed:not(.fp-guide) .ed-profile-stat,
body.fp-ed:not(.fp-guide) .ed-metric,
body.fp-ed:not(.fp-guide) .ed-wsx,
body.fp-ed:not(.fp-guide) .ed-wsx-metric,
body.fp-ed:not(.fp-guide) .ed-quick,
body.fp-ed:not(.fp-guide) .ed-rc-card,
body.fp-ed:not(.fp-guide) .messages-conversation-card {
  box-shadow:
    0 1px 1px rgba(20,24,33,0.04),
    0 4px 10px -6px rgba(20,24,33,0.08),
    0 16px 34px -26px rgba(20,24,33,0.20);
}
body.fp-ed:not(.fp-guide) .ed-pkg {
  box-shadow:
    0 1px 1px rgba(20,24,33,0.05),
    0 8px 18px -8px rgba(20,24,33,0.12),
    0 32px 60px -34px rgba(20,24,33,0.34);
}

body.fp-ed:not(.fp-guide) .ed-panel,
body.fp-ed:not(.fp-guide) .ed-metric,
body.fp-ed:not(.fp-guide) .ed-quick,
body.fp-ed:not(.fp-guide) .ed-rc-card,
body.fp-ed:not(.fp-guide) .ed-profile-stat {
  background-image: linear-gradient(180deg, rgba(255,255,255,0.45) 0%, rgba(255,255,255,0) 38%, rgba(20,24,33,0.022) 100%);
}

body.fp-ed:not(.fp-guide) .site-header {
  border-bottom-color: rgba(20,24,33,0.08);
  box-shadow: 0 1px 0 rgba(20,24,33,0.04), 0 12px 30px -24px rgba(20,24,33,0.30);
}

body.fp-ed:not(.fp-guide) .ed-field input:not([type="checkbox"]):not([type="radio"]),
body.fp-ed:not(.fp-guide) .ed-field select,
body.fp-ed:not(.fp-guide) .ed-field textarea,
body.fp-ed:not(.fp-guide) .ed-auth-form input:not([type="checkbox"]):not([type="radio"]),
body.fp-ed:not(.fp-guide) .ed-auth-form select,
body.fp-ed:not(.fp-guide) .ed-auth-form textarea {
  box-shadow: inset 0 1px 2px rgba(20,24,33,0.05);
}
body.fp-ed:not(.fp-guide) .ed-field input:not([type="checkbox"]):not([type="radio"]):focus,
body.fp-ed:not(.fp-guide) .ed-field select:focus,
body.fp-ed:not(.fp-guide) .ed-field textarea:focus,
body.fp-ed:not(.fp-guide) .ed-auth-form input:not([type="checkbox"]):not([type="radio"]):focus,
body.fp-ed:not(.fp-guide) .ed-auth-form select:focus,
body.fp-ed:not(.fp-guide) .ed-auth-form textarea:focus {
  box-shadow: 0 0 0 3px rgba(11,11,12,0.07), inset 0 1px 2px rgba(20,24,33,0.04);
}

body.fp-ed:not(.fp-guide) .ed-btn-line {
  box-shadow: 0 1px 1px rgba(20,24,33,0.04), 0 6px 14px -10px rgba(20,24,33,0.18);
}
body.fp-ed:not(.fp-guide) .ed-btn-line:hover {
  box-shadow: 0 2px 3px rgba(20,24,33,0.06), 0 10px 20px -10px rgba(20,24,33,0.24);
}


body.fp-ed:not(.fp-guide) {
  --brand: #1d4ed8;            /* locked purple accent */
  --brand-2: #3b82f6;
  --ink-band: #0e1016;         /* signature premium dark surface */
  --ink-band-2: #161922;       /* softer dark (cards on dark) */
  --paper: #ffffff;
  --band: #f5f6f8;             /* cool premium alt band */
  --line: #e7e9ee;
  --line-2: #d8dbe3;
}

body.fp-ed:not(.fp-guide) .ed-h1,
body.fp-ed:not(.fp-guide) .ed-h2 { letter-spacing: -0.038em; }
body.fp-ed:not(.fp-guide) .ed-kicker { color: var(--brand); }

body.fp-ed:not(.fp-guide) .ed-card:not(.ed-tpro-tile),
body.fp-ed:not(.fp-guide) .ed-tpro,
body.fp-ed:not(.fp-guide) .ed-panel,
body.fp-ed:not(.fp-guide) .ed-metric,
body.fp-ed:not(.fp-guide) .ed-wsx,
body.fp-ed:not(.fp-guide) .ed-wsx-metric,
body.fp-ed:not(.fp-guide) .ed-quick,
body.fp-ed:not(.fp-guide) .ed-rc-card,
body.fp-ed:not(.fp-guide) .ed-review,
body.fp-ed:not(.fp-guide) .ed-job-card,
body.fp-ed:not(.fp-guide) .ed-pkg { border-color: var(--line); }


body.fp-ed:not(.fp-guide) .ed-footer {
  background: var(--ink-band);
  border-top: 0;
  color: #aab0bd;
  position: relative;
}
body.fp-ed:not(.fp-guide) .ed-footer::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--brand) 55%, transparent), transparent);
}
body.fp-ed:not(.fp-guide) .ed-footer .ed-brand-img { filter: brightness(0) invert(1); opacity: 0.95; }
body.fp-ed:not(.fp-guide) .ed-footer-brand p { color: #9398a6; }
body.fp-ed:not(.fp-guide) .ed-footer-col h4 { color: #6e7585; }
body.fp-ed:not(.fp-guide) .ed-footer-col a,
body.fp-ed:not(.fp-guide) .ed-footer-bottom,
body.fp-ed:not(.fp-guide) .ed-footer-bottom a,
body.fp-ed:not(.fp-guide) .ed-footer-bottom p { color: #aab0bd; }
body.fp-ed:not(.fp-guide) .ed-footer-col a:hover,
body.fp-ed:not(.fp-guide) .ed-footer-bottom a:hover { color: #ffffff; }
body.fp-ed:not(.fp-guide) .ed-footer-bottom { border-top: 1px solid rgba(255,255,255,0.10) !important; }

body.fp-ed:not(.fp-guide) .ed-cta {
  background:
    radial-gradient(680px 320px at 12% -20%, color-mix(in srgb, var(--brand) 42%, transparent), transparent 70%),
    radial-gradient(560px 300px at 100% 120%, color-mix(in srgb, var(--brand-2) 30%, transparent), transparent 72%),
    var(--ink-band);
}

body.fp-ed:not(.fp-guide) .ed-quote {
  background:
    radial-gradient(620px 280px at 8% -30%, color-mix(in srgb, var(--brand) 30%, transparent), transparent 70%),
    var(--ink-band);
  color: #eef0f4; border-radius: 26px; padding: 54px clamp(22px,5vw,66px);
  box-shadow: 0 1px 1px rgba(10,12,20,.18), 0 36px 70px -40px rgba(10,12,20,.6);
}
body.fp-ed:not(.fp-guide) .ed-quote .ed-quote-q { color: #ffffff; }
body.fp-ed:not(.fp-guide) .ed-quote .ed-quote-q em { color: color-mix(in srgb, var(--brand-2) 65%, #fff); }
body.fp-ed:not(.fp-guide) .ed-quote .ed-kicker { color: color-mix(in srgb, var(--brand-2) 70%, #fff); }
body.fp-ed:not(.fp-guide) .ed-quote .ed-quote-by strong { color: #ffffff; }
body.fp-ed:not(.fp-guide) .ed-quote .ed-quote-by span { color: #aab0bd; }

body.fp-ed:not(.fp-guide) a.ed-arrow:hover,
body.fp-ed:not(.fp-guide) .ed-auth-link:hover { color: var(--brand); }
/* purple focus ring on inputs + search (overrides the depth neutral ring) */
body.fp-ed:not(.fp-guide) .ed-field input:not([type="checkbox"]):not([type="radio"]):focus,
body.fp-ed:not(.fp-guide) .ed-field select:focus,
body.fp-ed:not(.fp-guide) .ed-field textarea:focus,
body.fp-ed:not(.fp-guide) .ed-auth-form input:not([type="checkbox"]):not([type="radio"]):focus,
body.fp-ed:not(.fp-guide) .ed-auth-form select:focus,
body.fp-ed:not(.fp-guide) .ed-auth-form textarea:focus {
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 15%, transparent), inset 0 1px 2px rgba(20,24,33,0.045) !important;
}
body.fp-ed:not(.fp-guide) .ed-search:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 12%, transparent); }

body.fp-ed:not(.fp-guide) .ed-btn-line:hover {
  border-color: color-mix(in srgb, var(--brand) 45%, var(--line-2));
  color: var(--brand);
}
/* End MIDNIGHT × PURPLE LOCK */


body.fp-ed.auth-page .ed-auth { grid-template-columns: 1.08fr 0.92fr; }

body.fp-ed.auth-page .ed-auth-aside {
  background:
    radial-gradient(900px 600px at 6% -8%, color-mix(in srgb, var(--brand) 60%, transparent), transparent 58%),
    radial-gradient(720px 520px at 112% 116%, color-mix(in srgb, var(--brand-2) 48%, transparent), transparent 62%),
    linear-gradient(155deg, #0f1626 0%, #0d0d12 55%, #0a0a0e 100%);
  padding: clamp(48px, 5vw, 72px) clamp(40px, 4.5vw, 64px);
  gap: 32px;
}
/* faint dot-grid texture, fading toward the bottom */
body.fp-ed.auth-page .ed-auth-aside::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1.4px);
  background-size: 22px 22px;
  -webkit-mask-image: radial-gradient(130% 100% at 50% 0%, #000 35%, transparent 78%);
  mask-image: radial-gradient(130% 100% at 50% 0%, #000 35%, transparent 78%);
}
/* soft glowing orb accent */
body.fp-ed.auth-page .ed-auth-aside::after {
  content: ""; position: absolute; width: 360px; height: 360px; right: -90px; top: 16%;
  background: radial-gradient(circle, color-mix(in srgb, var(--brand) 48%, transparent), transparent 64%);
  filter: blur(26px); pointer-events: none; z-index: 0;
}
body.fp-ed.auth-page .ed-auth-aside > * { position: relative; z-index: 1; }

/* brand chip */
body.fp-ed.auth-page .ed-auth-akick {
  display: inline-flex; align-items: center; gap: 9px; align-self: flex-start;
  padding: 8px 15px 8px 12px; border-radius: 999px;
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14);
  color: #fff; letter-spacing: 0.14em; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
body.fp-ed.auth-page .ed-auth-akick::before {
  content: ""; width: 9px; height: 9px; border-radius: 50%;
  background: linear-gradient(180deg, var(--brand-2), var(--brand));
  box-shadow: 0 0 12px color-mix(in srgb, var(--brand) 75%, transparent);
}
body.fp-ed.auth-page .ed-auth-aside h1 { font-size: clamp(2.1rem, 3.4vw, 3.05rem); max-width: 15ch; margin-top: 20px; }
body.fp-ed.auth-page .ed-auth-aside h1 em { color: color-mix(in srgb, var(--brand-2) 62%, #ffffff); font-style: normal; }
body.fp-ed.auth-page .ed-auth-lead { color: rgba(255,255,255,0.72); }

/* value points → glass cards with purple icon chips */
body.fp-ed.auth-page .ed-auth-points { gap: 12px; }
body.fp-ed.auth-page .ed-auth-point {
  align-items: center; gap: 14px;
  background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.09);
  border-radius: 15px; padding: 14px 16px;
  transition: background 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}
body.fp-ed.auth-page .ed-auth-point:hover {
  background: rgba(255,255,255,0.075);
  border-color: color-mix(in srgb, var(--brand) 42%, rgba(255,255,255,0.12));
  transform: translateY(-2px);
}
body.fp-ed.auth-page .ed-auth-point svg {
  width: 19px; height: 19px; margin-top: 0; padding: 9px; box-sizing: content-box; border-radius: 11px;
  background: linear-gradient(160deg, color-mix(in srgb, var(--brand-2) 55%, transparent), color-mix(in srgb, var(--brand) 42%, transparent));
  border: 1px solid rgba(255,255,255,0.16); color: #fff;
  box-shadow: 0 8px 20px -10px color-mix(in srgb, var(--brand) 75%, transparent);
}
body.fp-ed.auth-page .ed-auth-point strong { font-weight: 700; }
body.fp-ed.auth-page .ed-auth-afoot { color: rgba(255,255,255,0.5); }

/* center icon badge (otp / verify / reset pages) → premium purple orb */
body.fp-ed.auth-page .ed-auth-badge {
  width: 72px; height: 72px; background: linear-gradient(160deg, var(--brand-2), var(--brand));
  box-shadow: 0 18px 44px -18px color-mix(in srgb, var(--brand) 75%, transparent), inset 0 1px 0 rgba(255,255,255,0.25);
}

body.fp-ed.auth-page .ed-auth-panel {
  background: linear-gradient(180deg, #ffffff 0%, var(--band) 220%);
  position: relative;
}
body.fp-ed.auth-page .ed-auth-card { max-width: 444px; }
body.fp-ed.auth-page .ed-auth-card h2 { font-weight: 800; letter-spacing: -0.035em; font-size: 1.86rem; }
body.fp-ed.auth-page .ed-seg {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  border: 0; padding: 0; background: none; border-radius: 0;
}
body.fp-ed.auth-page .ed-seg label { height: 100%; }
body.fp-ed.auth-page .ed-seg label:has(input:checked) {
  border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand);
  background: color-mix(in srgb, var(--brand) 7%, #fff);
}
/* purple, brand-forward primary CTA (auth only) */
body.fp-ed.auth-page .ed-auth-submit {
  background: linear-gradient(180deg, var(--brand-2), var(--brand));
  border-color: var(--brand); color: #fff;
  box-shadow: 0 16px 32px -16px color-mix(in srgb, var(--brand) 72%, transparent), inset 0 1px 0 rgba(255,255,255,0.20);
}
body.fp-ed.auth-page .ed-auth-submit:hover {
  background: linear-gradient(180deg, color-mix(in srgb, var(--brand-2) 86%, #ffffff), var(--brand));
  transform: translateY(-2px);
  box-shadow: 0 24px 46px -18px color-mix(in srgb, var(--brand) 78%, transparent), inset 0 1px 0 rgba(255,255,255,0.26);
}
/* refined demo buttons */
body.fp-ed.auth-page .ed-auth-demo-row .ed-btn:hover {
  border-color: color-mix(in srgb, var(--brand) 50%, var(--line-2));
  color: var(--brand);
}

@media (max-width: 880px) {
  body.fp-ed.auth-page .ed-auth { grid-template-columns: 1fr; }
  body.fp-ed.auth-page .ed-auth-panel { background: var(--paper); }
  body.fp-ed.auth-page .ed-auth-panel::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--brand), var(--brand-2), var(--brand));
  }
}

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  body.fp-ed.auth-page .ed-auth-point,
  body.fp-ed.auth-page .ed-auth-submit { transition: none; }
  body.fp-ed.auth-page .ed-auth-point:hover,
  body.fp-ed.auth-page .ed-auth-submit:hover { transform: none; }
}
/* End PREMIUM AUTH */


body.fp-ed .ed-home .ed-home-stats { gap: 18px; }
body.fp-ed .ed-home .ed-home-stats .ed-stat {
  position: relative; overflow: hidden; padding: 26px 22px;
  background: linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--brand) 3%, #fff) 100%);
  border-color: var(--line);
  box-shadow: 0 1px 2px rgba(18,22,30,0.04), 0 18px 40px -30px rgba(18,22,30,0.5);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
body.fp-ed .ed-home .ed-home-stats .ed-stat::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 3px;
  background: linear-gradient(90deg, var(--brand), var(--brand-2));
  opacity: 0; transition: opacity .24s ease;
}
body.fp-ed .ed-home .ed-home-stats .ed-stat:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--brand) 28%, var(--line));
  box-shadow: 0 1px 2px rgba(18,22,30,0.05), 0 30px 54px -30px color-mix(in srgb, var(--brand) 30%, rgba(18,22,30,0.55));
}
body.fp-ed .ed-home .ed-home-stats .ed-stat:hover::before { opacity: 1; }
body.fp-ed .ed-home .ed-home-stats .ed-stat span {
  display: flex; align-items: center; gap: 8px; margin-top: 10px;
}
body.fp-ed .ed-home .ed-home-stats .ed-stat span::before {
  content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%;
  background: linear-gradient(180deg, var(--brand-2), var(--brand));
}

body.fp-ed .ed-home .ed-home-step {
  padding: 26px 22px;
  background: linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--brand) 3%, #fff) 100%);
  box-shadow: 0 1px 2px rgba(18,22,30,0.04), 0 18px 40px -30px rgba(18,22,30,0.5);
}
body.fp-ed .ed-home .ed-home-step:hover { border-color: color-mix(in srgb, var(--brand) 26%, var(--line)); }
body.fp-ed .ed-home .ed-home-step-n {
  background: linear-gradient(165deg, var(--brand-2), var(--brand));
  box-shadow: 0 12px 24px -10px color-mix(in srgb, var(--brand) 70%, transparent), inset 0 1px 0 rgba(255,255,255,0.28);
}
/* dotted flow connector between the 3 steps (desktop only) */
@media (min-width: 861px) {
  body.fp-ed .ed-home .ed-home-step { position: relative; }
  body.fp-ed .ed-home .ed-home-step:not(:last-child)::after {
    content: ""; position: absolute; top: 45px; right: -10px; width: 20px; height: 2px; z-index: 2;
    background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--brand) 50%, transparent) 0 4px, transparent 4px 8px);
  }
}

body.fp-ed .ed-home .ed-spot-media { box-shadow: inset 0 0 0 1px rgba(18,22,30,0.06); }

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  body.fp-ed .ed-home .ed-home-stats .ed-stat { transition: none; }
  body.fp-ed .ed-home .ed-home-stats .ed-stat:hover { transform: none; }
}

@media (min-width: 1280px) {
  body.fp-ed .ed-home .ed-home-paths-sec > .ed-container { max-width: min(1600px, 95vw); }
}
body.fp-ed .ed-home .ed-home-paths { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
body.fp-ed .ed-home .ed-home-path {
  position: relative; display: block; overflow: hidden; isolation: isolate;
  border-radius: var(--r2); aspect-ratio: 16 / 9;
  box-shadow: 0 1px 2px rgba(6,40,28,0.06), 0 28px 60px -32px rgba(6,52,36,0.52);
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
body.fp-ed .ed-home .ed-home-path:hover {
  transform: translateY(-8px);
  box-shadow: 0 1px 2px rgba(6,40,28,0.08), 0 50px 92px -30px rgba(7,98,67,0.6);
}
body.fp-ed .ed-home .ed-home-path img {
  position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 36%; transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}
body.fp-ed .ed-home .ed-home-path:hover img { transform: scale(1.07); filter: saturate(1.1); }
body.fp-ed .ed-home .ed-home-path::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(155deg, rgba(10,84,58,0.30) 0%, rgba(8,58,42,0.13) 46%, rgba(6,40,28,0.02) 74%);
  mix-blend-mode: multiply;
}
body.fp-ed .ed-home .ed-home-path::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.12);
  background:
    radial-gradient(80% 58% at 86% 6%, rgba(146,255,214,0.18), rgba(146,255,214,0) 58%),
    linear-gradient(180deg, rgba(4,30,21,0) 4%, rgba(4,30,21,0.16) 38%, rgba(4,28,20,0.70) 73%, rgba(3,22,16,0.95) 100%);
  transition: box-shadow .35s ease;
}
body.fp-ed .ed-home .ed-home-path:hover::after { box-shadow: inset 0 0 0 1px rgba(150,255,210,0.34); }
body.fp-ed .ed-home .ed-home-path-cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: clamp(24px, 3vw, 40px); color: #fff; }
body.fp-ed .ed-home .ed-home-path-kick {
  display: inline-flex; align-items: center; gap: 8px; font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.15em; color: #eafff4;
  padding: 7px 15px; border-radius: 999px;
  background: linear-gradient(120deg, rgba(13,110,76,0.68), rgba(9,78,55,0.62));
  border: 1px solid rgba(150,255,210,0.52);
  box-shadow: 0 8px 22px -8px rgba(7,80,55,0.72), inset 0 1px 0 rgba(190,255,225,0.34);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
}
body.fp-ed .ed-home .ed-home-path-kick::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: #6cf2ad; box-shadow: 0 0 8px rgba(108,242,173,0.95);
}
body.fp-ed .ed-home .ed-home-path-cap h3 { color: #fff; font-size: clamp(1.55rem, 2.1vw, 2.4rem); line-height: 1.08; letter-spacing: -0.025em; margin: 16px 0 0; max-width: 20ch; }
body.fp-ed .ed-home .ed-home-path-cap p { color: rgba(238,255,247,0.88); font-size: 1.02rem; line-height: 1.55; margin: 11px 0 0; max-width: 46ch; }
body.fp-ed .ed-home .ed-home-path-chip {
  display: inline-flex; align-items: center; gap: 9px; margin-top: 22px; padding: 13px 24px; border-radius: 999px;
  background: #fff; color: #0a6b47; font-weight: 800; font-size: 0.95rem;
  box-shadow: 0 14px 30px -12px rgba(4,40,28,0.62);
  transition: gap .2s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}
body.fp-ed .ed-home .ed-home-path-chip svg { width: 16px; height: 16px; }
body.fp-ed .ed-home .ed-home-path:hover .ed-home-path-chip {
  gap: 12px; background: linear-gradient(120deg, #11a06a, #0a7a4f); color: #fff;
  box-shadow: 0 16px 34px -12px rgba(10,140,90,0.75);
}
@media (max-width: 720px) {
  body.fp-ed .ed-home .ed-home-paths { grid-template-columns: 1fr; gap: 16px; }
  /* taller on mobile (single column, full-width) so the overlaid copy never clips */
  body.fp-ed .ed-home .ed-home-path { aspect-ratio: 4 / 3.3; }
  body.fp-ed .ed-home .ed-home-path-cap { padding: 18px; }
  body.fp-ed .ed-home .ed-home-path-kick { font-size: 0.66rem; padding: 5px 11px; }
  body.fp-ed .ed-home .ed-home-path-cap h3 { font-size: 1.3rem; line-height: 1.12; margin-top: 10px; }
  body.fp-ed .ed-home .ed-home-path-cap p {
    font-size: 0.9rem; line-height: 1.5; margin-top: 8px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
  body.fp-ed .ed-home .ed-home-path-chip { margin-top: 14px; padding: 10px 18px; font-size: 0.88rem; }
}
@media (prefers-reduced-motion: reduce) {
  body.fp-ed .ed-home .ed-home-path,
  body.fp-ed .ed-home .ed-home-path img,
  body.fp-ed .ed-home .ed-home-path-chip { transition: none; }
  body.fp-ed .ed-home .ed-home-path:hover,
  body.fp-ed .ed-home .ed-home-path:hover img { transform: none; }
}
body.fp-ed .ed-home .ed-quote.ed-quote-split {
  max-width: var(--maxw);
  text-align: left;
  display: grid; grid-template-columns: 1.02fr 0.98fr; align-items: center;
  gap: clamp(28px, 4vw, 60px);
  padding: clamp(30px, 3.4vw, 52px);
}
/* breaks out wider on large screens (placed AFTER the base so it wins at equal specificity) */
@media (min-width: 1280px) {
  body.fp-ed .ed-home .ed-quote.ed-quote-split { max-width: min(1600px, 95vw); }
}
body.fp-ed .ed-home .ed-quote-split .ed-kicker { justify-content: flex-start; }
body.fp-ed .ed-home .ed-quote-split .ed-quote-q { font-size: clamp(1.7rem, 2.7vw, 2.9rem); margin-top: 18px; }
body.fp-ed .ed-home .ed-quote-split .ed-quote-by { margin-top: 24px; }
body.fp-ed .ed-home .ed-quote-media {
  position: relative; border-radius: 18px; overflow: hidden; aspect-ratio: 3 / 2;
  box-shadow: 0 30px 64px -34px rgba(0,0,0,0.72);
}
body.fp-ed .ed-home .ed-quote-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* gentle purple-ink wash so the photo blends into the Midnight band + a glass frame */
body.fp-ed .ed-home .ed-quote-media::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background:
    linear-gradient(120deg, color-mix(in srgb, var(--brand) 34%, transparent), transparent 52%),
    linear-gradient(0deg, rgba(8,8,14,0.34), transparent 58%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.09);
}
@media (max-width: 860px) {
  body.fp-ed .ed-home .ed-quote.ed-quote-split { grid-template-columns: 1fr; gap: 22px; text-align: center; }
  body.fp-ed .ed-home .ed-quote-split .ed-kicker { justify-content: center; }
  body.fp-ed .ed-home .ed-quote-split .ed-quote-by { justify-content: center; }
  body.fp-ed .ed-home .ed-quote-media { aspect-ratio: 16 / 9; order: -1; }
}
body.fp-ed:not(.fp-guide) .ed-home-cta {
  width: min(calc(var(--maxw) - 2 * var(--gut)), calc(100% - 2 * var(--gut)));
  margin: clamp(20px, 3.5vw, 52px) auto clamp(26px, 4vw, 64px);
  border-radius: clamp(22px, 2.6vw, 34px);
  background:
    radial-gradient(720px 360px at 12% -18%, color-mix(in srgb, var(--brand-2) 52%, transparent), transparent 62%),
    radial-gradient(640px 380px at 94% 118%, color-mix(in srgb, var(--brand) 46%, transparent), transparent 64%),
    linear-gradient(135deg, #243352 0%, #1b2436 48%, #131822 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06),
    0 44px 92px -52px rgba(20, 44, 96, 0.62),
    0 16px 40px -30px rgba(0, 0, 0, 0.5);
}
/* a touch more breathing room + a crisp white "best." accent on the premium card */
body.fp-ed:not(.fp-guide) .ed-home-cta .ed-cta-in { padding-top: clamp(64px, 7vw, 104px); padding-bottom: clamp(64px, 7vw, 104px); }
body.fp-ed:not(.fp-guide) .ed-home-cta .ed-em { color: #fff; }
@media (max-width: 600px) {
  body.fp-ed:not(.fp-guide) .ed-home-cta { margin: 18px auto 22px; border-radius: 22px; }
}
/* End HOME POLISH */

body.fp-ed.auth-page .ed-onb { padding-top: clamp(40px, 6vw, 72px); }
body.fp-ed .ed-onb-card {
  max-width: 600px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: clamp(26px, 4vw, 44px);
  box-shadow: 0 1px 2px rgba(18, 22, 30, 0.04), 0 30px 64px -42px rgba(18, 22, 30, 0.42);
}
body.fp-ed .ed-onb-card .ed-h2 { letter-spacing: -0.02em; }
/* 2-segment progress bar under the step label */
body.fp-ed .ed-onb-prog { display: flex; gap: 6px; margin-top: 14px; }
body.fp-ed .ed-onb-prog span { height: 5px; flex: 1 1 0; border-radius: 999px; background: var(--line-2); }
body.fp-ed .ed-onb-prog span.is-on { background: var(--ink); }
/* form rhythm */
body.fp-ed .ed-onb-card .ed-auth-form { gap: 18px; }
body.fp-ed.auth-page .ed-onb .ed-frow { align-items: start; }
/* char counter → right-aligned + subtle, sits tight under its field (no layout push) */
body.fp-ed.auth-page .ed-onb .field-char-limit { justify-self: end; margin-top: 1px; font-size: 0.72rem; color: var(--faint); font-variant-numeric: tabular-nums; }
/* live username availability — one meta row (status left · char counter right) + state colors */
body.fp-ed.auth-page .ed-onb .ed-field-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 16px; margin-top: 1px; }
body.fp-ed.auth-page .ed-onb .ed-field-meta .field-char-limit { margin-top: 0; }
body.fp-ed.auth-page .ed-onb .ed-uname-status { font-size: 0.76rem; font-weight: 600; display: inline-flex; align-items: center; gap: 5px; }
body.fp-ed.auth-page .ed-onb .ed-uname-status:empty { display: none; }
body.fp-ed.auth-page .ed-onb .ed-uname-status.is-checking { color: var(--muted); font-weight: 500; }
body.fp-ed.auth-page .ed-onb .ed-uname-status.is-ok { color: #0f8a4d; }
body.fp-ed.auth-page .ed-onb .ed-uname-status.is-bad { color: #cf4133; }
body.fp-ed.auth-page .ed-onb .ed-uname-status.is-ok::before { content: "✓"; font-weight: 800; }
body.fp-ed.auth-page .ed-onb .ed-uname-status.is-bad::before { content: "✕"; font-weight: 800; }
body.fp-ed.auth-page .ed-onb input.is-uname-ok { border-color: #1a9d5f !important; box-shadow: 0 0 0 3px rgba(26, 157, 95, 0.14) !important; }
body.fp-ed.auth-page .ed-onb input.is-uname-bad { border-color: #d05047 !important; box-shadow: 0 0 0 3px rgba(208, 80, 71, 0.12) !important; }
/* tips → clean filled card (was a loose dashed box) */
body.fp-ed .ed-onb-tip { margin-top: 6px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--band); }
body.fp-ed .ed-onb-tip strong { display: block; font-size: 0.88rem; font-weight: 700; color: var(--ink); margin-bottom: 8px; }
body.fp-ed .ed-onb-tip ul { margin: 0; padding-left: 18px; color: var(--muted); font-size: 0.84rem; line-height: 1.65; }
body.fp-ed .ed-onb-tip li + li { margin-top: 3px; }
body.fp-ed .ed-onb-card .ed-auth-submit { margin-top: 8px; }
@media (max-width: 560px) {
  body.fp-ed.auth-page .ed-onb { padding-left: 14px; padding-right: 14px; }
  body.fp-ed.auth-page .ed-onb .ed-frow { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════════════════
   HERO REDESIGN — homepage (2026-06-07)
   Premium restyle of the hero's LEFT column (.ed-hero-in / .ed-hero-redux).
   The animated showcase on the right (.ed-home-hero-art / .ed-home-hero-card
   / .hs-*) is intentionally NOT touched by any selector in this block.
   Neutral palette; purple stays CTA-only (the Search button) per the
   Midnight × Purple lock. Additive + reversible — delete this block to revert.
   ════════════════════════════════════════════════════════════════════════ */

/* staggered entrance — fail-safe (always ends fully visible; off for reduced-motion) */
@keyframes ed-hero-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
body.fp-ed .ed-home .ed-hero-redux > * { animation: ed-hero-rise 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; }
body.fp-ed .ed-home .ed-hero-redux > .hero-eyebrow { animation-delay: 0.02s; }
body.fp-ed .ed-home .ed-hero-redux > .hero-title { animation-delay: 0.08s; }
body.fp-ed .ed-home .ed-hero-redux > .hero-description { animation-delay: 0.16s; }
body.fp-ed .ed-home .ed-hero-redux > .ed-home-search-shell { animation-delay: 0.24s; }
body.fp-ed .ed-home .ed-hero-redux > .ed-hero-tags { animation-delay: 0.30s; }
body.fp-ed .ed-home .ed-hero-redux > .ed-hero-trust { animation-delay: 0.36s; }

body.fp-ed .ed-home .hero-eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  margin: 0; padding: 7px 15px 7px 11px;
  border-radius: 999px;
  font-family: var(--display);
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--ink-2);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.6));
  border: 1px solid var(--line);
  box-shadow: 0 1px 2px rgba(11, 11, 12, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
body.fp-ed .ed-home .hero-eyebrow-dot {
  width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto;
  background: var(--ink);
  box-shadow: 0 0 0 0 rgba(11, 11, 12, 0.28);
  animation: ed-hero-dot 2.6s ease-out infinite;
}
@keyframes ed-hero-dot {
  0% { box-shadow: 0 0 0 0 rgba(11, 11, 12, 0.3); }
  70% { box-shadow: 0 0 0 7px rgba(11, 11, 12, 0); }
  100% { box-shadow: 0 0 0 0 rgba(11, 11, 12, 0); }
}

body.fp-ed .ed-home .ed-hero-redux .hero-title {
  margin-top: 22px;
  font-size: clamp(2.55rem, 5.1vw, 4.15rem);
  line-height: 1.015;
  letter-spacing: -0.04em;
}

body.fp-ed .ed-home .ed-hero-redux .hero-description {
  margin-top: 20px; max-width: 33rem;
  font-size: clamp(1rem, 1.15vw, 1.1rem); line-height: 1.6; color: var(--muted);
}

body.fp-ed .ed-home .ed-hero-redux .ed-home-search-shell { margin-top: 30px; width: 100%; max-width: 36rem; }
body.fp-ed .ed-home .ed-hero-redux .ed-home-search {
  border-radius: 16px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 2px 4px rgba(11, 11, 12, 0.04), 0 26px 56px -34px rgba(11, 11, 12, 0.45);
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}
body.fp-ed .ed-home .ed-hero-redux .ed-home-search:hover {
  box-shadow: 0 2px 4px rgba(11, 11, 12, 0.05), 0 30px 60px -32px rgba(11, 11, 12, 0.5);
}
body.fp-ed .ed-home .ed-hero-redux .ed-home-search:focus-within {
  border-color: color-mix(in srgb, var(--ink) 26%, var(--line));
  box-shadow: 0 0 0 4px rgba(11, 11, 12, 0.06), 0 30px 60px -32px rgba(11, 11, 12, 0.5);
}

body.fp-ed .ed-home .ed-hero-redux .ed-hero-tags { margin-top: 18px; gap: 8px; align-items: center; }
body.fp-ed .ed-home .ed-hero-redux .ed-hero-tags > span { color: var(--faint); font-weight: 600; font-size: 0.8rem; }
body.fp-ed .ed-home .ed-hero-redux .ed-hero-tags .ed-tag {
  padding: 7px 13px; border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.6));
  border: 1px solid var(--line); color: var(--ink-2);
  font-size: 0.82rem; font-weight: 600;
  box-shadow: 0 1px 2px rgba(11, 11, 12, 0.04);
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
body.fp-ed .ed-home .ed-hero-redux .ed-hero-tags .ed-tag:hover {
  border-color: color-mix(in srgb, var(--ink) 40%, var(--line));
  color: var(--ink); transform: translateY(-1px);
  box-shadow: 0 6px 16px -10px rgba(11, 11, 12, 0.4);
}

body.fp-ed .ed-home .ed-hero-redux .ed-hero-trust { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
body.fp-ed .ed-home .ed-hero-redux .ed-hero-trust-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 14px; border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.55));
  border: 1px solid var(--line);
  font-size: 0.83rem; font-weight: 600; color: var(--ink-2);
  box-shadow: 0 1px 2px rgba(11, 11, 12, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
body.fp-ed .ed-home .ed-hero-redux .ed-hero-trust-chip b { color: var(--ink); font-weight: 800; }
body.fp-ed .ed-home .ed-hero-redux .ed-hero-trust-chip svg { width: 17px; height: 17px; flex: 0 0 auto; color: var(--ink); }

@media (prefers-reduced-motion: reduce) {
  body.fp-ed .ed-home .ed-hero-redux > *,
  body.fp-ed .ed-home .hero-eyebrow-dot { animation: none !important; }
}

@media (max-width: 640px) {
  body.fp-ed .ed-home .ed-hero-redux .hero-title { font-size: clamp(2.1rem, 9vw, 2.9rem); }
  body.fp-ed .ed-home .ed-hero-redux .ed-hero-trust { gap: 8px; }
  body.fp-ed .ed-home .ed-hero-redux .ed-hero-trust-chip { padding: 8px 12px; font-size: 0.8rem; }
}

body.fp-ed .ed-pset { display: flex; flex-direction: column; gap: 18px; }
body.fp-ed .ed-pset-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: clamp(20px, 3vw, 28px);
  box-shadow: 0 1px 2px rgba(11, 11, 12, 0.04), 0 20px 44px -36px rgba(11, 11, 12, 0.5);
}
body.fp-ed .ed-pset-head { margin: 0 0 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
body.fp-ed .ed-pset-h { font-family: var(--display); font-weight: 800; font-size: 1.06rem; letter-spacing: -0.01em; color: var(--ink); margin: 0; }
body.fp-ed .ed-pset-sub { margin: 5px 0 0; font-size: 0.86rem; color: var(--muted); line-height: 1.5; }
body.fp-ed .ed-pset-fields { display: flex; flex-direction: column; gap: 16px; }
body.fp-ed .ed-pset-fields .ed-field-hint { color: var(--muted); font-size: 0.78rem; margin-top: 5px; display: block; line-height: 1.5; }
body.fp-ed .ed-pset .ed-frow { align-items: start; }
/* photo card — drop the avatar block's own bottom margin (card padding handles spacing) */
body.fp-ed .ed-pset-photo .ed-avatar-edit { margin: 0; }
/* actions — primary on the right; full-width stack on mobile */
body.fp-ed .ed-pset-actions { justify-content: flex-end; margin-top: 2px; }
@media (max-width: 560px) {
  body.fp-ed .ed-pset-actions { flex-direction: column-reverse; }
  body.fp-ed .ed-pset-actions .ed-btn { width: 100%; }
}

.fp-ed .ed-sd-skel-fill {
  position: absolute; inset: 0; display: block;
  background: linear-gradient(90deg, var(--band) 25%, #efece6 50%, var(--band) 75%);
  background-size: 200% 100%;
  animation: ed-skel 1.5s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) { .fp-ed .ed-sd-skel-fill { animation: none; } }

body.fp-ed:not(.fp-nav-ready) .site-header .navigation { opacity: 0; animation: fp-nav-reveal 0.001s linear 1.2s forwards; }
body.fp-ed.fp-nav-ready .site-header .navigation { opacity: 1; animation: none; }
@keyframes fp-nav-reveal { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { body.fp-ed:not(.fp-nav-ready) .site-header .navigation { animation-delay: 0.3s; } }

.fp-ed .ed-skel-card { border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; background: var(--paper); }
.fp-ed .ed-skel-card-thumb { position: relative; aspect-ratio: 16 / 10; }
.fp-ed .ed-skel-card-body { padding: 14px 16px 18px; }
.fp-ed .ed-skel-card-body .ed-skel-line { margin-bottom: 10px; }
.fp-ed .ed-skel-card-body .ed-skel-line:last-child { margin-bottom: 0; }
.fp-ed .ed-skel-row { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); }
.fp-ed .ed-skel-row .ed-skel-row-tx { flex: 1; display: flex; flex-direction: column; gap: 9px; }
.fp-ed .ed-skel-stack { display: flex; flex-direction: column; gap: 14px; }

body.fp-ed .ed-serve-title { margin-top: clamp(30px, 3.2vw, 46px); }
body.fp-ed .ed-pkg { z-index: 2; }

.fp-ed .ed-bsl-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 30px; }
.fp-ed .ed-bsl-card {
  position: relative; aspect-ratio: 3 / 2; border-radius: 20px; overflow: hidden;
  border: 1px solid var(--line); background: var(--band); isolation: isolate;
  box-shadow: 0 1px 2px rgba(11, 11, 12, 0.05), 0 34px 66px -42px rgba(11, 11, 12, 0.62);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.fp-ed .ed-bsl-card:hover { transform: translateY(-5px); box-shadow: 0 1px 2px rgba(11, 11, 12, 0.06), 0 46px 84px -40px rgba(11, 11, 12, 0.64); }
.fp-ed .ed-bsl-card .ed-sd-skel-fill { z-index: 0; }
.fp-ed .ed-bsl-img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; transition: transform 0.6s ease; }
.fp-ed .ed-bsl-card:hover .ed-bsl-img { transform: scale(1.045); }
/* crisp inner ring on the photo edge */
.fp-ed .ed-bsl-card::after { content: ""; position: absolute; inset: 0; z-index: 4; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1); pointer-events: none; }
.fp-ed .ed-bsl-scrim { position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, rgba(8, 10, 14, 0) 30%, rgba(8, 10, 14, 0.28) 56%, rgba(8, 10, 14, 0.88) 100%); }
.fp-ed .ed-bsl-pill {
  position: absolute; top: 16px; left: 16px; z-index: 3;
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border-radius: 999px;
  background: #0a6b47; color: #fff; font-family: var(--display);
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase;
  box-shadow: 0 8px 18px -8px rgba(10, 107, 71, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}
.fp-ed .ed-bsl-tx { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: 24px 26px 24px; }
.fp-ed .ed-bsl-tx h3 { font-family: var(--display); font-weight: 800; font-size: clamp(1.35rem, 1.7vw, 1.6rem); letter-spacing: -0.025em; line-height: 1.12; color: #fff; margin: 0; }
.fp-ed .ed-bsl-tx p { margin: 10px 0 0; max-width: 30rem; font-size: 0.92rem; line-height: 1.55; color: rgba(255, 255, 255, 0.92); }
@media (max-width: 760px) { .fp-ed .ed-bsl-grid { grid-template-columns: 1fr; gap: 18px; } .fp-ed .ed-bsl-card { aspect-ratio: 4 / 3; } }
@media (max-width: 460px) { .fp-ed .ed-bsl-card { aspect-ratio: 5 / 4; } .fp-ed .ed-bsl-tx { padding: 18px 18px 18px; } .fp-ed .ed-bsl-tx h3 { font-size: 1.3rem; } .fp-ed .ed-bsl-tx p { font-size: 0.86rem; } }
@media (prefers-reduced-motion: reduce) { .fp-ed .ed-bsl-card, .fp-ed .ed-bsl-img { transition: none; } }

body.fp-ed .ed-bdash-hero {
  align-items: center; gap: 18px; margin-top: 4px;
  padding: clamp(22px, 3vw, 32px) clamp(22px, 3.2vw, 34px);
  border: 1px solid var(--line); border-radius: 20px;
  background:
    radial-gradient(120% 150% at 0% 0%, color-mix(in srgb, var(--brand) 9%, #fff), transparent 52%),
    radial-gradient(120% 150% at 100% 0%, color-mix(in srgb, #2563eb 7%, #fff), transparent 52%),
    var(--paper);
  box-shadow: 0 1px 2px rgba(11, 11, 12, 0.04), 0 22px 50px -42px rgba(11, 11, 12, 0.5);
}
body.fp-ed .ed-bdash-hero p { color: var(--muted); }
body.fp-ed .ed-bdash-hero-cta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
@media (max-width: 560px) {
  body.fp-ed .ed-bdash-hero-cta { width: 100%; }
  body.fp-ed .ed-bdash-hero-cta .ed-btn { flex: 1; text-align: center; }
}
.fp-ed .ed-wsx-ico .ed-wsx-toprow { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 13px; }
.fp-ed .ed-wsx-ic {
  display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; flex: 0 0 auto;
  color: var(--ic, var(--brand));
  background: color-mix(in srgb, var(--ic, var(--brand)) 12%, #fff);
  border: 1px solid color-mix(in srgb, var(--ic, var(--brand)) 24%, var(--line));
}
.fp-ed .ed-wsx-ic svg { width: 19px; height: 19px; }
.fp-ed .ed-wsx-ico .ed-wsx-label { display: block; margin-bottom: 4px; }


.ed-home .ed-home2-trust { background: #faf9f7; border-top: 1px solid #ece9e3; border-bottom: 1px solid #ece9e3; }
.ed-home .ed-home2-trust-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 34px; padding: 16px 24px; }
.ed-home .ed-home2-trust-item { display: inline-flex; align-items: center; gap: 8px; font-size: 0.86rem; font-weight: 600; color: #3a3942; letter-spacing: -0.01em; }
.ed-home .ed-home2-tick { width: 17px; height: 17px; color: #15803d; flex-shrink: 0; }

.ed-home .ed-home2-hiw-sec { background: #ffffff; }
.ed-home .ed-home2-hiw { display: grid; grid-template-columns: 0.92fr 1.08fr; align-items: center; gap: clamp(30px, 5vw, 72px); }
.ed-home .ed-home2-hiw-media { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 5; box-shadow: 0 34px 70px -38px rgba(12,21,40,0.5); }
.ed-home .ed-home2-hiw-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ed-home .ed-home2-hiw-tx .ed-h2 { margin: 12px 0 0; }
.ed-home .ed-home2-steps { list-style: none; margin: 26px 0 30px; padding: 0; display: grid; gap: 18px; }
.ed-home .ed-home2-steps li { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; }
.ed-home .ed-home2-step-n { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: 800; font-size: 1.02rem; color: #fff; background: linear-gradient(180deg, #3b82f6, #1d4ed8); box-shadow: 0 8px 18px -8px rgba(37,99,235,0.6); flex-shrink: 0; }
.ed-home .ed-home2-step-tx strong { display: block; font-size: 1.02rem; color: #1b1a20; letter-spacing: -0.01em; }
.ed-home .ed-home2-step-tx p { margin: 4px 0 0; color: #6f6f77; font-size: 0.94rem; line-height: 1.55; }

.ed-home .ed-home2-hire2-sec { background: #ffffff; }
.ed-home .ed-home2-hire2 { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.02fr 0.98fr; align-items: center; gap: clamp(26px, 4vw, 56px); background: linear-gradient(135deg, #0e1016 0%, #0b162e 92%); border: 1px solid rgba(255,255,255,0.08); border-radius: clamp(18px, 2vw, 26px); padding: clamp(24px, 3vw, 50px); box-shadow: 0 34px 70px -40px rgba(0,0,0,0.72); }
.ed-home .ed-home2-hire2::before { content: ""; position: absolute; inset: auto -8% -46% auto; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle at 50% 50%, rgba(37,99,235,0.30), transparent 68%); filter: blur(46px); pointer-events: none; z-index: 0; }
.ed-home .ed-home2-hire2-tx, .ed-home .ed-home2-hire2-media { position: relative; z-index: 1; }
body.fp-ed .ed-home .ed-home2-hire2-tx .ed-kicker { color: #bcd6ff; }
body.fp-ed .ed-home .ed-home2-hire2-tx .ed-kicker::before { background: rgba(188,214,255,0.6); }
.ed-home .ed-home2-hire2-tx .ed-h2 { margin-top: 12px; color: #ffffff; }
.ed-home .ed-home2-hire2-tx > p { color: rgba(255,255,255,0.74); font-size: 1.02rem; line-height: 1.62; margin: 16px 0 0; max-width: 52ch; }
.ed-home .ed-home2-hire2-points { list-style: none; margin: 22px 0 28px; padding: 0; display: grid; gap: 12px; }
.ed-home .ed-home2-hire2-points li { display: flex; align-items: center; gap: 11px; color: rgba(255,255,255,0.9); font-size: 0.97rem; font-weight: 500; }
.ed-home .ed-home2-hire2-points svg { width: 18px; height: 18px; color: #93c5fd; flex-shrink: 0; }
.ed-home .ed-home2-hire2 .ed-btn-fill { background: #ffffff; color: #12151b; border-color: #ffffff; }
.ed-home .ed-home2-hire2 .ed-btn-fill:hover { background: transparent; color: #ffffff; border-color: rgba(255,255,255,0.6); }
.ed-home .ed-home2-hire2-media { border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 26px 56px -30px rgba(0,0,0,0.78); }
.ed-home .ed-home2-hire2-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 920px) {
  .ed-home .ed-home2-hire2 { grid-template-columns: 1fr; gap: 24px; }
  .ed-home .ed-home2-hire2-media { aspect-ratio: 16 / 10; order: -1; }
}
.ed-home .ed-home2-why { background: #faf9f7; }
.ed-home .ed-home2-why > .ed-container > .ed-head { margin-bottom: clamp(20px, 3vw, 38px); }
.ed-home .ed-home2-row { margin: 0 auto clamp(26px, 3vw, 40px); }
.ed-home .ed-home2-row:last-of-type { margin-bottom: 0; }
/* override the dark-band quote look → clean light card */
body.fp-ed .ed-home .ed-home2-row.ed-quote.ed-quote-split { background: #ffffff; border: 1px solid #ece9e3; border-radius: 22px; box-shadow: 0 24px 54px -40px rgba(12,21,40,0.34); max-width: min(1180px, 94vw); padding: clamp(22px, 2.6vw, 40px); gap: clamp(26px, 4vw, 56px); }
body.fp-ed .ed-home .ed-home2-row.ed-quote .ed-quote-q { color: #1b1a20; }
body.fp-ed .ed-home .ed-home2-row.ed-quote .ed-quote-q em { color: var(--brand, #1d4ed8); font-style: italic; }
.ed-home .ed-home2-row .ed-kicker-muted { color: #5a6b8a; }
.ed-home .ed-home2-row .ed-quote-by strong { color: #1b1a20; }
.ed-home .ed-home2-row .ed-quote-by span { color: #6f6f77; }
.ed-home .ed-home2-row .ed-quote-media { aspect-ratio: 4 / 3; border-radius: 16px; box-shadow: 0 20px 44px -28px rgba(0,0,0,0.45); }
.ed-home .ed-home2-row .ed-quote-media img[src*="vetted"] { object-position: 50% 75%; }
/* alternate image side */
.ed-home .ed-home2-row.is-reverse .ed-quote-tx { order: 2; }
.ed-home .ed-home2-row.is-reverse .ed-quote-media { order: 1; }
body.fp-ed .ed-home .ed-home2-row.ed-quote.ed-quote-split.is-dark { background: linear-gradient(135deg, #0e1016 0%, #0b162e 92%); border-color: rgba(255,255,255,0.08); box-shadow: 0 34px 70px -38px rgba(0,0,0,0.72); position: relative; overflow: hidden; }
body.fp-ed .ed-home .ed-home2-row.is-dark::before { content: ""; position: absolute; inset: auto -8% -46% auto; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle at 50% 50%, rgba(37,99,235,0.30), transparent 68%); filter: blur(46px); pointer-events: none; z-index: 0; }
body.fp-ed .ed-home .ed-home2-row.is-dark .ed-quote-tx, body.fp-ed .ed-home .ed-home2-row.is-dark .ed-quote-media { position: relative; z-index: 1; }
body.fp-ed .ed-home .ed-home2-row.ed-quote.is-dark .ed-quote-q { color: #ffffff; }
body.fp-ed .ed-home .ed-home2-row.ed-quote.is-dark .ed-quote-q em { color: #93c5fd; }
body.fp-ed .ed-home .ed-home2-row.ed-quote.is-dark .ed-kicker { color: #bcd6ff; }
body.fp-ed .ed-home .ed-home2-row.ed-quote.is-dark .ed-kicker::before { background: rgba(188,214,255,0.65); }
.ed-home .ed-home2-row.is-dark .ed-quote-by strong { color: #ffffff; }
.ed-home .ed-home2-row.is-dark .ed-quote-by span { color: rgba(255,255,255,0.72); }
.ed-home .ed-home2-row.is-dark .ed-quote-media { box-shadow: 0 26px 56px -30px rgba(0,0,0,0.78); }
/* live stats strip */
.ed-home .ed-home2-stats { margin-top: clamp(30px, 4vw, 52px); }

.ed-home .ed-home2-pop-sec { background: #ffffff; }
.ed-home .ed-home2-pop { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 3vw, 40px); }
.ed-home .ed-home2-pop-col h3 { font-family: var(--display); font-weight: 800; font-size: 0.96rem; letter-spacing: -0.01em; color: #1b1a20; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid #ece9e3; }
.ed-home .ed-home2-pop-col a { display: block; padding: 7px 0; color: #56555e; font-size: 0.93rem; text-decoration: none; transition: color 0.15s ease, transform 0.15s ease; }
.ed-home .ed-home2-pop-col a:hover { color: var(--brand, #1d4ed8); transform: translateX(3px); }

.ed-home .ed-home2-earn-sec { position: relative; overflow: hidden; padding: clamp(48px, 6vw, 96px) 0; background: radial-gradient(150% 175% at 78% 40%, rgba(37,99,235,0.26) 0%, rgba(29,78,216,0.10) 42%, transparent 72%), linear-gradient(118deg, #0b1530 0%, #0e1016 56%, #0a1838 100%); }
.ed-home .ed-home2-earn { position: relative; z-index: 1; display: grid; grid-template-columns: 0.86fr 1.14fr; align-items: center; gap: clamp(28px, 5vw, 72px); }
.ed-home .ed-home2-earn-media { position: relative; z-index: 1; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 5; box-shadow: 0 30px 64px -34px rgba(0,0,0,0.7); }
.ed-home .ed-home2-earn-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ed-home .ed-home2-earn-tx { position: relative; z-index: 1; }
body.fp-ed .ed-home .ed-home2-earn-tx .ed-kicker { color: #bcd6ff; }
body.fp-ed .ed-home .ed-home2-earn-tx .ed-kicker::before { background: rgba(188,214,255,0.6); }
.ed-home .ed-home2-earn-tx .ed-h2 { color: #ffffff; margin: 12px 0 0; }
.ed-home .ed-home2-earn-tx .ed-h2 .ed-em { color: #93c5fd; }
.ed-home .ed-home2-earn-tx > p { color: rgba(255,255,255,0.74); margin: 14px 0 0; font-size: 1rem; line-height: 1.6; max-width: 46ch; }
.ed-home .ed-home2-earn-list { list-style: none; margin: 22px 0 28px; padding: 0; display: grid; gap: 12px; }
.ed-home .ed-home2-earn-list li { display: flex; align-items: center; gap: 11px; color: rgba(255,255,255,0.9); font-size: 0.96rem; }
.ed-home .ed-home2-earn-list svg { width: 18px; height: 18px; color: #4ade80; flex-shrink: 0; }

.ed-home .ed-home2-faq-sec { background: #faf9f7; }
.ed-home .ed-home2-faq-wrap { max-width: 820px; }
.ed-home .ed-home2-faq { display: grid; gap: 12px; }
.ed-home .ed-home2-faq-item { background: #ffffff; border: 1px solid #ece9e3; border-radius: 14px; overflow: hidden; transition: border-color 0.18s ease, box-shadow 0.18s ease; }
.ed-home .ed-home2-faq-item[open] { border-color: #c7d8f6; box-shadow: 0 16px 36px -28px rgba(37,99,235,0.4); }
.ed-home .ed-home2-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; padding: 17px 20px; font-weight: 600; font-size: 1rem; color: #1b1a20; letter-spacing: -0.01em; }
.ed-home .ed-home2-faq-item summary::-webkit-details-marker { display: none; }
.ed-home .ed-home2-faq-ic { position: relative; width: 16px; height: 16px; flex-shrink: 0; }
.ed-home .ed-home2-faq-ic::before, .ed-home .ed-home2-faq-ic::after { content: ""; position: absolute; background: var(--brand, #1d4ed8); border-radius: 2px; transition: transform 0.2s ease, opacity 0.2s ease; }
.ed-home .ed-home2-faq-ic::before { top: 7px; left: 0; right: 0; height: 2px; }
.ed-home .ed-home2-faq-ic::after { left: 7px; top: 0; bottom: 0; width: 2px; }
.ed-home .ed-home2-faq-item[open] .ed-home2-faq-ic::after { transform: scaleY(0); opacity: 0; }
.ed-home .ed-home2-faq-item p { margin: 0; padding: 0 20px 18px; color: #56555e; font-size: 0.95rem; line-height: 1.62; }

@media (max-width: 920px) {
  .ed-home .ed-home2-hiw { grid-template-columns: 1fr; gap: 26px; }
  .ed-home .ed-home2-hiw-media { aspect-ratio: 16 / 10; max-height: 360px; }
  body.fp-ed .ed-home .ed-home2-row.ed-quote.ed-quote-split { grid-template-columns: 1fr; }
  .ed-home .ed-home2-row.is-reverse .ed-quote-tx, .ed-home .ed-home2-row.is-reverse .ed-quote-media { order: 0; }
  .ed-home .ed-home2-row .ed-quote-media { aspect-ratio: 16 / 10; }
  .ed-home .ed-home2-pop { grid-template-columns: repeat(2, 1fr); }
  .ed-home .ed-home2-earn { grid-template-columns: 1fr; }
  .ed-home .ed-home2-earn-media { aspect-ratio: 16 / 10; max-height: 340px; order: 2; }
}
@media (max-width: 560px) {
  .ed-home .ed-home2-trust-in { gap: 10px 20px; }
  .ed-home .ed-home2-trust-item { font-size: 0.78rem; }
  .ed-home .ed-home2-pop { grid-template-columns: 1fr 1fr; gap: 18px; }
}

.fp-ed .fp-langsel { position: relative; display: inline-flex; align-items: center; max-width: 100%; }
.fp-ed .fp-langsel-globe { flex: 0 0 auto; width: 15px; height: 15px; opacity: 0.9; }
.fp-ed .fp-langsel-caret { flex: 0 0 auto; opacity: 0.6; }
.fp-ed .fp-langsel-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 36px;
  border: 0;
  background: transparent;
  color: var(--muted, #5b5b66);
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.01em;
  padding: 6px 10px;
  border-radius: 9px;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.15s ease, background-color 0.15s ease;
}
.fp-ed .fp-langsel-btn:hover { color: var(--ink, #12151b); background: var(--band, #f3f4f7); }
.fp-ed .fp-langsel-btn:focus-visible { outline: 2px solid var(--brand, #1d4ed8); outline-offset: 2px; }
.fp-ed .fp-langsel-code { font-variant: small-caps; }
/* dropdown menu of native language names */
.fp-ed .fp-langsel-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 200;
  min-width: 210px;
  max-width: calc(100vw - 28px);
  max-height: min(60vh, 360px);
  overflow: auto;
  padding: 6px;
  background: #fff;
  border: 1px solid var(--line, #e7e7ee);
  border-radius: 12px;
  box-shadow: 0 16px 44px rgba(15, 16, 22, 0.18);
}
.fp-ed .fp-langsel-menu[hidden] { display: none; }
.fp-ed .fp-langsel-item {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  color: var(--ink, #12151b);
  font-family: inherit;
  font-size: 0.86rem;
  font-weight: 500;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
}
.fp-ed .fp-langsel-item:hover { background: var(--band, #f3f4f7); }
.fp-ed .fp-langsel-item[aria-selected="true"] { color: var(--brand, #1d4ed8); font-weight: 700; }

.fp-ed .fp-langsel-float {
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 120;
  background: #fff;
  border: 1px solid var(--line, #e7e7ee);
  border-radius: 999px;
  box-shadow: 0 6px 22px rgba(15, 16, 22, 0.14);
}
.fp-ed .fp-langsel-float .fp-langsel-menu { top: auto; bottom: calc(100% + 6px); }
@media (max-width: 480px) {
  .fp-ed .fp-langsel-float { right: 10px; bottom: 10px; }
}

.fp-ed .ed-set-lang { display: flex; flex-direction: column; gap: 9px; align-items: flex-start; }
.fp-ed .ed-set-lang .fp-langsel { border: 1px solid var(--line, #e7e7ee); border-radius: 10px; background: #fff; }
.fp-ed .ed-set-lang .fp-langsel-btn { padding: 9px 13px; font-size: 0.9rem; color: var(--ink, #12151b); }
.fp-ed .ed-set-lang .fp-langsel-globe { width: 16px; height: 16px; }
.fp-ed .ed-set-lang .fp-langsel-menu { left: 0; right: auto; }

/* "Language" item inside the profile dropdown (a <button> styled like the <a> items) */
.fp-ed button.seller-profile-menu-item {
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  font-family: inherit;
  cursor: pointer;
}

.fp-langmodal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(14, 16, 22, 0.55);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  animation: fp-langmodal-in 0.16s ease;
}
@keyframes fp-langmodal-in { from { opacity: 0; } to { opacity: 1; } }
.fp-langmodal-card {
  width: 100%;
  max-width: 560px;
  max-height: min(82vh, 680px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 30px 80px rgba(15, 16, 22, 0.34);
  overflow: hidden;
}
.fp-langmodal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 12px;
}
.fp-langmodal-title {
  margin: 0;
  font-family: var(--display, inherit);
  font-size: 1.12rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink, #12151b);
}
.fp-langmodal-x {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line, #e7e7ee);
  border-radius: 10px;
  background: #fff;
  color: var(--muted, #5b5b66);
  cursor: pointer;
}
.fp-langmodal-x:hover { color: var(--ink, #12151b); background: var(--band, #f3f4f7); }
.fp-langmodal-search {
  margin: 0 20px 12px;
  padding: 11px 14px;
  border: 1px solid var(--line, #e7e7ee);
  border-radius: 12px;
  font: inherit;
  font-size: 0.92rem;
  color: var(--ink, #12151b);
  background: var(--band, #f6f7fa);
}
.fp-langmodal-search:focus { outline: 2px solid var(--brand, #1d4ed8); outline-offset: 1px; background: #fff; }
.fp-langmodal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 4px 20px 20px;
  overflow: auto;
}
.fp-langmodal-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  padding: 11px 13px;
  border: 1px solid var(--line, #e7e7ee);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.14s ease, background-color 0.14s ease;
}
.fp-langmodal-item:hover { background: var(--band, #f3f4f7); border-color: var(--line-2, #d9d9e3); }
.fp-langmodal-item[aria-selected="true"] { border-color: var(--brand, #1d4ed8); box-shadow: inset 0 0 0 1px var(--brand, #1d4ed8); }
.fp-langmodal-native { font-size: 0.95rem; font-weight: 600; color: var(--ink, #12151b); }
.fp-langmodal-en { font-size: 0.76rem; color: var(--muted, #6a6a76); }
@media (max-width: 520px) {
  .fp-langmodal { padding: 0; align-items: flex-end; }
  .fp-langmodal-card { max-width: none; max-height: 88vh; border-radius: 18px 18px 0 0; }
  .fp-langmodal-grid { grid-template-columns: 1fr; }
}

.fp-ed.ed-sys-page .ed-sys-card { position: relative; overflow: visible; }

.fp-ed .ed-sys-visual { position: relative; transition: border-color .2s ease, color .2s ease; }
.fp-ed .ed-sys-visual.is-anim { animation: edTxnPop .55s cubic-bezier(.2, 1.3, .45, 1) both; }
.fp-ed .ed-sys-visual.is-success,
.fp-ed .ed-sys-visual.is-fail,
.fp-ed .ed-sys-visual.is-review {
  width: 92px; height: 92px; border: 0; color: #fff;
}
.fp-ed .ed-sys-visual.is-success {
  background: linear-gradient(150deg, #34d399 0%, #10b981 46%, #059669 100%);
  box-shadow: 0 0 0 1px rgba(5,150,105,.2), 0 0 0 9px rgba(16,185,129,.12),
    0 2px 4px rgba(5,150,105,.35), 0 20px 38px -16px rgba(5,150,105,.62);
}
.fp-ed .ed-sys-visual.is-fail {
  background: linear-gradient(150deg, #fb7185 0%, #ef4444 46%, #dc2626 100%);
  box-shadow: 0 0 0 1px rgba(220,38,38,.2), 0 0 0 9px rgba(239,68,68,.12),
    0 2px 4px rgba(220,38,38,.35), 0 20px 38px -16px rgba(220,38,38,.6);
}
.fp-ed .ed-sys-visual.is-review {
  background: linear-gradient(150deg, color-mix(in srgb, var(--brand) 78%, #fff) 0%, var(--brand) 52%, color-mix(in srgb, var(--brand) 80%, #000) 100%);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--brand) 30%, transparent), 0 0 0 9px color-mix(in srgb, var(--brand) 12%, transparent),
    0 20px 38px -16px color-mix(in srgb, var(--brand) 55%, transparent);
}
.fp-ed .ed-sys-visual.is-success svg,
.fp-ed .ed-sys-visual.is-fail svg,
.fp-ed .ed-sys-visual.is-review svg { width: 44px; height: 44px; }
.fp-ed .ed-sys-visual.is-anim::after {
  content: ""; position: absolute; inset: -5px; border-radius: 50%;
  border: 2px solid currentColor; opacity: 0; animation: edTxnRing 1.15s .1s ease-out 2;
}
.fp-ed .ed-sys-visual.is-review.is-anim::before {
  content: ""; position: absolute; inset: -7px; border-radius: 50%;
  border: 2px dashed currentColor; opacity: .45; animation: edTxnSpin 3.2s linear infinite;
}
.fp-ed .ed-sys-visual.is-anim svg path,
.fp-ed .ed-sys-visual.is-anim svg polyline { stroke-dasharray: 52; stroke-dashoffset: 52; animation: edTxnDraw .7s .22s ease forwards; }

@keyframes edTxnPop { 0% { transform: scale(.4); opacity: 0; } 60% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); } }
@keyframes edTxnRing { 0% { transform: scale(.75); opacity: .55; } 100% { transform: scale(1.45); opacity: 0; } }
@keyframes edTxnDraw { to { stroke-dashoffset: 0; } }
@keyframes edTxnSpin { to { transform: rotate(360deg); } }

.fp-ed .ed-txn-amount {
  font-family: var(--serif); font-weight: 600; letter-spacing: -0.01em;
  font-size: clamp(2.3rem, 7vw, 3.4rem); line-height: 1; color: var(--ink);
  margin: 18px 0 4px; animation: edTxnRise .6s .15s cubic-bezier(.2, 1, .4, 1) both;
}
.fp-ed .ed-txn-amount-label { display: block; font-size: 0.82rem; color: var(--muted); letter-spacing: 0.01em; margin-bottom: 4px; }
@keyframes edTxnRise { 0% { transform: translateY(14px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }

.fp-ed .ed-txn-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 20px 0 4px; }
.fp-ed .ed-txn-meta-item { min-width: 130px; flex: 0 1 auto; border: 1px solid var(--line); border-radius: var(--r2); background: var(--band); padding: 11px 16px; text-align: center; }
.fp-ed .ed-txn-meta-item small { display: block; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--faint); margin-bottom: 3px; }
.fp-ed .ed-txn-meta-item b { font-family: var(--serif); font-weight: 600; font-size: 1.05rem; color: var(--ink); word-break: break-word; }

.fp-ed .ed-txn-timeline { display: flex; align-items: flex-start; justify-content: center; gap: 0; margin: 22px auto 6px; max-width: 420px; }
.fp-ed .ed-txn-tl-node { flex: 1 1 0; text-align: center; position: relative; padding-top: 30px; }
.fp-ed .ed-txn-tl-node::before { content: ""; position: absolute; top: 9px; left: 50%; width: 16px; height: 16px; border-radius: 50%; transform: translateX(-50%); border: 2px solid var(--line-2); background: var(--paper); z-index: 2; }
.fp-ed .ed-txn-tl-node::after { content: ""; position: absolute; top: 16px; left: 50%; width: 100%; height: 2px; background: var(--line); z-index: 1; }
.fp-ed .ed-txn-tl-node:last-child::after { display: none; }
.fp-ed .ed-txn-tl-node.is-done::before { border-color: #16a34a; background: #16a34a; }
.fp-ed .ed-txn-tl-node.is-active::before { border-color: #d97706; background: #d97706; animation: edTxnBlink 1.4s ease-in-out infinite; }
.fp-ed .ed-txn-tl-node.is-active::after,
.fp-ed .ed-txn-tl-node.is-done::after { background: linear-gradient(90deg, #16a34a, var(--line)); }
.fp-ed .ed-txn-tl-label { font-size: 0.78rem; color: var(--muted); line-height: 1.3; padding: 0 4px; }
.fp-ed .ed-txn-tl-node.is-active .ed-txn-tl-label { color: var(--ink); font-weight: 600; }
@keyframes edTxnBlink { 0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, #d97706 55%, transparent); } 50% { box-shadow: 0 0 0 6px color-mix(in srgb, #d97706 0%, transparent); } }

.fp-ed .ed-txn-confetti { position: absolute; top: 0; left: 0; right: 0; height: 0; pointer-events: none; z-index: 3; }
.fp-ed .ed-txn-confetti i { position: absolute; top: 36px; width: 8px; height: 12px; border-radius: 2px; opacity: 0; animation: edTxnConfetti 1.5s ease-in forwards; }
.fp-ed .ed-txn-confetti i:nth-child(1) { left: 12%; background: #16a34a; animation-delay: .05s; }
.fp-ed .ed-txn-confetti i:nth-child(2) { left: 24%; background: var(--brand); animation-delay: .18s; }
.fp-ed .ed-txn-confetti i:nth-child(3) { left: 36%; background: #d97706; animation-delay: 0s; }
.fp-ed .ed-txn-confetti i:nth-child(4) { left: 48%; background: #16a34a; animation-delay: .24s; }
.fp-ed .ed-txn-confetti i:nth-child(5) { left: 60%; background: var(--brand); animation-delay: .1s; }
.fp-ed .ed-txn-confetti i:nth-child(6) { left: 72%; background: #d97706; animation-delay: .3s; }
.fp-ed .ed-txn-confetti i:nth-child(7) { left: 84%; background: #16a34a; animation-delay: .14s; }
.fp-ed .ed-txn-confetti i:nth-child(8) { left: 30%; background: var(--brand); animation-delay: .36s; }
.fp-ed .ed-txn-confetti i:nth-child(9) { left: 66%; background: #16a34a; animation-delay: .42s; }
.fp-ed .ed-txn-confetti i:nth-child(10) { left: 54%; background: #d97706; animation-delay: .2s; }
@keyframes edTxnConfetti { 0% { transform: translateY(0) rotate(0); opacity: 0; } 12% { opacity: 1; } 100% { transform: translateY(150px) rotate(320deg); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .fp-ed .ed-sys-visual.is-anim,
  .fp-ed .ed-sys-visual.is-anim::after,
  .fp-ed .ed-sys-visual.is-review.is-anim::before,
  .fp-ed .ed-sys-visual.is-anim svg path,
  .fp-ed .ed-sys-visual.is-anim svg polyline,
  .fp-ed .ed-txn-amount,
  .fp-ed .ed-txn-tl-node.is-active::before,
  .fp-ed .ed-txn-confetti i { animation: none !important; opacity: 1; stroke-dashoffset: 0; transform: none; }
  .fp-ed .ed-txn-confetti { display: none; }
}

.fp-ed.fp-home .ed-home2-faq-item { border-radius: 20px; }
.fp-ed.fp-home .ed-home2-faq-item:not([open]) { border-color: color-mix(in srgb, var(--line) 60%, transparent); box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 10px 24px -16px rgba(16,16,24,0.10), 0 30px 56px -34px rgba(16,16,24,0.10); }
.fp-ed.fp-home .ed-home2-faq-item summary { padding: 19px 22px; }
/* trust stat tiles → clean white Apple cards (matches the My Jobs stat cards) */
.fp-ed.fp-home .ed-home2-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.fp-ed.fp-home .ed-home2-stats .ed-stat { padding: 26px 22px; border: 1px solid color-mix(in srgb, var(--line) 55%, transparent); border-radius: 20px; background: #fff; box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 10px 24px -14px rgba(16,16,24,0.10), 0 30px 60px -30px rgba(16,16,24,0.10); transition: transform 0.32s cubic-bezier(0.22,1,0.36,1), box-shadow 0.32s ease; }
.fp-ed.fp-home .ed-home2-stats .ed-stat strong { font-size: clamp(2rem, 1.4rem + 2vw, 2.7rem); }
.fp-ed.fp-home .ed-home2-stats .ed-stat:hover { transform: translateY(-4px); box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 16px 30px -14px rgba(16,16,24,0.14), 0 40px 70px -30px rgba(16,16,24,0.14); }
/* softer Apple corners on the feature photos */
.fp-ed.fp-home .ed-home2-hiw-media, .fp-ed.fp-home .ed-home2-earn-media { border-radius: 24px; }
.fp-ed.fp-home .ed-home2-hire2-media { border-radius: 22px; }
@media (max-width: 720px) {
  .fp-ed.fp-home .ed-home2-stats { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}

body.fp-ed:not(.fp-guide) { --r2: 18px; }

/* b — browse / clickable cards → layered diffuse shadow + gentle Apple lift */
body.fp-ed:not(.fp-guide) .ed-card:not(.ed-tpro-tile),
body.fp-ed:not(.fp-guide) .ed-cat,
body.fp-ed:not(.fp-guide) .ed-job-card {
  box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 12px 28px -18px rgba(16,16,24,0.10), 0 32px 60px -34px rgba(16,16,24,0.12);
  transition: transform 0.32s cubic-bezier(0.22,1,0.36,1), box-shadow 0.32s cubic-bezier(0.22,1,0.36,1), border-color 0.3s ease;
}
body.fp-ed:not(.fp-guide) .ed-card:not(.ed-tpro-tile):hover,
body.fp-ed:not(.fp-guide) .ed-cat:hover,
body.fp-ed:not(.fp-guide) .ed-job-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 18px 34px -18px rgba(16,16,24,0.14), 0 44px 76px -34px rgba(16,16,24,0.16);
}
/* talent pro card */
body.fp-ed:not(.fp-guide) .ed-tpro {
  box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 12px 28px -18px rgba(16,16,24,0.10), 0 32px 60px -34px rgba(16,16,24,0.11);
  transition: transform 0.32s cubic-bezier(0.22,1,0.36,1), box-shadow 0.32s cubic-bezier(0.22,1,0.36,1);
}
body.fp-ed:not(.fp-guide) .ed-tpro:hover {
  transform: translateY(-4px);
  box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 18px 34px -18px rgba(16,16,24,0.13), 0 44px 76px -34px rgba(16,16,24,0.15);
}
/* review cards */
body.fp-ed:not(.fp-guide) .ed-review {
  box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 10px 24px -18px rgba(16,16,24,0.09), 0 28px 52px -34px rgba(16,16,24,0.10);
  transition: transform 0.3s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s cubic-bezier(0.22,1,0.36,1);
}
body.fp-ed:not(.fp-guide) .ed-review:hover {
  transform: translateY(-3px);
  box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 16px 30px -18px rgba(16,16,24,0.13), 0 40px 70px -34px rgba(16,16,24,0.14);
}
body.fp-ed:not(.fp-guide) .ed-profile-stat,
body.fp-ed:not(.fp-guide) .ed-metric,
body.fp-ed:not(.fp-guide) .ed-wsx,
body.fp-ed:not(.fp-guide) .ed-wsx-metric,
body.fp-ed:not(.fp-guide) .ed-quick,
body.fp-ed:not(.fp-guide) .ed-rc-card,
body.fp-ed:not(.fp-guide) .ed-panel,
body.fp-ed:not(.fp-guide) .messages-conversation-card {
  border-radius: 16px;
  box-shadow: 0 1px 1px rgba(16,16,24,0.02), 0 8px 22px -16px rgba(16,16,24,0.08), 0 28px 54px -34px rgba(16,16,24,0.09);
}
body.fp-ed:not(.fp-guide) .ed-pkg { box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 16px 34px -20px rgba(16,16,24,0.12), 0 42px 76px -36px rgba(16,16,24,0.14); }

/* c — Vivid keeps its purple card-hover accent (Apple-tuned, layered) */
.fp-ed[data-spx-theme="vivid"]:not(.fp-guide) .ed-card:not(.ed-tpro-tile):hover,
.fp-ed[data-spx-theme="vivid"]:not(.fp-guide) .ed-cat:hover {
  box-shadow: 0 1px 1px rgba(16,16,24,0.03), 0 18px 34px -18px rgba(37,99,235,0.20), 0 44px 76px -34px rgba(37,99,235,0.18);
  border-color: var(--brand);
}

/* d — reduced-motion: drop the new hover transforms/transitions */
@media (prefers-reduced-motion: reduce) {
  body.fp-ed:not(.fp-guide) .ed-card,
  body.fp-ed:not(.fp-guide) .ed-cat,
  body.fp-ed:not(.fp-guide) .ed-job-card,
  body.fp-ed:not(.fp-guide) .ed-tpro,
  body.fp-ed:not(.fp-guide) .ed-review { transition: none; }
  body.fp-ed:not(.fp-guide) .ed-card:hover,
  body.fp-ed:not(.fp-guide) .ed-cat:hover,
  body.fp-ed:not(.fp-guide) .ed-job-card:hover,
  body.fp-ed:not(.fp-guide) .ed-tpro:hover,
  body.fp-ed:not(.fp-guide) .ed-review:hover { transform: none; }
}

body.fp-ed:not(.fp-guide) { stroke-linecap: round; stroke-linejoin: round; }
body.fp-ed:not(.fp-guide) .fp-badge,
body.fp-ed:not(.fp-guide) .fp-badge-row,
body.fp-ed:not(.fp-guide) .fp-badge-grid,
body.fp-ed:not(.fp-guide) .ed-tpro-badge,
body.fp-ed:not(.fp-guide) .fp-level,
body.fp-ed:not(.fp-guide) .ed-verified,
body.fp-ed:not(.fp-guide) .fp-kyc-tick,
body.fp-ed:not(.fp-guide) .ed-card-honors,
body.fp-ed:not(.fp-guide) .spx-hero-honors {
  stroke-linecap: butt;
  stroke-linejoin: miter;
}

body.fp-ed {
  --display: "Plus Jakarta Sans", "Helvetica Neue", Arial, sans-serif;
  --body:    "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --serif:   "Fraunces", Georgia, "Times New Roman", serif;
  --special: "Bricolage Grotesque", "Plus Jakarta Sans", sans-serif;
  font-family: var(--body);
}

body.fp-ed .ed-home-hero-art { display: none !important; }
body.fp-ed .ed-home-hero-grid { grid-template-columns: 1fr !important; }
body.fp-ed .ed-home-hero-grid .ed-hero-in { max-width: 720px; }

/* luxury pricing CTA — kept while .ed-price-card markup is rebuilt */
body.fp-ed:not(.fp-guide) .ed-price-card.is-luxury .ed-btn-fill { background: #fff; color: #0c1e44; border-color: #fff; }
body.fp-ed:not(.fp-guide) .ed-price-card.is-luxury .ed-btn-fill:hover { background: #e3ecff; color: #0c1e44; border-color: #e3ecff; }

.fp-ed .ed-price-badge-fpi .fp-badge { box-shadow: 0 6px 16px rgba(37, 99, 235, 0.4); }


.fp-ed .messages-hireoffer-card .messages-contract-eyebrow { gap: 7px; }
.fp-ed .messages-ho-funded {
  display: inline-flex; align-items: center; gap: 4px; margin-left: auto;
  font-size: 10.5px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase;
  padding: 4px 9px; border-radius: 999px; background: #f1f5f9; color: #64748b;
}
.fp-ed .messages-ho-funded svg { width: 12px; height: 12px; }
.fp-ed .messages-ho-funded.is-live { background: #dcf5e7; color: #15803d; }

body.fp-roleswitch-open { overflow: hidden; }
.fp-roleswitch { position: fixed; inset: 0; z-index: 4000; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(16, 19, 28, 0.62); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif; animation: fp-roleswitch-fade 0.2s ease-out both; }
.fp-roleswitch-card { width: min(460px, 100%); background: #ffffff; border: 1px solid rgba(15, 23, 42, 0.08); border-radius: 22px; box-shadow: 0 30px 80px -24px rgba(16, 24, 40, 0.55); padding: 30px 28px 26px; text-align: center; animation: fp-roleswitch-rise 0.24s cubic-bezier(0.18, 0.74, 0.3, 1) both; }
.fp-roleswitch-ic { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 16px; background: #eef2fe; color: #2f5bea; margin-bottom: 16px; }
.fp-roleswitch-ic svg { width: 28px; height: 28px; }
.fp-roleswitch-kicker { display: block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #8a93a8; margin-bottom: 8px; }
.fp-roleswitch-title { margin: 0 0 10px; font-size: 1.4rem; font-weight: 800; letter-spacing: -0.015em; color: #131722; }
.fp-roleswitch-copy { margin: 0 auto 22px; max-width: 38ch; font-size: 0.95rem; line-height: 1.6; color: #4a5366; }
.fp-roleswitch-copy b { color: #131722; font-weight: 700; }
.fp-roleswitch-actions { display: flex; flex-direction: column; gap: 10px; }
.fp-roleswitch-go { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border: 0; border-radius: 13px; background: linear-gradient(180deg, #3b6bf0, #2f5bea); color: #fff; font-family: inherit; font-size: 0.95rem; font-weight: 700; cursor: pointer; box-shadow: 0 10px 24px -10px rgba(47, 91, 234, 0.6); transition: filter 0.16s, transform 0.12s; }
.fp-roleswitch-go:hover { filter: brightness(1.05); }
.fp-roleswitch-go:active { transform: scale(0.985); }
.fp-roleswitch-go:disabled { opacity: 0.7; cursor: default; }
.fp-roleswitch-go:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(47, 91, 234, 0.4); }
.fp-roleswitch-stay { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: 13px; border: 1px solid rgba(15, 23, 42, 0.14); background: #fff; color: #4a5366; font-size: 0.9rem; font-weight: 600; text-decoration: none; transition: background 0.15s, border-color 0.15s; }
.fp-roleswitch-stay:hover { background: #f5f7fb; border-color: rgba(15, 23, 42, 0.22); color: #131722; }
.fp-roleswitch-stay:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(47, 91, 234, 0.4); }
@keyframes fp-roleswitch-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes fp-roleswitch-rise { from { opacity: 0; transform: translateY(14px) scale(0.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 420px) { .fp-roleswitch { padding: 0; align-items: flex-end; } .fp-roleswitch-card { width: 100%; border-radius: 22px 22px 0 0; padding: 26px 20px calc(20px + env(safe-area-inset-bottom, 0px)); } }
@media (prefers-reduced-motion: reduce) { .fp-roleswitch, .fp-roleswitch-card { animation: none !important; } }

.fp-ed.ac-page { --ac-accent: var(--brand, #2563eb); --ac-accent-soft: color-mix(in srgb, var(--brand, #2563eb) 9%, transparent); }

/* container — trim the generous top/bottom padding */
.fp-ed.ac-page main > .ed-container { padding-top: 22px !important; padding-bottom: 70px !important; }
.fp-ed.ac-page .ed-crumb { margin-bottom: 14px; }

/* header — smaller H1, accented order kicker, tighter party row */
.fp-ed.ac-page .ed-oc-head { gap: 16px 20px; }
.fp-ed.ac-page .ed-oc-head h1.ed-h2 { font-size: clamp(1.55rem, 1.05rem + 1.7vw, 2.1rem); line-height: 1.1; letter-spacing: -0.022em; margin-top: 10px; }
.fp-ed.ac-page .ed-oc-head .ed-kicker { color: var(--ac-accent); }
.fp-ed.ac-page .ed-oc-head .ed-kicker::before { background: var(--ac-accent); }
.fp-ed.ac-page .ed-oc-parties { margin-top: 15px; gap: 13px; }
.fp-ed.ac-page .ed-oc-av { box-shadow: 0 3px 10px -4px rgba(16, 24, 40, 0.35); }
.fp-ed.ac-page .ed-oc-due { background: var(--paper); box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05); }

/* stepper — brand-accented nodes/connectors, elevated, tighter */
.fp-ed.ac-page [data-ac-progress] .ed-oc-steps { margin-top: 18px; padding: 20px 20px 18px; border-radius: 16px; border-color: var(--line); box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05), 0 14px 30px -26px rgba(16, 24, 40, 0.4); }
.fp-ed.ac-page .ed-oc-step.is-done::before, .fp-ed.ac-page .ed-oc-step.is-current::before { background: var(--ac-accent); }
.fp-ed.ac-page .ed-oc-step.is-done .ed-oc-step-node { background: var(--ac-accent); border-color: var(--ac-accent); box-shadow: 0 3px 8px -3px var(--ac-accent); }
.fp-ed.ac-page .ed-oc-step.is-current .ed-oc-step-node { border-color: var(--ac-accent); color: var(--ac-accent); box-shadow: 0 0 0 4px var(--ac-accent-soft); }
.fp-ed.ac-page .ed-oc-step.is-current .ed-oc-step-label { color: var(--ac-accent); }

/* main cards — premium surface + tighter rhythm */
.fp-ed.ac-page [data-ac-main] .ed-oc-card { border-radius: 16px; padding: 22px; margin-top: 14px; border-color: var(--line); box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04); }
.fp-ed.ac-page [data-ac-main] .ed-oc-card:first-child { margin-top: 18px; }

/* section titles — flex + leading icon chip (icon injected by JS) */
.fp-ed.ac-page .ed-oc-title { display: flex; align-items: center; font-size: 1.05rem; letter-spacing: -0.012em; margin-bottom: 14px; }
.fp-ed.ac-page .ed-oc-tic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; margin-right: 11px; flex: none; border-radius: 9px; background: var(--ac-accent-soft); color: var(--ac-accent); }
.fp-ed.ac-page .ed-oc-tic svg { width: 16px; height: 16px; }

/* compact, icon-led empty state (replaces lone muted lines) */
.fp-ed.ac-page .ed-oc-empty { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px dashed var(--line-2); border-radius: 12px; background: color-mix(in srgb, var(--band) 45%, var(--paper)); }
.fp-ed.ac-page .ed-oc-empty svg { width: 20px; height: 20px; flex: none; color: var(--muted); }
.fp-ed.ac-page .ed-oc-empty p { margin: 0; font-size: 0.88rem; color: var(--muted); line-height: 1.45; }

/* selected-package card — subtle branded lift */
.fp-ed.ac-page .ed-oc-pkg { border-radius: 14px; background: linear-gradient(180deg, color-mix(in srgb, var(--ac-accent) 4%, var(--paper)), var(--band)); }

/* delivery / add-on / request cards — match card radius */
.fp-ed.ac-page .ed-oc-deliv-item, .fp-ed.ac-page .ed-oc-request, .fp-ed.ac-page .ed-oc-addon { border-radius: 13px; }

/* ---- RAIL: premium order-summary ---- */
.fp-ed.ac-page [data-ac-actions] { top: 84px; border-radius: 18px; }
.fp-ed.ac-page [data-ac-actions] .ed-pkg-body { padding: 22px; }
/* value header — stacked, divider, uppercase label */
.fp-ed.ac-page [data-ac-actions] .ed-pkg-price { flex-direction: column; align-items: flex-start; gap: 3px; padding-bottom: 16px; margin-bottom: 2px; border-bottom: 1px solid var(--line); }
.fp-ed.ac-page [data-ac-actions] .ed-pkg-price strong { font-size: 2.3rem; letter-spacing: -0.02em; }
.fp-ed.ac-page [data-ac-actions] .ed-pkg-price span { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; color: var(--muted); }
/* meta rows — tighter, no leading line */
.fp-ed.ac-page .ed-oc-summary { margin: 2px 0 14px; border-top: 0; }
.fp-ed.ac-page .ed-oc-srow { padding: 9px 0; }
.fp-ed.ac-page .ed-oc-srow:first-child { border-top: 0; }
/* payment-protection block — premium, accented, pill status */
.fp-ed.ac-page .ed-oc-pay { border-radius: 14px; padding: 15px 16px; border-color: var(--line); background: linear-gradient(180deg, color-mix(in srgb, var(--ac-accent) 5%, var(--paper)), var(--band)); }
.fp-ed.ac-page .ed-oc-pay-status { margin-top: 12px; padding: 9px 12px; border-radius: 10px; background: var(--paper); border: 1px solid var(--line); }
.fp-ed.ac-page .ed-oc-pay-status.is-clear { background: #f0faf3; border-color: #bfe3c9; }
.fp-ed.ac-page .ed-oc-pay-status.is-hold { background: #fbf6e9; border-color: #ecd9a8; }
.fp-ed.ac-page .ed-oc-pay-status.is-refund { background: #fdf3f2; border-color: #e6b8b6; }
.fp-ed.ac-page [data-ac-actions] .ed-pkg-desc { margin-top: 16px; font-size: 0.86rem; line-height: 1.5; }

/* hourly mode — round the strip + weekly cards to match the new rhythm */
.fp-ed.ac-page .ed-oc-hr-strip { border-radius: 16px; }
.fp-ed.ac-page .ed-oc-hr-wstats > div, .fp-ed.ac-page .ed-oc-hr-wrow { border-radius: 13px; }

@media (max-width: 700px) {
  .fp-ed.ac-page [data-ac-actions] { top: 0; }
  .fp-ed.ac-page .ed-oc-head h1.ed-h2 { font-size: clamp(1.4rem, 5vw, 1.7rem); }
}

.fp-ed.ac-page .ed-oc-hr-strip {
  position: relative;
  margin-top: 18px;                 /* was flush against the party row */
  gap: 20px;
  padding: 16px 20px 16px 24px;     /* extra left for the accent rail */
  overflow: hidden;
  border-color: color-mix(in srgb, #0e7490 24%, var(--line));
  background:
    linear-gradient(180deg,
      color-mix(in srgb, #0e7490 9%, var(--paper)),
      color-mix(in srgb, #0e7490 3%, var(--paper)) 64%,
      var(--paper));
  box-shadow:
    0 1px 0 color-mix(in srgb, #ffffff 60%, transparent) inset,
    0 6px 20px -14px color-mix(in srgb, #0e7490 60%, transparent);
}
.fp-ed.ac-page .ed-oc-hr-strip::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(180deg, #0e7490, #0e9f6e);
}
.fp-ed.ac-page .ed-oc-hr-strip-main { gap: 14px; min-width: 0; }
.fp-ed.ac-page .ed-oc-hr-strip-main svg {
  width: 44px; height: 44px; padding: 9px; box-sizing: border-box; border-radius: 12px; color: #0e7490;
  background: linear-gradient(180deg, color-mix(in srgb, #0e7490 18%, var(--paper)), color-mix(in srgb, #0e7490 10%, var(--paper)));
  box-shadow: 0 0 0 1px color-mix(in srgb, #0e7490 26%, transparent) inset, 0 4px 12px -8px color-mix(in srgb, #0e7490 70%, transparent);
}
.fp-ed.ac-page .ed-oc-hr-strip-k {
  font-size: 0.68rem; font-weight: 600; letter-spacing: 0.08em; margin-bottom: 1px;
  color: color-mix(in srgb, #0e7490 62%, var(--muted));
}
.fp-ed.ac-page .ed-oc-hr-strip-main strong {
  display: block; font-family: var(--serif); font-size: 1.18rem; font-weight: 600; line-height: 1.15; color: var(--ink); letter-spacing: -0.01em;
}
.fp-ed.ac-page .ed-oc-hr-strip-stats { gap: 0; align-items: stretch; }
.fp-ed.ac-page .ed-oc-hr-strip-stats > span {
  justify-content: center; gap: 2px; padding: 2px 18px; font-size: 0.7rem; letter-spacing: 0.04em; text-transform: uppercase;
}
.fp-ed.ac-page .ed-oc-hr-strip-stats > span:not(:first-child) { border-left: 1px solid color-mix(in srgb, #0e7490 16%, var(--line)); }
.fp-ed.ac-page .ed-oc-hr-strip-stats > span b { font-size: 1.16rem; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
/* money cells (billed/earned) tinted green */
.fp-ed.ac-page .ed-oc-hr-strip-stats > span:nth-of-type(2) b,
.fp-ed.ac-page .ed-oc-hr-strip-stats > span:nth-of-type(3) b { color: #1f7a3d; }
.fp-ed.ac-page .ed-oc-hr-strip-stats > span.ed-pill {
  align-self: center; align-items: center; gap: 7px; padding: 6px 13px; margin-left: 6px;
  border: 0; border-radius: 999px; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.02em; text-transform: none;
  color: #0c5b4a; background: color-mix(in srgb, #0e9f6e 16%, var(--paper));
  box-shadow: 0 0 0 1px color-mix(in srgb, #0e9f6e 30%, transparent) inset;
}
.fp-ed.ac-page .ed-oc-hr-strip-stats > span.ed-pill::before {
  content: ""; width: 7px; height: 7px; border-radius: 999px; flex: 0 0 auto; background: #0e9f6e;
  box-shadow: 0 0 0 3px color-mix(in srgb, #0e9f6e 22%, transparent);
}
@media (max-width: 700px) {
  .fp-ed.ac-page .ed-oc-hr-strip { flex-direction: column; align-items: stretch; gap: 0; padding: 14px 16px 14px 20px; }
  .fp-ed.ac-page .ed-oc-hr-strip-main svg { width: 40px; height: 40px; padding: 8px; }
  .fp-ed.ac-page .ed-oc-hr-strip-stats {
    gap: 16px; width: 100%; margin-top: 12px; padding-top: 12px; flex-wrap: wrap;
    border-top: 1px solid color-mix(in srgb, #0e7490 14%, var(--line));
  }
  .fp-ed.ac-page .ed-oc-hr-strip-stats > span { padding: 0; align-items: flex-start; }
  .fp-ed.ac-page .ed-oc-hr-strip-stats > span:not(:first-child) { border-left: 0; }
  .fp-ed.ac-page .ed-oc-hr-strip-stats > span.ed-pill { margin-left: auto; padding: 6px 13px; align-items: center; }
}

@media (max-width: 1000px) {
  .ed-header.is-open .ed-nav-links,
  body.fp-ed .navigation.is-open {
    max-height: calc(100vh - 72px);
    max-height: calc(100dvh - 72px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
}
