/* ============================================================
   /launch — coin launch page. Built on assets/theme.css tokens.
   ============================================================ */
body{ background:#050507; }
/* The dialogs live outside main.lp, so they get the page tokens too. */
.lp,.lp-dialog,.launch-account-dialog{ --raised:#1c1c23; --ok:var(--phos); --warn:#ffbe65; --bad:#ff8a7a; }
.lp{ max-width:1180px; margin:0 auto; padding:0 clamp(16px,4vw,44px) 70px; }
.lp a{ color:inherit; }
.lp h2{ font-family:var(--font-disp); font-weight:400; font-size:20px; text-transform:uppercase; letter-spacing:.01em; margin:0 0 12px; }
.field-note{ margin:8px 0 0; font-size:12.5px; line-height:1.55; color:var(--grey); }
.field-note[data-state="error"]{ color:var(--bad); }
.field-note[data-state="ok"]{ color:var(--ok); }
.optional{ font-size:11px; color:var(--grey); font-weight:500; text-transform:none; letter-spacing:0; }

/* ---------- buttons ---------- */
.lp-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 20px;
  border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--white);
  font:inherit; font-size:14px; font-weight:700; text-decoration:none; cursor:pointer; transition:background .15s, border-color .15s, box-shadow .15s; }
.lp-btn.primary{ background:var(--phos); border-color:var(--phos); color:#04140c; }
.lp-btn.primary:hover:not(:disabled){ box-shadow:0 0 26px rgba(25,251,155,.4); }
.lp-btn.ghost:hover:not(:disabled){ border-color:#3a3a46; background:#ffffff0a; }
.lp-btn:disabled{ opacity:.45; cursor:not-allowed; }
.lp-wide{ width:100%; }
.lp-textbtn{ border:0; background:transparent; color:var(--phos); font:inherit; font-size:13px; font-weight:700; padding:6px 0; cursor:pointer; }
.lp-textbtn:disabled{ opacity:.45; cursor:not-allowed; }
.lp-link{ color:var(--phos) !important; font-size:13px; font-weight:700; text-decoration:none; }
.lp-link:hover{ text-decoration:underline; }
.lp-btn:focus-visible,.lp-textbtn:focus-visible,.lp-link:focus-visible,.lp-account:focus-visible,.lp-seg button:focus-visible,.lp-draft:focus-visible,.lp-close:focus-visible,
.coin-venue-card:focus-visible,.account-secondary:focus-visible,.account-close:focus-visible{ outline:2px solid var(--phos); outline-offset:2px; }

/* ---------- head + status ---------- */
.lp-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px 24px; flex-wrap:wrap; padding:clamp(100px,14vh,140px) 0 6px; }
.lp-head-copy{ min-width:0; flex:1 1 420px; }
.lp-head .k{ font-family:var(--font-vhs); font-size:18px; color:var(--amber); letter-spacing:.1em; }
.lp-head h1{ font-family:var(--font-disp); font-size:clamp(34px,6vw,64px); text-transform:uppercase; line-height:.94; margin:8px 0 10px; }
.lp-head p{ color:var(--grey); font-size:14.5px; max-width:640px; line-height:1.6; }
.lp-account{ flex:none; min-height:42px; padding:9px 18px; border-radius:999px; border:1px solid #19fb9b66; background:#0d1611; color:var(--white); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.lp-account:hover{ border-color:var(--phos); }

.lp-status{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:22px; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:var(--panel); }
.lp-status p{ flex:1 1 280px; min-width:0; margin:0; font-size:13.5px; line-height:1.55; color:var(--grey); }
.lp-status strong{ color:var(--white); margin-right:4px; }
.lp-dot{ width:9px; height:9px; flex:none; border-radius:50%; background:var(--grey); }
.lp-status[data-state="ready"]{ border-color:#19fb9b55; }
.lp-status[data-state="ready"] .lp-dot{ background:var(--phos); box-shadow:0 0 10px var(--phos); animation:lp-pulse 2s ease-in-out infinite; }
.lp-status[data-state="ready"] strong{ color:var(--phos); }
.lp-status[data-state="paused"],.lp-status[data-state="error"],.lp-status[data-state="unknown"]{ border-color:#ffbe6566; background:linear-gradient(90deg,#ffbe6512,transparent 60%),var(--panel); }
.lp-status[data-state="paused"] .lp-dot,.lp-status[data-state="error"] .lp-dot,.lp-status[data-state="unknown"] .lp-dot{ background:var(--warn); }
.lp-status[data-state="paused"] strong,.lp-status[data-state="error"] strong,.lp-status[data-state="unknown"] strong{ color:var(--warn); }
.lp-status[data-state="signed-out"] .lp-dot{ background:var(--purple); }
.lp-status .lp-btn{ min-height:38px; padding:7px 16px; font-size:13px; }
@keyframes lp-pulse{ 50%{ opacity:.35; } }

/* ---------- form ---------- */
.lp-grid{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:16px; margin-top:16px; align-items:start; }
.lp-card{ min-width:0; border:1px solid var(--line); border-radius:16px; background:var(--panel); padding:18px; }
.lp-art{ position:relative; aspect-ratio:1; border-radius:14px; overflow:hidden; background:radial-gradient(120% 120% at 0% 0%,#19fb9b14,transparent 60%),radial-gradient(120% 120% at 100% 100%,#9945ff1f,transparent 60%),var(--card); border:1px dashed #33333d; margin-bottom:12px; }
.lp-art[data-drag="true"]{ border-color:var(--phos); }
.lp-art img{ display:block; width:100%; height:100%; object-fit:cover; }
.lp-art-empty{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:20px; text-align:center; color:var(--grey); }
.lp-art-empty span{ font-size:30px; color:var(--phos); }
.lp-art-empty strong{ color:var(--white); font-size:16px; }
.lp-art-empty p{ font-size:13px; max-width:240px; line-height:1.5; }
[hidden]{ display:none !important; }

.lp-pair{ display:flex; align-items:center; gap:12px; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid var(--line); }
.lp-pair-mark{ width:40px; height:40px; flex:none; display:grid; place-items:center; border-radius:12px; background:#19fb9b1a; color:var(--phos); font-family:var(--font-disp); font-size:18px; }
.lp-pair div{ min-width:0; flex:1; }
.lp-pair div span{ display:block; font-size:10.5px; letter-spacing:.12em; color:var(--grey); }
.lp-pair div strong{ font-family:var(--font-disp); font-weight:400; font-size:18px; letter-spacing:.02em; }
.lp-chip{ font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; padding:3px 9px; border-radius:999px; background:#9945ff26; color:#c49bff; }
.lp-details label{ display:block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--grey); margin:0 0 14px; }
.lp-fields{ display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:12px; }
.lp-details input,.lp-details textarea,.lp-dialog input[type="text"],.lp-dialog input[type="number"]{ display:block; width:100%; margin-top:6px; padding:12px 13px; border:1px solid var(--line); border-radius:10px;
  background:var(--black); color:var(--white); font:inherit; font-size:16px; font-weight:500; letter-spacing:0; text-transform:none; }
.lp-details textarea{ resize:vertical; min-height:84px; line-height:1.5; }
.lp-details input:focus,.lp-details textarea:focus,.lp-dialog input:focus{ outline:none; border-color:var(--phos); }
.lp-details input:disabled,.lp-details textarea:disabled{ opacity:.55; }
#launch-symbol{ text-transform:uppercase; }
.lp-address{ border:1px solid var(--line); border-radius:12px; padding:12px 14px 14px; margin:0 0 14px; min-width:0; }
.lp-address legend{ padding:0 6px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--grey); }
.lp-seg{ display:flex; border:1px solid var(--line); border-radius:999px; overflow:hidden; }
.lp-seg button{ flex:1 1 0; min-width:0; min-height:40px; border:0; background:transparent; color:var(--grey); font:inherit; font-size:13px; padding:8px 10px; cursor:pointer; }
.lp-seg button[aria-pressed="true"]{ background:var(--raised); color:var(--white); box-shadow:inset 0 0 0 1px #19fb9b66; }
.lp-seg button:disabled{ opacity:.45; cursor:not-allowed; }
.lp-mini{ display:flex; align-items:center; justify-content:center; gap:12px; margin:0 0 14px; padding:12px; border-radius:12px; background:var(--card); font-size:13px; letter-spacing:.06em; }
.lp-mini span:first-child{ max-width:45%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; }
.lp-mini strong{ color:var(--phos); }
.lp-draft-actions{ display:flex; flex-wrap:wrap; gap:4px 18px; margin-top:14px; }
.lp-tech{ margin-top:14px; font-size:12.5px; color:var(--grey); }
.lp-tech summary{ cursor:pointer; }
.lp-tech p{ margin:8px 0 4px; }
.lp-tech code{ display:block; padding:8px 10px; border-radius:8px; background:var(--black); overflow-wrap:anywhere; font-size:12px; }

/* ---------- drafts + launches ---------- */
.lp-drafts,.lp-orders{ margin-top:16px; }
.lp-draft-list,.lp-order-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
.lp-draft-list > li,.lp-order-list > li{ min-width:0; }
.lp-draft-list{ grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr)); }
.lp-draft{ display:flex; align-items:center; gap:10px; width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:12px; background:var(--card); color:var(--white); font:inherit; text-align:left; cursor:pointer; }
.lp-draft:hover:not(:disabled){ border-color:#3a3a46; }
.lp-draft:disabled{ opacity:.5; cursor:not-allowed; }
.lp-draft-thumb,.lp-order-art{ width:40px; height:40px; flex:none; border-radius:10px; overflow:hidden; display:grid; place-items:center; background:var(--raised); font-size:11px; font-weight:700; color:var(--grey); }
.lp-draft-thumb img,.lp-order-art img{ width:100%; height:100%; object-fit:cover; display:block; }
.lp-draft-copy{ min-width:0; display:flex; flex-direction:column; }
.lp-draft-copy strong,.lp-draft-copy span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lp-draft-copy span{ font-size:12px; color:var(--grey); }
.lp-orders-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.lp-orders-head h2{ margin:0; }
.lp-orders > .field-note{ margin:6px 0 12px; }
.lp-order{ display:flex; align-items:flex-start; gap:12px; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.lp-order[data-status="completed"]{ border-color:#19fb9b40; }
.lp-order[data-status="needs_attention"]{ border-color:#ffbe6566; }
.lp-order-copy{ min-width:0; flex:1; overflow-wrap:anywhere; }
.lp-order-copy h3{ font-size:15px; margin:0; overflow-wrap:anywhere; }
.lp-order-status{ margin:2px 0 0; font-size:12.5px; color:var(--grey); }
.lp-order-fees p{ margin:6px 0 0; font-size:13px; }
.lp-order-fees .lp-btn{ margin-top:8px; min-height:38px; padding:7px 14px; font-size:13px; }
.lp-order-actions{ display:flex; flex-direction:column; align-items:flex-end; gap:6px; flex:none; }
.lp-order-actions .lp-btn{ min-height:38px; padding:7px 14px; font-size:13px; }
.lp-closed{ margin-top:12px; }
.lp-closed > summary{ cursor:pointer; font-size:13px; color:var(--grey); }
.lp-closed > .field-note{ margin:6px 0 10px; }
.lp-order[data-status="cancelled"],.lp-order[data-status="expired"]{ opacity:.85; }

/* ---------- how + fine print ---------- */
.lp-how{ margin-top:26px; }
.lp-how ol{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; counter-reset:step; }
.lp-how li{ counter-increment:step; padding:14px; border:1px solid var(--line); border-radius:14px; background:var(--panel); font-size:13px; line-height:1.55; color:var(--grey); }
.lp-how li::before{ content:counter(step,decimal-leading-zero); display:block; font-family:var(--font-vhs); font-size:20px; color:var(--amber); }
.lp-how li strong{ display:block; color:var(--white); font-size:14px; margin-bottom:4px; }
.lp-how a{ color:var(--phos) !important; }
.lp-fine{ margin:18px 0 0; font-size:12px; color:#6f6f7a; line-height:1.6; max-width:820px; }
.lp-noscript{ max-width:680px; margin:16px auto; padding:12px 16px; border:1px solid var(--line); border-radius:12px; color:var(--grey); text-align:center; }

/* ---------- dialogs ---------- */
.lp-dialog,.launch-account-dialog{ margin:auto; width:min(560px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); overflow:auto; padding:22px; border:1px solid #2c2c36; border-radius:18px;
  background:var(--panel); color:var(--white); font-family:var(--font-body); box-shadow:0 22px 80px #000c; }
.launch-account-dialog{ width:min(440px,calc(100vw - 24px)); }
.lp-dialog::backdrop,.launch-account-dialog::backdrop{ background:#050507cc; backdrop-filter:blur(5px); }
.lp-dialog-head,.account-heading{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:16px; }
.lp-dialog-head h2,.account-heading h2{ margin:0; font-family:var(--font-disp); font-weight:400; font-size:20px; line-height:1.15; text-transform:uppercase; overflow-wrap:anywhere; }
.lp-close,.account-close{ flex:none; width:36px; height:36px; border-radius:50%; border:1px solid var(--line); background:transparent; color:var(--grey); font-size:22px; line-height:1; cursor:pointer; }
#launch-dialog-body > *+*{ margin-top:12px; }
#launch-dialog-body p{ font-size:14px; line-height:1.6; margin-bottom:0; }
#launch-dialog-body .field-note{ font-size:12.5px; }
#launch-dialog-body .lp-btn{ width:100%; }
.lp-dialog .error{ margin:0; padding:10px 12px; border:1px solid #ff8a7a66; border-radius:10px; background:#ff8a7a12; color:#ffc2b4; font-size:13px; line-height:1.55; overflow-wrap:anywhere; }
.coin-review-art{ display:block; width:132px; height:132px; border-radius:16px; object-fit:cover; margin:0 auto; border:1px solid var(--line); }
.coin-review-facts{ display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr); gap:6px 14px; margin:0; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--card); font-size:13px; }
.coin-review-facts dt{ color:var(--grey); }
.coin-review-facts dd{ margin:0; text-align:right; overflow-wrap:anywhere; }
.coin-review-story{ color:var(--grey); font-style:italic; overflow-wrap:anywhere; }
.coin-review-check{ display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.55; color:var(--white); cursor:pointer; }
.coin-review-check input{ flex:none; width:18px; height:18px; margin-top:2px; accent-color:var(--phos); }
.coin-venue-title{ margin:0 0 8px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); }
.coin-venue-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px; }
.coin-venue-card{ display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:var(--card); color:var(--white); text-align:left; cursor:pointer; font:inherit; min-width:0; }
.coin-venue-card img{ width:36px; height:36px; border-radius:10px; flex:none; background:#000; }
.coin-venue-card[aria-pressed="true"]{ border-color:var(--phos); box-shadow:0 0 0 1px var(--phos) inset; }
.coin-venue-copy{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.coin-venue-copy strong{ font-size:14px; }
.coin-venue-copy span{ font-size:12px; color:var(--grey); line-height:1.45; }
.coin-deposit-fee-label{ display:flex; flex-direction:column; gap:2px; font-size:13px; color:var(--grey); }
.coin-deposit-total{ padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--card); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#launch-dialog-body .coin-deposit-total{ font-size:13.5px; }
.coin-deposit-total[data-state="error"]{ color:var(--bad); }
.coin-deposit-cancel{ display:flex; flex-direction:column; gap:8px; }
.coin-deposit-cancel .field-note{ margin:0; }
.coin-deposit-steps{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(84px,1fr)); gap:8px; padding:0; margin:0; counter-reset:deposit; }
.coin-deposit-steps li{ counter-increment:deposit; font-size:11px; line-height:1.35; color:var(--grey); border-top:2px solid var(--line); padding-top:8px; }
.coin-deposit-steps li::before{ content:counter(deposit) ". "; }
.coin-deposit-steps li[data-state="done"]{ border-color:var(--phos); color:var(--white); }
.coin-deposit-steps li[data-state="current"]{ border-color:var(--phos); color:var(--white); font-weight:700; }
.coin-deposit-qr{ display:flex; flex-direction:column; align-items:center; gap:10px; }
.coin-deposit-qr img{ width:180px; height:180px; padding:8px; border-radius:12px; background:#fff; }
.coin-deposit-open-wallet{ display:none !important; }
@media (hover:none) and (pointer:coarse){ .coin-deposit-open-wallet{ display:inline-flex !important; } }
#launch-dialog-body .coin-deposit-amount{ font-size:30px; font-weight:700; text-align:center; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.coin-deposit-address{ display:block; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:var(--raised); font-size:13px; line-height:1.5; overflow-wrap:anywhere; user-select:all; }
.coin-deposit-actions,.coin-live-actions{ display:flex; flex-wrap:wrap; gap:8px; }
#launch-dialog-body .coin-deposit-actions .lp-btn,#launch-dialog-body .coin-live-actions .lp-btn,#launch-dialog-body .coin-live-mint .lp-btn{ width:auto; flex:1 1 150px; }
.coin-deposit-details{ font-size:13px; }
.coin-deposit-details summary{ cursor:pointer; color:var(--grey); }
.coin-deposit-details .coin-review-facts{ margin-top:8px; }
.coin-deposit-progress{ display:flex; align-items:center; gap:10px; font-size:13px; }
.coin-deposit-spinner{ width:18px; height:18px; flex:none; border-radius:50%; border:2px solid var(--line); border-top-color:var(--phos); animation:lp-spin .9s linear infinite; }
@keyframes lp-spin{ to{ transform:rotate(360deg); } }
.coin-live-lead{ font-size:15px !important; }
.coin-live-mint{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.coin-live-mint code{ flex:1 1 240px; min-width:0; }
.coin-fees-card{ border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:var(--card); }
.coin-fees-card h3{ margin:0 0 6px; font-size:14px; letter-spacing:.02em; }
.coin-fees > *+*{ margin-top:8px; }

/* ---------- account dialog ---------- */
.account-form{ display:grid; gap:14px; }
.account-label{ display:grid; gap:8px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--grey); }
.account-input{ width:100%; padding:13px; border:1px solid var(--line); border-radius:10px; background:var(--black); color:var(--white); font:inherit; font-size:16px; letter-spacing:0; text-transform:none; }
.account-input:focus{ outline:none; border-color:var(--phos); }
.account-note{ font-size:13px; line-height:1.65; color:var(--grey); margin:0 0 12px; }
.account-body > .account-note:last-child{ margin:14px 0 0; }
.account-error{ font-size:12.5px; line-height:1.6; color:var(--bad,#ff8a7a); margin:14px 0 0; }
.account-email{ font-size:18px; font-weight:700; margin:0 0 16px; overflow-wrap:anywhere; }
.account-body > .lp-btn{ width:100%; margin-bottom:8px; }
.account-form .lp-btn{ width:100%; }
.account-actions{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:14px; }
.account-secondary{ border:0; background:transparent; color:var(--phos); font:inherit; font-size:13px; padding:5px 0; cursor:pointer; }
.account-secondary:disabled,.account-input:disabled{ opacity:.5; cursor:default; }
.account-signout{ display:block; color:var(--grey); margin:4px 0 6px; }

/* ---------- toast ---------- */
.toast{ position:fixed; left:50%; bottom:24px; z-index:300; transform:translateX(-50%); width:max-content; max-width:calc(100vw - 32px); padding:10px 16px; border:1px solid #19fb9b66; border-radius:14px;
  background:#0d1611; color:var(--white); font-size:13px; line-height:1.45; box-shadow:0 10px 30px #0009; }

/* ---------- responsive ---------- */
@media (max-width:900px){
  .lp-grid{ grid-template-columns:minmax(0,1fr); }
  .lp-art-card{ display:grid; grid-template-columns:minmax(0,180px) minmax(0,1fr); gap:0 16px; align-items:start; }
  .lp-art-card h2{ grid-column:1/-1; }
  .lp-art-card .lp-art{ grid-row:span 3; margin-bottom:0; }
  .lp-how ol{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px){
  .lp-head{ padding-top:96px; }
  .lp-account{ width:100%; }
  .lp-card{ padding:14px; }
  .lp-art-card{ display:block; }
  .lp-art-card .lp-art{ margin-bottom:12px; }
  .lp-fields{ grid-template-columns:minmax(0,1fr); gap:0; }
  .lp-how ol{ grid-template-columns:minmax(0,1fr); }
  .lp-order{ flex-wrap:wrap; }
  .lp-order-copy{ flex:1 1 calc(100% - 52px); }
  .lp-order-actions{ flex-direction:row; flex-wrap:wrap; width:100%; align-items:center; }
  .lp-dialog,.launch-account-dialog{ padding:16px; }
  .coin-deposit-steps{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  #launch-dialog-body .coin-deposit-amount{ font-size:24px; }
  .coin-review-facts{ grid-template-columns:minmax(0,1fr); gap:2px; }
  .coin-review-facts dd{ text-align:left; margin-bottom:6px; }
  .toast{ bottom:84px; }
}
@media (prefers-reduced-motion:reduce){ .lp-status .lp-dot,.coin-deposit-spinner{ animation:none; } }
