/* Aster v3 "Ask Aster" chat. Uses the v3 tokens from site.css (fallbacks keep it readable on its own).
   Launcher pill with the lime lock → bottom-right sheet (desktop) / full-height bottom sheet (phones).
   Motion: transform/opacity only; every state has a finished reduced-motion version; nothing shifts layout. */
.ax-dock,.ax-dialog{
  --ax-bg:var(--panel,#121312);--ax-bg-2:var(--panel-2,#171917);--ax-line:var(--line,#ffffff14);--ax-line-2:var(--line-2,#ffffff22);
  --ax-text:var(--text,#f2f3ef);--ax-soft:var(--soft,#b9beb5);--ax-muted:var(--muted,#8d938a);
  --ax-lime:var(--lime,#d7fb8b);--ax-ink:var(--lime-ink,#172113);--ax-amber:var(--amber,#f5c46b);--ax-coral:var(--coral,#ff8e78);
  --ax-ease:var(--ease-out,cubic-bezier(.16,1,.3,1));--ax-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-family:Jakarta,system-ui,sans-serif;color:var(--ax-text);color-scheme:dark;-webkit-font-smoothing:antialiased
}
.ax-dock *,.ax-dialog *{box-sizing:border-box}
.ax-dialog [hidden],.ax-dock[hidden]{display:none!important}
.ax-dock button,.ax-dialog button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.ax-dock svg,.ax-dialog svg{display:block;flex:none}
.ax-dialog :is(button,a):focus-visible,.ax-launcher:focus-visible{outline:2px solid var(--ax-lime);outline-offset:3px}
.ax-dialog textarea:focus,.ax-dialog textarea:focus-visible,.ax-bot-body:focus{outline:none} /* the field ring below is the textarea's focus indicator */

/* ── Launcher ─────────────────────────────────────────────────────────── */
.ax-dock{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:85;
  translate:0 calc(var(--ax-lift,0px) * -1);transition:translate .45s var(--ax-ease),opacity .25s ease,visibility 0s}
.ax-dock.is-tucked{opacity:0;visibility:hidden;pointer-events:none;transition:translate .45s var(--ax-ease),opacity .2s ease,visibility 0s .2s}
.ax-launcher{display:flex;align-items:center;gap:10px;height:54px;padding:0 20px 0 8px;border-radius:999px;border:1px solid var(--ax-line-2);
  background:linear-gradient(180deg,#1b1e1bf2,#121312f2);box-shadow:0 18px 40px -16px #000,0 0 0 1px #00000040,0 0 36px -18px #d7fb8b55;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:transform .18s var(--ax-ease),border-color .32s,box-shadow .32s,opacity .2s}
.ax-launcher-face{position:relative;display:block;width:36px;height:41px;margin-top:-6px;animation:ax-bob 6s ease-in-out infinite;transform-origin:50% 80%}
.ax-launcher-face svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 3px 6px #0006)}
.ax-launcher-label{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ax-text);white-space:nowrap}
.ax-launcher:active{transform:scale(.97)}
.ax-launcher{position:relative}
.ax-launcher[data-unread]::after{content:"";position:absolute;top:5px;left:38px;width:11px;height:11px;border-radius:50%;background:var(--ax-lime);box-shadow:0 0 0 2.5px #121312,0 0 10px #d7fb8baa}
@media (hover:hover) and (pointer:fine){
  .ax-launcher:hover{border-color:#d7fb8b66;box-shadow:0 18px 40px -16px #000,0 0 0 1px #00000040,0 0 44px -14px #d7fb8b88}
  .ax-launcher:hover .ax-launcher-face{animation-play-state:paused;transform:rotate(-6deg) translateY(-2px);transition:transform .32s var(--ax-ease)}
}
.ax-dock[data-open] .ax-launcher{opacity:0;transform:scale(.9);pointer-events:none}
.ax-dock[data-open] .ax-launcher-face,.ax-paused .ax-launcher-face{animation-play-state:paused}
@keyframes ax-bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-3deg)}}

/* ── Panel ────────────────────────────────────────────────────────────── */
.ax-dialog{position:fixed;inset:auto max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) auto;margin:0;padding:0;
  width:400px;max-width:calc(100vw - 32px);height:min(620px,calc(100dvh - 48px));max-height:none;
  display:none;flex-direction:column;overflow:hidden;isolation:isolate;
  border:1px solid var(--ax-line-2);border-radius:24px;background:linear-gradient(180deg,var(--ax-bg-2),var(--ax-bg) 240px);
  box-shadow:0 40px 120px -40px #000,0 24px 60px -30px #000c,0 0 80px -40px #c7f26a40;transform-origin:100% 100%;font-size:15px;line-height:1.6}
.ax-dialog[open]{display:flex}
.ax-dialog::before{content:"";position:absolute;inset:0 0 auto;height:1px;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,#d7fb8b66 30%,#d7fb8b22 70%,transparent)}
.ax-dialog::backdrop{background:#05060599}
.ax-grab{display:none}

.ax-head{display:flex;align-items:center;gap:4px;padding:14px 10px 12px 16px;border-bottom:1px solid var(--ax-line);flex:none}
.ax-avatar{display:block;width:34px;height:39px;margin-right:8px;transform:rotate(-6deg)}
.ax-avatar svg{width:100%;height:100%;overflow:visible}
.ax-id{display:flex;flex-direction:column;align-items:flex-start;gap:3px;flex:1;min-width:0}
.ax-id h2{font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--ax-text);margin:0}
.ax-status{display:inline-flex;align-items:center;gap:6px;font:600 10px/1 var(--ax-mono);letter-spacing:.12em;color:var(--ax-muted);white-space:nowrap}
.ax-status i{width:7px;height:7px;border-radius:50%;background:var(--ax-muted);flex:none}
.ax-status[data-state="checking"] i{animation:ax-pulse 1.4s ease-in-out infinite}
.ax-status[data-state="ai"]{color:var(--ax-lime)}
.ax-status[data-state="ai"] i{background:var(--ax-lime);box-shadow:0 0 0 3px #d7fb8b22,0 0 10px #d7fb8b88}
.ax-status:is([data-state="guide"],[data-state="down"]){color:var(--ax-soft)}
.ax-status:is([data-state="guide"],[data-state="down"]) i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ax-soft)}
.ax-status[data-state="limited"]{color:var(--ax-amber)}
.ax-status[data-state="limited"] i{background:var(--ax-amber)}
@keyframes ax-pulse{50%{opacity:.35}}
.ax-icon{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:12px;background:none;color:var(--ax-muted);flex:none;transition:background-color .18s,color .18s,transform .18s}
.ax-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ax-icon:active{transform:scale(.94)}
.ax-icon[aria-pressed="true"]{color:var(--ax-lime);background:#d7fb8b12}
@media (hover:hover){.ax-icon:hover{background:#ffffff0d;color:var(--ax-text)}}

.ax-scroll{position:relative;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:18px 20px 14px;scrollbar-width:thin;scrollbar-color:#ffffff22 transparent}

/* Welcome */
.ax-eyebrow{font:600 11px/1.4 var(--ax-mono);letter-spacing:.14em;color:var(--ax-lime);margin:0 0 10px}
.ax-welcome h3{font-size:26px;font-weight:600;letter-spacing:-.04em;line-height:1.12;color:var(--ax-text);margin:0 0 16px;text-wrap:balance}
.ax-welcome h3 span{color:var(--ax-muted)}
.ax-starters{display:grid;gap:8px}
.ax-starter{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:7px 14px 7px 8px;text-align:left;border-radius:16px;border:1px solid var(--ax-line);background:#ffffff05;
  transition:border-color .32s,background-color .18s,transform .18s var(--ax-ease)}
.ax-starter-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#d7fb8b12;border:1px solid #d7fb8b2a;color:var(--ax-lime);flex:none}
.ax-starter-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ax-starter b{display:block;font-size:14.5px;font-weight:600;color:var(--ax-text);letter-spacing:-.01em;line-height:1.3}
.ax-starter small{display:block;font-size:12.5px;color:var(--ax-muted);line-height:1.35;margin-top:1px}
.ax-starter>span:nth-child(2){flex:1;min-width:0}
.ax-starter>svg{width:16px;height:16px;fill:none;stroke:var(--ax-muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .32s var(--ax-ease),stroke .18s}
.ax-starter:active{transform:scale(.985)}
@media (hover:hover){.ax-starter:hover{border-color:#d7fb8b55;background:#d7fb8b0a}.ax-starter:hover>svg{transform:translateX(3px);stroke:var(--ax-lime)}}
.ax-trust{display:flex;gap:9px;align-items:flex-start;margin:12px 2px 0;font-size:12.5px;line-height:1.5;color:var(--ax-muted)}
.ax-trust svg{width:16px;height:16px;margin-top:1px;fill:none;stroke:var(--ax-lime);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Conversation */
.ax-log{display:grid;gap:22px}
.ax-log:empty{display:none}
.ax-turn{display:grid;gap:12px;min-width:0}
.ax-user{justify-self:end;max-width:86%;padding:10px 14px;border-radius:18px 18px 6px 18px;background:#d7fb8b17;border:1px solid #d7fb8b33;color:var(--ax-text);font-size:14.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.ax-bot{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:start}
.ax-bot-face{width:26px;height:30px;margin-top:1px;transform:rotate(-6deg)}
.ax-bot-face svg{width:100%;height:100%}
.ax-bot-body{min-width:0;overflow-wrap:anywhere}
.ax-meta{display:flex;align-items:center;gap:8px;margin:2px 0 6px;font-size:12.5px;font-weight:600;color:var(--ax-soft)}
.ax-tag{font:600 9.5px/1 var(--ax-mono);letter-spacing:.12em;padding:4px 6px;border-radius:6px;border:1px solid var(--ax-line-2);color:var(--ax-muted)}
.ax-tag.is-ai{color:var(--ax-lime);border-color:#d7fb8b44;background:#d7fb8b0d}
.ax-answer h4{font-size:16px;font-weight:600;letter-spacing:-.02em;line-height:1.3;color:var(--ax-text);margin:0 0 6px}
.ax-answer p{margin:0 0 10px;color:var(--ax-soft);font-size:14.5px;line-height:1.65;white-space:pre-line}
.ax-answer p:last-child{margin-bottom:0}
.ax-answer.is-ai p{color:var(--ax-text)}
.ax-steps{display:grid;gap:8px;margin:12px 0;padding:0;list-style:none;counter-reset:ax}
.ax-steps li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ax-text);counter-increment:ax}
.ax-steps li::before{content:counter(ax,decimal-leading-zero);display:grid;place-items:center;width:26px;height:26px;border-radius:8px;border:1px solid #d7fb8b44;background:#d7fb8b0d;font:600 10px var(--ax-mono);color:var(--ax-lime);flex:none}
.ax-w{display:inline}
.ax-revealing .ax-w{opacity:0;animation:ax-word .34s var(--ax-ease) forwards;animation-delay:calc(var(--i) * var(--ax-step,14ms))}
@keyframes ax-word{from{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}

/* Plan table — same language as the pricing page cards (mono labels, tabular numbers, Pro featured) */
.ax-plans{margin:12px 0 4px;border:1px solid var(--ax-line);border-radius:16px;overflow:hidden;background:#0c0d0c}
.ax-plans table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.ax-plans th,.ax-plans td{padding:9px 10px;text-align:right;border-bottom:1px solid var(--ax-line);white-space:nowrap}
.ax-plans tr:last-child>*{border-bottom:0}
.ax-plans thead th{font:600 9.5px/1.2 var(--ax-mono);letter-spacing:.12em;color:var(--ax-muted);background:#ffffff05}
.ax-plans :is(thead th,tbody th):first-child{text-align:left}
.ax-plans tbody th{font-weight:600;color:var(--ax-text)}
.ax-plans td{color:var(--ax-soft)}
.ax-plans td b{color:var(--ax-text);font-weight:600}
.ax-plans small{color:var(--ax-muted);font-size:11px}
.ax-plans .is-featured{background:linear-gradient(90deg,#d7fb8b14,transparent)}
.ax-plans .is-featured th{box-shadow:inset 2px 0 0 var(--ax-lime)}
.ax-plans .is-featured td b{color:var(--ax-lime)}
.ax-plans-note{margin:0;padding:8px 10px;font-size:11.5px;line-height:1.5;color:var(--ax-muted);border-top:1px solid var(--ax-line);background:#ffffff03}

/* Answer actions: links, copy, keep exploring */
.ax-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ax-link{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:600;text-decoration:none;border:1px solid var(--ax-line-2);background:#ffffff0a;color:var(--ax-text);transition:transform .18s var(--ax-ease),background-color .18s,border-color .18s,box-shadow .32s}
.ax-link svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .32s var(--ax-ease)}
.ax-link.is-primary{background:var(--ax-lime);border-color:var(--ax-lime);color:var(--ax-ink);box-shadow:0 1px 0 #ffffff80 inset,0 8px 22px -12px #d7fb8bcc}
.ax-link:active{transform:scale(.97)}
@media (hover:hover){.ax-link:hover svg{transform:translateX(3px)}.ax-link:not(.is-primary):hover{background:#ffffff14;border-color:#ffffff38}}
.ax-tools{display:flex;align-items:center;gap:8px;margin-top:10px}
.ax-dialog button.copy{min-height:30px;padding:4px 10px;font-size:12px;border-radius:9px}
.ax-next{margin-top:14px}
.ax-next p{font:600 10px/1.4 var(--ax-mono);letter-spacing:.14em;color:var(--ax-muted);margin:0 0 8px}
.ax-next div{display:flex;flex-wrap:wrap;gap:6px}
.ax-chip{min-height:34px;padding:0 13px;border-radius:999px;border:1px solid var(--ax-line-2);background:none;font-size:13px;font-weight:500;color:var(--ax-soft);transition:border-color .18s,color .18s,background-color .18s,transform .18s}
.ax-chip:active{transform:scale(.97)}
@media (hover:hover){.ax-chip:hover{border-color:#d7fb8b66;color:var(--ax-text);background:#d7fb8b0a}}

/* Waiting: three dots, only while a real request is pending */
.ax-typing{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 14px;border-radius:6px 16px 16px 16px;background:#ffffff08;border:1px solid var(--ax-line)}
.ax-typing i{width:6px;height:6px;border-radius:50%;background:var(--ax-lime);opacity:.35;animation:ax-dot 1.2s ease-in-out infinite}
.ax-typing i:nth-child(2){animation-delay:.15s}.ax-typing i:nth-child(3){animation-delay:.3s}
@keyframes ax-dot{30%{opacity:1;transform:translateY(-3px)}60%,100%{opacity:.35;transform:none}}

/* System notice: errors and limits sit between the question and the answer, never inside the answer */
.ax-notice{display:grid;grid-template-columns:18px 1fr auto;gap:10px;align-items:center;padding:10px 10px 10px 12px;border-radius:14px;border:1px solid #f5c46b44;background:#f5c46b0d;font-size:13px;line-height:1.45;color:var(--ax-soft)}
.ax-notice svg{width:18px;height:18px;fill:none;stroke:var(--ax-amber);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ax-notice b{color:var(--ax-text);font-weight:600}
.ax-notice[data-kind="stopped"]{border-color:var(--ax-line-2);background:#ffffff06}
.ax-notice[data-kind="stopped"] svg{stroke:var(--ax-muted)}
.ax-retry{min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--ax-line-2);background:#ffffff0a;font-size:12.5px;font-weight:600;color:var(--ax-text);white-space:nowrap;transition:background-color .18s,border-color .18s,transform .18s}
.ax-retry:active{transform:scale(.97)}
@media (hover:hover){.ax-retry:hover{border-color:#d7fb8b66;background:#d7fb8b12}}

.ax-in{animation:ax-in .36s var(--ax-ease) both}
@keyframes ax-in{from{opacity:0;transform:translateY(8px)}}

.ax-jump{position:absolute;left:50%;bottom:96px;z-index:4;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--ax-line-2);background:#171917f2;color:var(--ax-text);font-size:12.5px;font-weight:600;box-shadow:0 10px 30px -10px #000;translate:-50% 0}
.ax-jump svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

/* Composer: fixed structure; the counter's line is always reserved */
.ax-composer{flex:none;padding:12px 14px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--ax-line);background:var(--ax-bg);margin:0}
.ax-field{display:flex;align-items:flex-end;gap:8px;padding:6px 6px 6px 14px;border-radius:20px;border:1px solid var(--ax-line-2);background:#0b0c0b;transition:border-color .18s,box-shadow .32s}
.ax-field:focus-within{border-color:#d7fb8bb3;box-shadow:0 0 0 3px #d7fb8b1f}
.ax-field textarea{flex:1;min-width:0;height:40px;min-height:40px;max-height:132px;padding:9px 0;resize:none;border:0;outline:0;background:none;color:var(--ax-text);font:400 15px/22px Jakarta,system-ui,sans-serif;overflow-y:auto;scrollbar-width:thin}
.ax-field textarea::placeholder{color:var(--ax-muted);opacity:1}
.ax-send{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:0;background:var(--ax-lime);color:var(--ax-ink);flex:none;box-shadow:0 6px 18px -8px #d7fb8bcc;transition:background-color .18s,color .18s,transform .18s var(--ax-ease),box-shadow .32s}
.ax-send svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;grid-area:1/1}
.ax-send .ax-stop-ico{display:none;fill:currentColor;stroke:none}
.ax-send:disabled{background:#ffffff0f;color:var(--ax-muted);box-shadow:none;cursor:default}
.ax-send:not(:disabled):active{transform:scale(.92)}
.ax-send[data-stop]{background:#ffffff14;color:var(--ax-text);box-shadow:inset 0 0 0 1px var(--ax-line-2)}
.ax-send[data-stop] svg:first-child{display:none}
.ax-send[data-stop] .ax-stop-ico{display:block}
.ax-foot{display:flex;justify-content:space-between;gap:12px;min-height:18px;margin-top:8px;padding:0 4px;font-size:11.5px;line-height:18px;color:var(--ax-muted)}
.ax-foot>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ax-count{font:600 11px/18px var(--ax-mono);font-variant-numeric:tabular-nums;color:var(--ax-muted);visibility:hidden;opacity:0;transition:opacity .18s,color .18s}
.ax-count.is-on{visibility:visible;opacity:1}
.ax-count.is-near{color:var(--ax-amber)}.ax-count.is-full{color:var(--ax-coral)}

.ax-dialog .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ── Phones: mascot-only launcher, full-height bottom sheet ─────────────── */
@media (max-width:600px){
  .ax-dock{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}
  .ax-launcher{width:58px;height:62px;padding:0;justify-content:center;border:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  .ax-launcher-face{width:46px;height:52px;margin:0}
  .ax-launcher-face svg{filter:drop-shadow(0 6px 10px #000a) drop-shadow(0 0 14px #d7fb8b33)}
  .ax-launcher-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .ax-launcher[data-unread]::after{top:4px;left:auto;right:2px}
  .ax-dialog{inset:auto 0 var(--ax-kb,0px) 0;width:100%;max-width:none;height:calc(var(--ax-vh,100dvh) - 10px);border-radius:24px 24px 0 0;border-bottom:0;transform-origin:50% 100%}
  .ax-grab{display:grid;place-items:center;position:absolute;inset:0 0 auto;height:22px;z-index:4;touch-action:none;cursor:grab}
  .ax-grab i{width:40px;height:4px;border-radius:4px;background:#ffffff33}
  .ax-head{padding-top:20px}
  .ax-icon{width:44px;height:44px}
  .ax-scroll{padding:20px 16px 16px}
  .ax-field textarea{font-size:16px}
  .ax-starter{min-height:60px}
  .ax-link{min-height:44px}
  .ax-chip,.ax-retry{min-height:40px}
  .ax-jump{bottom:100px}
}
@media (max-height:520px) and (min-width:601px){.ax-dialog{bottom:8px;height:calc(100dvh - 16px)}}

html.ax-hidden-tab :is(.ax-dock,.ax-dialog) *{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){
  .ax-dock,.ax-dock *,.ax-dialog,.ax-dialog *{animation:none!important;transition:none!important}
  .ax-revealing .ax-w{opacity:1}
}
