/* Regulus — the app. The look of the owner's reference since 2026-10-28: Rift's docs (rift.eco, saved in his Good lists as
   websites/023-rift-eco): near-black neutral greys, hairline lines, an off-white primary, Manrope at light weights, a header
   that sees through, a sidebar of folding groups, page titles over a field of dots. Green and red only for buy / sell and
   profit / loss; amber only for the Launch Simulator. */
@font-face{font-family:Manrope;src:url(/static/fonts/manrope.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:Geist;src:url(/static/fonts/geist.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(/static/fonts/geist-mono.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --primary:237,239,237;
  --bg:10,11,11;
  --bg-2:18,20,20;
  --bg-3:24,26,26;
  --bg-4:31,33,33;
  --stroke:29,31,31;
  --line:255,255,255;
  --text:237,239,237;
  --text-2:166,170,167;
  --text-3:110,115,112;
  --green:61,214,140;
  --red:240,83,110;
  --yellow:226,173,72;
  --fx:11px;--fs:12.5px;--fm:13.5px;--fl:16px;--fxl:20px;
  --side:264px;--head:52px;--top:60px;
  --spring:cubic-bezier(.34,1.56,.64,1);
  --ease:cubic-bezier(.2,0,0,1);--ease-out:cubic-bezier(.22,1,.36,1);
  --sans:Manrope,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:rgb(var(--bg));color:rgb(var(--text));font:450 var(--fm)/1.45 var(--sans);letter-spacing:-.003em;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit;background:none;border:0;outline:0}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
svg.i{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-size:.94em;letter-spacing:-.01em}
.up{color:rgb(var(--green))}.down{color:rgb(var(--red))}.dim{color:rgb(var(--text-3))}.mid{color:rgb(var(--text-2))}
.hide{display:none!important}
::selection{background:rgba(var(--primary),.35)}
:focus-visible{outline:1px solid rgba(var(--primary),.8);outline-offset:2px;border-radius:6px}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:rgb(var(--bg-4));border-radius:8px}::-webkit-scrollbar-track{background:transparent}

/* ── frame: the header across the top, the sidebar under it on the left, the page beside it ── */
.app{display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:var(--top) minmax(0,1fr);grid-template-areas:"top top" "side page";height:100vh;transition:grid-template-columns .22s var(--ease-out)}
.app[data-collapsed=true]{--side:64px}
.icon-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:rgb(var(--text-3));transition:color .12s var(--ease-out),background .12s var(--ease-out)}
.icon-btn:hover{color:rgb(var(--text));background:rgba(var(--line),.05)}
.kbd,kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border:1px solid rgba(var(--line),.12);border-bottom-width:1.5px;border-radius:5px;background:rgba(var(--line),.03);color:rgb(var(--text-2));font:500 10.5px/1 var(--sans);letter-spacing:.02em}
.search{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:34px;padding:0 6px 0 10px;border-radius:8px;background:rgba(var(--line),.02);border:1px solid rgba(var(--line),.075);transition:border-color .14s var(--ease),background .14s var(--ease)}
.search:focus-within{border-color:rgba(var(--line),.18);background:rgba(var(--line),.035)}
.search svg.i{color:rgb(var(--text-3));width:15px;height:15px}
.search input{flex:1;min-width:0}
.search input::placeholder{color:rgb(var(--text-3))}

/* header: it sees through to the page */
.top{grid-area:top;position:relative;z-index:30;display:flex;align-items:center;gap:6px;min-width:0;padding:0 20px 0 0;background:rgba(var(--bg),.84);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid rgba(var(--line),.075)}
.app[data-mode=sim] .top::before{content:"";position:absolute;inset:auto 0 -1px 0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--yellow),.75) 22%,rgba(var(--yellow),.75) 78%,transparent)}
.top-l{width:var(--side);flex:none;display:flex;align-items:center;gap:8px;height:100%;padding:0 18px 0 22px;transition:width .22s var(--ease-out),padding .22s var(--ease-out)}
.brand{display:inline-flex;align-items:center;gap:10px;min-width:0;height:36px;color:rgb(var(--text));font-size:15px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}
.brand .mark{flex:none;width:20px;height:20px;transition:transform .7s cubic-bezier(.3,1.5,.45,1)}
.brand:hover .mark{transform:rotate(90deg)}
.brand span{padding-left:10px;border-left:1px solid rgba(var(--line),.12);line-height:16px;font-weight:500;color:rgb(var(--text-2))}
.app[data-mode=sim] .brand span{color:rgb(var(--yellow))}
.top .burger{display:none}
.modesw{display:flex;align-items:center;flex:none;height:32px;padding:3px;margin-left:4px;border-radius:9px;border:1px solid rgba(var(--line),.075);background:rgba(var(--line),.02);gap:2px}
.modesw button{display:flex;align-items:center;gap:8px;height:24px;padding:0 11px;border-radius:6px;font-size:12.5px;font-weight:500;color:rgb(var(--text-3));white-space:nowrap;transition:background .12s var(--ease-out),color .12s var(--ease-out)}
.modesw button:hover{color:rgb(var(--text))}
.modesw button i{width:5px;height:5px;border-radius:1.5px;background:currentColor;opacity:.5;transition:background .2s,box-shadow .2s,opacity .2s}
.modesw button.on{background:rgba(var(--line),.07);color:rgb(var(--text));box-shadow:inset 0 0 0 1px rgba(var(--line),.04)}
.modesw button.on[data-m=live] i{opacity:1;background:rgb(var(--green));box-shadow:0 0 6px rgba(var(--green),.6)}
.modesw button.on[data-m=sim]{background:rgba(var(--yellow),.1);color:rgb(var(--yellow));box-shadow:inset 0 0 0 1px rgba(var(--yellow),.18)}
.modesw button.on[data-m=sim] i{opacity:1;background:rgb(var(--yellow));box-shadow:0 0 6px rgba(var(--yellow),.6)}
.top-r{display:flex;align-items:center;gap:4px;margin-left:auto;min-width:0}
.tl{display:inline-flex;align-items:center;height:32px;padding:0 10px;border-radius:8px;color:rgb(var(--text-2));font-size:13px;font-weight:500;white-space:nowrap;transition:color .12s var(--ease-out),background .12s var(--ease-out)}
.tl:hover{color:rgb(var(--text));background:rgba(var(--line),.05)}
.net{display:flex;align-items:center;gap:7px;padding:0 8px;font:500 11.5px var(--sans);color:rgb(var(--text-3));white-space:nowrap}
.net i{width:5px;height:5px;border-radius:1.5px;background:rgb(var(--green));box-shadow:0 0 6px rgba(var(--green),.6)}
.net.off i{background:rgb(var(--yellow));box-shadow:0 0 6px rgba(var(--yellow),.6)}
.solpx{display:flex;align-items:center;gap:7px;height:32px;padding:0 10px;border-radius:8px;color:rgb(var(--text-2));font-size:13px;font-weight:500;white-space:nowrap;transition:color .12s,background .12s}
.solpx:hover{color:rgb(var(--text));background:rgba(var(--line),.05)}
.solpx svg.coin{width:14px;height:14px}
.solpx b{font-weight:600;color:rgb(var(--text))}
.solpx em{font-style:normal;font-size:11.5px}
.runs{display:flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:8px;font-size:13px;font-weight:500;color:rgb(var(--text-3));white-space:nowrap;transition:color .12s,background .12s}
.runs:hover{color:rgb(var(--text));background:rgba(var(--line),.05)}
.runs svg.i{width:14px;height:14px}
.runs b{font-weight:600}
.runs.on{color:rgb(var(--text))}
.runs.on svg.i{color:rgb(var(--green));animation:zap 1.6s ease-in-out infinite}
@keyframes zap{50%{opacity:.35}}
.funderbtn{display:flex;align-items:center;gap:8px;height:32px;margin-left:4px;padding:0 9px 0 12px;border-radius:8px;border:1px solid rgba(var(--line),.075);background:rgba(var(--line),.02);font-size:13px;font-weight:500;white-space:nowrap;transition:border-color .14s var(--ease),background .14s var(--ease),transform 80ms var(--ease)}
.funderbtn:hover{border-color:rgba(var(--line),.12);background:rgba(var(--line),.035)}
.funderbtn:active{transform:scale(.97)}
.funderbtn svg.i{width:13px;height:13px;color:rgb(var(--text-3))}
.funderbtn .l{color:rgb(var(--text-3))}
.funderbtn b{font-weight:600}
.app[data-mode=sim] .funderbtn{border-color:rgba(var(--yellow),.24);background:rgba(var(--yellow),.05)}
.app[data-mode=sim] .funderbtn .l{color:rgb(var(--yellow))}
.open-btn{display:inline-flex;align-items:center;height:32px;margin-left:8px;padding:0 13px;border-radius:8px;background:#e9ebe8;color:#0a0b0b;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.35);transition:transform 80ms var(--ease),filter .12s var(--ease)}
.open-btn:hover{filter:brightness(1.08)}
.open-btn:active{transform:scale(.97)}
.acct{position:relative;flex:none;width:32px;height:32px;margin-left:8px;border-radius:50%;display:grid;place-items:center;background:rgba(var(--line),.06);border:1px solid rgba(var(--line),.12);color:rgb(var(--text));font-size:11.5px;font-weight:600;letter-spacing:.02em;transition:border-color .14s,transform 80ms var(--ease)}
.acct:hover{border-color:rgba(var(--line),.28)}
.acct:active{transform:scale(.95)}
.acct .badge{position:absolute;top:-4px;right:-4px;box-shadow:0 0 0 2px rgb(var(--bg))}
.signin{margin-left:4px}

/* sidebar: search on top, then groups that fold */
.side{grid-area:side;display:flex;flex-direction:column;min-height:0;padding:18px 14px 0 18px;background:rgb(var(--bg));overflow:hidden;transition:padding .22s var(--ease-out)}
.side-search{display:flex;flex:none;align-items:center;gap:8px;width:100%;height:34px;margin:0 0 16px;padding:0 6px 0 10px;border:1px solid rgba(var(--line),.075);border-radius:8px;background:rgba(var(--line),.02);color:rgb(var(--text-3));font:450 13px/1 var(--sans);transition:color .14s var(--ease),border-color .14s var(--ease),background .14s var(--ease)}
.side-search:hover{color:rgb(var(--text-2));border-color:rgba(var(--line),.12);background:rgba(var(--line),.035)}
.side-search:active{transform:scale(.99)}
.side-search svg.i{width:15px;height:15px}
.side-search span{flex:1;text-align:left}
.tree{flex:1;min-height:0;margin:0 -8px 0 -6px;padding:0 8px 18px 6px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(var(--line),.12) transparent}
.grp{margin:0 0 8px}
.grp>summary{display:flex;align-items:center;justify-content:space-between;height:30px;padding:0 6px 0 10px;border-radius:6px;color:rgb(var(--text-2));font-size:12px;font-weight:600;letter-spacing:-.005em;cursor:pointer;list-style:none;user-select:none;transition:color .14s var(--ease)}
.grp>summary::-webkit-details-marker{display:none}
.grp>summary:hover{color:rgb(var(--text))}
.grp .caret{width:12px;height:12px;color:rgb(var(--text-3));transition:transform .16s var(--ease)}
.grp:not([open]) .caret{transform:rotate(-90deg)}
.grp ul{margin:0;padding:0;list-style:none}
.si{position:relative;display:flex;align-items:center;gap:10px;min-height:32px;padding:6px 10px;border-radius:8px;color:rgb(var(--text-2));font-size:13px;font-weight:450;line-height:1.3;white-space:nowrap;transition:color .1s var(--ease),background .09s var(--ease),transform 70ms var(--ease)}
.si:hover{color:rgb(var(--text))}
.si:not(.on):hover{background:rgba(var(--line),.034)}
.si:active{transform:scale(.985)}
.si svg.i{width:15px;height:15px;opacity:.5;transition:opacity .14s var(--ease),color .14s var(--ease)}
.si:hover svg.i{opacity:.85}
.si.on{color:rgb(var(--text));font-weight:550;background:rgba(var(--line),.05);box-shadow:inset 0 0 0 1px rgba(var(--line),.035)}
.si.on svg.i{opacity:1;color:#fff}
.si.on::after{content:"";position:absolute;right:10px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:1.5px;background:#fff;box-shadow:0 0 6px rgba(237,239,237,.5)}
.si em{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:500;color:rgb(var(--text-3))}
.si.on em{margin-right:14px}
.si em.hot{color:rgb(var(--green))}
.coin-list{display:flex;flex-direction:column}
.crow{position:relative;display:flex;align-items:center;gap:10px;min-height:36px;padding:5px 10px;border-radius:8px;color:rgb(var(--text-2));transition:background .09s var(--ease),color .1s var(--ease)}
.crow:hover{color:rgb(var(--text))}
.crow:not(.on):hover{background:rgba(var(--line),.034)}
.crow.on{color:rgb(var(--text));background:rgba(var(--line),.05);box-shadow:inset 0 0 0 1px rgba(var(--line),.035)}
.crow .av{width:20px;height:20px;border-radius:6px;flex:none;overflow:hidden;display:grid;place-items:center;background:rgba(var(--line),.06);font-size:8.5px;font-weight:700;color:rgb(var(--text-3));text-transform:uppercase}
.crow .av img{width:100%;height:100%;object-fit:cover}
.crow .nm{flex:1;min-width:0;display:flex;align-items:baseline;gap:7px;line-height:1.25}
.crow .nm b{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crow .nm i{font-style:normal;font-size:11.5px;color:rgb(var(--text-3));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crow .st{width:5px;height:5px;border-radius:1.5px;flex:none;background:rgba(var(--text-3),.5)}
.crow .st.live{background:rgb(var(--green));box-shadow:0 0 6px rgba(var(--green),.55)}
.crow .st.warn{background:rgb(var(--yellow))}
.coins-empty{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:2px 0;padding:12px;border-radius:8px;border:1px dashed rgba(var(--line),.1);color:rgb(var(--text-3));font-size:12.5px;transition:border-color .14s,color .14s}
.coins-empty:hover{border-color:rgba(var(--line),.22);color:rgb(var(--text-2))}
.coins-empty svg.i{width:15px;height:15px;color:rgb(var(--text-2));margin-bottom:3px}
.coins-empty b{font-weight:600;color:rgb(var(--text))}
.simcard{flex:none;margin:0 0 12px;padding:12px 13px;border-radius:10px;background:rgba(var(--yellow),.05);border:1px solid rgba(var(--yellow),.2);display:flex;flex-direction:column;gap:6px}
.simcard b{font-size:12px;font-weight:650;color:rgb(var(--yellow))}
.simcard p{font-size:12px;line-height:1.5;color:rgb(var(--text-2))}
.simcard .btn{align-self:flex-start;margin-top:3px}
.side-foot{display:flex;flex:none;align-items:center;gap:2px;margin:0 -4px;padding:10px 0 14px;border-top:1px solid rgba(var(--line),.075)}
.side-foot a,.side-foot button{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;color:rgb(var(--text-3));transition:color .14s var(--ease),background .14s var(--ease)}
.side-foot a:hover,.side-foot button:hover{color:rgb(var(--text));background:rgba(var(--line),.05)}
.side-foot svg{width:15px;height:15px}
.side-foot .collapse{margin-left:auto}
.scrim{display:none}
/* the sidebar folded to its icons */
.app[data-collapsed=true] .top-l{padding:0 22px}
.app[data-collapsed=true] .brand b,.app[data-collapsed=true] .brand span,.app[data-collapsed=true] .si span,.app[data-collapsed=true] .si em,.app[data-collapsed=true] .grp>summary,
.app[data-collapsed=true] .side-search span,.app[data-collapsed=true] .side-search kbd,.app[data-collapsed=true] .crow .nm,.app[data-collapsed=true] .crow .st,.app[data-collapsed=true] .simcard,.app[data-collapsed=true] .coins-empty span,.app[data-collapsed=true] .coins-empty b,.app[data-collapsed=true] .si.on::after{display:none}
.app[data-collapsed=true] .side{padding:18px 12px 0}
.app[data-collapsed=true] .side-search{justify-content:center;padding:0}
.app[data-collapsed=true] .tree{margin:0 -6px;padding:0 6px 18px}
.app[data-collapsed=true] .grp{margin:0 0 6px;padding-bottom:6px;border-bottom:1px solid rgba(var(--line),.05)}
.app[data-collapsed=true] .grp:not([open])>ul,.app[data-collapsed=true] .grp:not([open])>.coin-list{display:block}
.app[data-collapsed=true] .si{justify-content:center;padding:6px 0}
.app[data-collapsed=true] .crow{justify-content:center;padding:6px 0}
.app[data-collapsed=true] .coins-empty{align-items:center;padding:9px 0}
.app[data-collapsed=true] .side-foot{flex-direction:column;margin:0}
.app[data-collapsed=true] .side-foot .collapse{margin-left:0}
.app[data-collapsed=true] .collapse svg{transform:scaleX(-1)}

/* a Live-only page while the simulator is on */
.liveonly{max-width:520px;margin:60px auto;padding:34px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}
.liveonly .ico{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgba(var(--yellow),.1);color:rgb(var(--yellow));margin-bottom:6px}
.liveonly h3{font-size:var(--fxl);font-weight:500}
.liveonly p{color:rgb(var(--text-2));font-size:13px;max-width:42ch;margin-bottom:8px}

/* the command bar */
.pal-back{position:fixed;inset:0;z-index:95;background:rgba(3,4,7,.55);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;animation:fin .14s ease}
.pal{width:min(640px,100%);max-height:min(560px,76vh);display:flex;flex-direction:column;border-radius:14px;background:rgb(var(--bg-2));border:1px solid rgba(var(--line),.09);box-shadow:0 40px 100px -24px rgba(0,0,0,.85),0 0 0 1px rgba(var(--primary),.06);overflow:hidden;animation:min .22s var(--spring)}
.pal-in{display:flex;align-items:center;gap:12px;height:56px;padding:0 16px;border-bottom:1px solid rgb(var(--stroke))}
.pal-in svg.i{width:18px;height:18px;color:rgb(var(--text-3))}
.pal-in input{flex:1;min-width:0;font-size:15px}
.pal-in input::placeholder{color:rgb(var(--text-3))}
.pal-list{flex:1;min-height:0;overflow:auto;padding:6px 8px 10px}
.pal-g{padding:12px 10px 6px;font:500 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgb(var(--text-3))}
.pal-row{position:relative;display:flex;align-items:center;gap:12px;width:100%;height:42px;padding:0 10px;border-radius:9px;text-align:left;color:rgb(var(--text-2))}
.pal-row.on{background:rgb(var(--bg-3));color:rgb(var(--text))}
.pal-row.on::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:2px;background:rgb(var(--primary))}
.pal-ic{width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:8px;background:rgb(var(--bg-3));color:rgb(var(--text-2))}
.pal-row.on .pal-ic{background:rgba(var(--primary),.14);color:rgb(var(--primary))}
.pal-ic svg.i{width:15px;height:15px}
.pal-av{width:28px;height:28px;flex:none;border-radius:8px;overflow:hidden;display:grid;place-items:center;background:rgb(var(--bg-3));font-size:10px;font-weight:600;color:rgb(var(--text-3));text-transform:uppercase}
.pal-av img{width:100%;height:100%;object-fit:cover}
.pal-t{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px}
.pal-t b{font-weight:500;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal-t i{font-style:normal;font:500 11px var(--mono);color:rgb(var(--text-3));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal-row em{font-style:normal;font-size:11px;color:rgb(var(--text-3));white-space:nowrap}
.pal-none{padding:30px 12px;text-align:center;color:rgb(var(--text-3));font-size:13px}
.pal-foot{display:flex;align-items:center;gap:16px;height:38px;padding:0 16px;border-top:1px solid rgb(var(--stroke));font-size:11px;color:rgb(var(--text-3))}
.pal-foot kbd{height:18px;padding:0 5px;margin-right:2px}
.pal-mode{margin-left:auto;font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.app[data-mode=sim] ~ .pal-back .pal-mode,.pal-mode{color:rgb(var(--text-3))}

/* ── page ── */
.page{grid-area:page;display:flex;flex-direction:column;min-width:0;min-height:0;background:rgb(var(--bg))}
.page-head{display:none;align-items:center;justify-content:space-between;gap:16px;height:var(--head);flex:none;padding:0 20px 0 22px;border-bottom:1px solid rgba(var(--line),.075)}
.app[data-head=bar] .page-head{display:flex}
.page-head h2{font-size:14px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;min-width:0}
.page-head .crumb{color:rgb(var(--text-3));font-weight:400}
.page-head .acts{display:flex;align-items:center;gap:8px}
.page-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:rgba(var(--line),.12) transparent}
.page-content{flex:1 0 auto;min-height:0;display:flex;flex-direction:column}
.page-content>*{flex:none}
.app[data-head=bar] .page-body{overflow:hidden}
.app[data-head=bar] .ph{display:none}
.app[data-head=bar] .page-content{flex:1 1 auto;height:100%}
.app[data-head=bar] .page-content>*{flex:1 1 auto;min-height:0}
/* the title block: crumbs, the title, one line, the page's buttons; a field of dots behind it with a light that sweeps */
.ph{position:relative;z-index:0;flex:none;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:44px 40px 26px;isolation:isolate}
.ph::after{content:"";position:absolute;inset:0 0 -1px 0;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent 55%,rgb(var(--bg)))}
.moire{--ox:72%;--oy:26%;position:absolute;inset:0 0 auto 0;height:300px;z-index:-1;overflow:hidden;pointer-events:none;opacity:.55;
  -webkit-mask:radial-gradient(circle,#000 0,#000 .6px,transparent .78px) 0 0/10px 10px repeat;mask:radial-gradient(circle,#000 0,#000 .6px,transparent .78px) 0 0/10px 10px repeat}
.moire::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--ox) var(--oy),rgba(205,210,206,.22),rgba(205,210,206,.08) 58%,rgba(205,210,206,.016) 100%)}
.app[data-mode=sim] .moire::before{background:radial-gradient(circle at var(--ox) var(--oy),rgba(var(--yellow),.24),rgba(205,210,206,.08) 58%,rgba(205,210,206,.016) 100%)}
.moire-pulse{position:absolute;top:-25%;bottom:-25%;left:0;width:34%;opacity:0;background:linear-gradient(90deg,transparent,rgba(205,210,206,.5) 50%,transparent);transform:translateX(-110%) skewX(-18deg);animation:sweep 8s cubic-bezier(.45,0,.2,1) 1.2s infinite}
@keyframes sweep{0%{opacity:0;transform:translateX(-110%) skewX(-18deg)}5%{opacity:1}30%{opacity:1}36%,100%{opacity:0;transform:translateX(330%) skewX(-18deg)}}
.ph-l{min-width:0}
.crumbs{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:rgb(var(--text-3));font-size:12.5px;font-weight:500}
.crumbs a{color:rgb(var(--text-3));transition:color .14s var(--ease)}
.crumbs a:hover{color:rgb(var(--text))}
.crumbs i{font-style:normal;opacity:.6}
.crumbs span:last-child{color:#fff}
.ph h1{margin:0;color:rgb(var(--text));font-size:34px;font-weight:500;line-height:1.1;letter-spacing:-.035em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ph .lede{max-width:620px;margin:10px 0 0;color:rgb(var(--text-2));font-size:14.5px;line-height:1.6}
.ph .lede:empty{display:none}
.ph-acts{display:flex;align-items:center;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.ph-acts:empty{display:none}
.pad{padding:8px 40px 40px}
.app[data-head=bar] .pad{padding:24px}
.wrapw{max-width:1440px}

/* ── buttons & inputs ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;border-radius:8px;font-size:var(--fs);font-weight:500;transition:background .2s,color .2s,box-shadow .2s,opacity .2s,scale .2s var(--spring);user-select:none}
.btn:active{scale:.95}
.btn.md{padding:7px 14px;min-height:32px}
.btn.lg{padding:10px 18px;border-radius:9px;min-height:38px}
.btn.sm{padding:4px 9px;border-radius:5px;gap:6px;min-height:24px}
.btn.xs{padding:2px 7px;border-radius:5px;gap:5px;font-size:var(--fx);min-height:22px}
.btn.dark{background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke))}
.btn.dark:hover{background:rgb(var(--bg-3))}
.btn.ghost{color:rgb(var(--text-2))}
.btn.ghost:hover{background:rgb(var(--bg-2));color:rgb(var(--text))}
.btn.blue{background:rgb(var(--primary));color:rgb(var(--bg))}
.btn.blue:hover{background:rgba(var(--primary),.86)}
.btn.green{background:rgb(var(--green));color:rgb(var(--bg))}
.btn.green:hover{background:rgba(var(--green),.86)}
.btn.red{background:rgb(var(--red));color:#fff}
.btn.red:hover{background:rgba(var(--red),.86)}
.btn.soft-red{background:rgba(var(--red),.12);color:rgb(var(--red))}
.btn.soft-red:hover{background:rgba(var(--red),.2)}
.btn.soft-green{background:rgba(var(--green),.12);color:rgb(var(--green))}
.btn.soft-green:hover{background:rgba(var(--green),.2)}
.btn.glow{box-shadow:0 6px 28px -6px rgba(var(--primary),.7),0 0 0 1px rgba(var(--primary),.4)}
.btn[disabled]{opacity:.45;cursor:default;pointer-events:none}
.btn svg.i{width:13px;height:13px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>label,.lab{font-size:var(--fs);color:rgb(var(--text-2));display:flex;align-items:center;justify-content:space-between;gap:8px}
.lab small,.field>label small{color:rgb(var(--text-3));font-size:var(--fx)}
.inp{display:flex;align-items:center;gap:8px;height:36px;padding:0 11px;border-radius:7px;background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke));transition:border-color .2s,background .2s;min-width:0}
.inp:focus-within{border-color:rgba(var(--primary),.6);background:rgb(var(--bg-2));box-shadow:0 0 0 3px rgba(var(--primary),.12)}
/* every text field sits in a box (.inp, .search) whose border is its focus ring: no second outline on the field inside it,
   anywhere. Checkboxes, sliders and buttons keep the outline (that is their only focus mark) */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):focus-visible,select:focus-visible,textarea:focus-visible{outline:none}
.inp input,.inp select{flex:1;min-width:0;height:100%}
.inp input::placeholder,textarea::placeholder{color:rgb(var(--text-3))}
.inp .u{color:rgb(var(--text-3));font-size:var(--fs);white-space:nowrap}
.inp.sm{height:30px;padding:0 9px;font-size:var(--fs)}
textarea.inp{height:auto;min-height:84px;padding:9px 11px;resize:vertical;line-height:1.5}
select{appearance:none;cursor:pointer}
select option{background:rgb(var(--bg-2))}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.row{display:flex;align-items:center;gap:10px;min-width:0}
.row.sp{justify-content:space-between}
.col{display:flex;flex-direction:column;gap:12px;min-width:0}
.stack{display:flex;flex-direction:column;gap:18px}
.sw{position:relative;width:32px;height:18px;border-radius:999px;background:rgb(var(--bg-4));transition:background .2s;flex:none;cursor:pointer}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:rgb(var(--text-2));transition:transform .2s var(--spring),background .2s}
.sw.on{background:rgb(var(--primary))}
.sw.on::after{transform:translateX(14px);background:#fff}
.seg{display:inline-flex;padding:3px;border-radius:8px;background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke));gap:2px}
.seg button{height:26px;padding:0 11px;border-radius:6px;color:rgb(var(--text-3));font-size:var(--fs);font-weight:500;transition:background .15s,color .15s}
.seg button:hover{color:rgb(var(--text))}
.seg button.on{background:rgb(var(--bg-4));color:rgb(var(--text))}
.seg.wide{display:flex}.seg.wide button{flex:1}
.check{display:flex;align-items:center;gap:8px;font-size:var(--fs);color:rgb(var(--text-2));cursor:pointer;user-select:none}
.check i{width:15px;height:15px;border-radius:4px;border:1px solid rgb(var(--bg-4));display:grid;place-items:center;transition:background .15s,border-color .15s}
.check.on i{background:rgb(var(--primary));border-color:rgb(var(--primary))}
.check.on i::after{content:"";width:7px;height:4px;border:2px solid rgb(var(--bg));border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
input[type=range]{appearance:none;width:100%;height:4px;border-radius:4px;background:rgb(var(--bg-4));cursor:pointer}
input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:rgb(var(--primary));box-shadow:0 0 0 4px rgba(var(--primary),.18)}

/* ── cards, tables ── */
.card{background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke));border-radius:10px}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;height:46px;padding:0 16px;border-bottom:1px solid rgb(var(--stroke))}
.card-h h3{font-size:var(--fm);font-weight:500;display:flex;align-items:center;gap:8px}
.card-b{padding:16px}
.sect{font-size:var(--fx);letter-spacing:.07em;text-transform:uppercase;color:rgb(var(--text-3));margin-bottom:10px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:rgb(var(--stroke));border:1px solid rgb(var(--stroke));border-radius:10px;overflow:hidden}
.kpi{background:rgb(var(--bg-2));padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.kpi i{font-style:normal;font-size:var(--fs);color:rgb(var(--text-3))}
.kpi b{font-size:var(--fl);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi small{font-size:var(--fx);color:rgb(var(--text-3))}
.tbl{width:100%;border-collapse:collapse;font-size:var(--fs)}
.tbl th{position:sticky;top:0;z-index:1;text-align:left;font-weight:400;color:rgb(var(--text-3));background:rgb(var(--bg));padding:0 12px;height:34px;border-bottom:1px solid rgb(var(--stroke));white-space:nowrap}
.tbl td{padding:0 12px;height:44px;border-bottom:1px solid rgba(var(--line),.04);white-space:nowrap;font-variant-numeric:tabular-nums}
.tbl tr:hover td{background:rgba(var(--line),.018)}
.tbl .r{text-align:right}
.tbl td.cut{max-width:220px;overflow:hidden;text-overflow:ellipsis}
.addr{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fx);color:rgb(var(--text-2));cursor:pointer}
.addr:hover{color:rgb(var(--text))}
.dot{width:8px;height:8px;border-radius:50%;flex:none;background:rgb(var(--text-3))}
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:56px 20px}
.empty .ico{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke));color:rgb(var(--text-2));margin-bottom:8px}
.empty .ico svg.i{width:20px;height:20px}
.empty h3{font-size:var(--fxl);font-weight:500;letter-spacing:-.015em}
.empty p{color:rgb(var(--text-2));font-size:var(--fs);max-width:44ch;margin-bottom:12px}
.skel{background:linear-gradient(90deg,rgba(var(--line),.03),rgba(var(--line),.07),rgba(var(--line),.03));background-size:200% 100%;animation:sk 1.4s linear infinite;border-radius:5px}
@keyframes sk{to{background-position:-200% 0}}
.tabs{display:flex;align-items:center;gap:2px;height:40px;padding:0 10px;border-bottom:1px solid rgb(var(--stroke));overflow-x:auto}
.tabs button{height:28px;padding:0 11px;border-radius:6px;color:rgb(var(--text-3));font-size:var(--fs);font-weight:500;white-space:nowrap;transition:background .15s,color .15s}
.tabs button:hover{color:rgb(var(--text))}
.tabs button.on{background:rgb(var(--bg-3));color:rgb(var(--text))}
.tabs .cnt{margin-left:5px;color:rgb(var(--text-3));font-weight:400}

/* ── overlays ── */
.toasts{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{pointer-events:auto;min-width:240px;max-width:420px;padding:11px 14px;border-radius:9px;background:rgb(var(--bg-3));border:1px solid rgba(var(--line),.08);box-shadow:0 16px 40px -12px rgba(0,0,0,.6);font-size:var(--fs);display:flex;gap:10px;align-items:flex-start;animation:tin .28s var(--spring)}
.toast.ok{border-color:rgba(var(--green),.35)}
.toast.bad{border-color:rgba(var(--red),.4)}
.toast b{font-weight:500}
@keyframes tin{from{opacity:0;transform:translateY(8px) scale(.98)}}
.modal-back{position:fixed;inset:0;z-index:80;background:rgba(3,4,7,.66);display:grid;place-items:center;padding:24px;animation:fin .18s ease}
@keyframes fin{from{opacity:0}}
.modal{width:min(520px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:rgb(var(--bg-2));border:1px solid rgba(var(--line),.07);border-radius:14px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);animation:min .26s var(--spring)}
.modal.wide{width:min(760px,100%)}.modal.xwide{width:min(1040px,100%)}
@keyframes min{from{opacity:0;transform:translateY(10px) scale(.985)}}
.modal-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid rgb(var(--stroke))}
.modal-h h3{font-size:var(--fl);font-weight:500}
.modal-b{padding:18px;overflow:auto;display:flex;flex-direction:column;gap:16px}
.modal-f{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid rgb(var(--stroke))}
.note{font-size:var(--fs);color:rgb(var(--text-2));line-height:1.55}
.note.warn{padding:10px 12px;border-radius:8px;background:rgba(var(--yellow),.08);border:1px solid rgba(var(--yellow),.2);color:rgb(var(--text))}
.note.info{padding:10px 12px;border-radius:8px;background:rgba(var(--primary),.07);border:1px solid rgba(var(--primary),.18);color:rgb(var(--text))}
.note.bad{padding:10px 12px;border-radius:8px;background:rgba(var(--red),.08);border:1px solid rgba(var(--red),.22);color:rgb(var(--text))}
.menu{position:fixed;z-index:85;min-width:180px;padding:5px;border-radius:9px;background:rgb(var(--bg-3));border:1px solid rgba(var(--line),.08);box-shadow:0 16px 40px -12px rgba(0,0,0,.6);animation:min .18s var(--spring)}
.menu button{display:flex;align-items:center;gap:9px;width:100%;height:32px;padding:0 10px;border-radius:6px;font-size:var(--fs);color:rgb(var(--text-2));text-align:left}
.menu button:hover{background:rgb(var(--bg-4));color:rgb(var(--text))}
.menu button.bad{color:rgb(var(--red))}
.menu hr{border:0;border-top:1px solid rgba(var(--line),.06);margin:4px 2px}

.sep{width:1px;height:14px;background:rgb(var(--stroke));margin:0 4px}
.live{color:rgb(var(--green))}
.badge{min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:rgb(var(--primary));color:rgb(var(--bg));font-size:10px;font-weight:600;display:inline-grid;place-items:center}

/* ── sign in ── */
.gate{position:fixed;inset:0;z-index:70;display:grid;place-items:center;background:radial-gradient(1000px 600px at 50% -10%,rgba(var(--primary),.10),transparent 60%),rgb(var(--bg))}
.gate-card{width:min(420px,calc(100% - 32px));padding:28px;border-radius:16px;background:rgb(var(--bg-2));border:1px solid rgba(var(--line),.07);box-shadow:0 30px 80px -20px rgba(0,0,0,.7);display:flex;flex-direction:column;gap:16px}
.gate-card .logo{gap:10px}
.gate-card h1{font-size:22px;font-weight:500;letter-spacing:-.02em}
.wallet-btn{display:flex;align-items:center;gap:12px;width:100%;height:46px;padding:0 14px;border-radius:10px;background:rgb(var(--bg-3));border:1px solid rgb(var(--stroke));font-weight:500;transition:background .15s,border-color .15s,scale .2s var(--spring)}
.wallet-btn:hover{background:rgb(var(--bg-4));border-color:rgba(var(--primary),.35)}
.wallet-btn:active{scale:.98}
.wallet-btn img,.wallet-btn .wl{width:24px;height:24px;border-radius:6px}
.wallet-btn small{margin-left:auto;color:rgb(var(--text-3));font-size:var(--fx);font-weight:400}
.or{display:flex;align-items:center;gap:10px;color:rgb(var(--text-3));font-size:var(--fx)}
.or::before,.or::after{content:"";flex:1;height:1px;background:rgb(var(--stroke))}

/* ── wizard ── */
.rail{display:flex;align-items:center;gap:6px;font-size:var(--fs)}
.rail .st{display:flex;align-items:center;gap:8px;color:rgb(var(--text-3));padding:6px 10px;border-radius:7px}
.rail .st i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:var(--fx);background:rgb(var(--bg-3));color:rgb(var(--text-2))}
.rail .st.on{color:rgb(var(--text));background:rgb(var(--bg-2))}
.rail .st.on i{background:rgb(var(--primary));color:rgb(var(--bg))}
.rail .st.done i{background:rgba(var(--green),.18);color:rgb(var(--green))}
.rail .ln{width:18px;height:1px;background:rgb(var(--stroke))}
.wz{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.wz-side{position:sticky;top:0;display:flex;flex-direction:column;gap:14px}
.est{display:flex;flex-direction:column;gap:0}
.est .er{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid rgba(var(--line),.05);font-size:var(--fs)}
.est .er:last-child{border-bottom:0}
.est .er i{font-style:normal;color:rgb(var(--text-3))}
.est .er b{font-weight:500;font-variant-numeric:tabular-nums}
.modecards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mode{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:10px;background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke));text-align:left;transition:border-color .15s,background .15s,scale .2s var(--spring)}
.mode:hover{border-color:rgba(var(--line),.12)}
.mode.on{border-color:rgba(var(--primary),.5);background:linear-gradient(180deg,rgba(var(--primary),.10),rgba(var(--primary),.03))}
.mode b{font-weight:500}
.mode span{font-size:var(--fs);color:rgb(var(--text-3));line-height:1.45}
.drop{display:grid;place-items:center;text-align:center;aspect-ratio:1;border-radius:12px;border:1px dashed rgba(var(--line),.14);background:rgb(var(--bg-2));cursor:pointer;overflow:hidden;position:relative;transition:border-color .15s}
.drop:hover{border-color:rgba(var(--primary),.5)}
.drop img,.drop video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.drop span{font-size:var(--fs);color:rgb(var(--text-3));padding:12px}
.layer{display:grid;grid-template-columns:24px 1fr 110px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(var(--line),.05)}
.layer .n{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:var(--fx);background:rgb(var(--bg-3));color:rgb(var(--text-2))}
.layer b{font-weight:500;font-size:var(--fs)}
.layer small{display:block;color:rgb(var(--text-3));font-size:var(--fx)}

/* ── live workspace ── */
.ws{display:grid;grid-template-columns:minmax(0,1fr) 360px;height:100%;min-height:0}
.ws-main{display:grid;grid-template-rows:auto minmax(260px,1fr) minmax(240px,40%);min-height:0;border-right:1px solid rgb(var(--stroke))}
.ws-strip{display:flex;align-items:center;gap:22px;padding:10px 18px;border-bottom:1px solid rgb(var(--stroke));overflow-x:auto}
.ws-strip .st{display:flex;flex-direction:column;gap:2px;min-width:max-content}
.ws-strip .st i{font-style:normal;font-size:var(--fx);color:rgb(var(--text-3))}
.ws-strip .st b{font-size:var(--fm);font-weight:500;font-variant-numeric:tabular-nums}
.ws-chart{position:relative;min-height:0;border-bottom:1px solid rgb(var(--stroke))}
.ws-chart .bar{position:absolute;left:10px;top:8px;z-index:2;display:flex;gap:4px}
.ws-chart .credit{position:absolute;right:76px;top:12px;z-index:2;font-size:10px;color:rgb(var(--text-3))}
.ws-chart .credit a:hover{color:rgb(var(--text-2))}
.ws-low{display:flex;flex-direction:column;min-height:0}
.ws-low .body{flex:1;min-height:0;overflow:auto}
.ws-side{display:flex;flex-direction:column;min-height:0;overflow:auto}
.panel{border-bottom:1px solid rgb(var(--stroke));padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.panel h4{font-size:var(--fs);font-weight:500;color:rgb(var(--text-2));display:flex;align-items:center;justify-content:space-between}
.qrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.qrow .btn{min-height:30px}
.tile{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke));font-size:var(--fs);text-align:left;transition:border-color .15s,background .15s,scale .2s var(--spring)}
.tile:hover{border-color:rgba(var(--line),.12);background:rgb(var(--bg-3))}
.tile:active{scale:.98}
.tile svg.i{color:rgb(var(--text-2))}
.tile small{display:block;color:rgb(var(--text-3));font-size:var(--fx)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wtick{width:15px;height:15px;border-radius:4px;border:1px solid rgb(var(--bg-4));flex:none;display:grid;place-items:center;cursor:pointer}
.wtick.on{background:rgb(var(--primary));border-color:rgb(var(--primary))}
.wtick.on::after{content:"";width:7px;height:4px;border:2px solid rgb(var(--bg));border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.trade-buy{color:rgb(var(--green))}.trade-sell{color:rgb(var(--red))}
.distbar{display:flex;height:8px;border-radius:5px;overflow:hidden;background:rgb(var(--bg-3))}
.distbar i{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:var(--fx);color:rgb(var(--text-2))}
.legend span{display:flex;align-items:center;gap:6px}
.legend b{width:8px;height:8px;border-radius:2px;display:inline-block}
.prog{height:4px;border-radius:4px;background:rgb(var(--bg-4));overflow:hidden}
.prog i{display:block;height:100%;background:rgb(var(--primary));transition:width .4s ease}
.task{padding:12px;border-radius:9px;background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke));display:flex;flex-direction:column;gap:8px}
.task .lg{font-size:var(--fx);color:rgb(var(--text-3));max-height:96px;overflow:auto;font-family:var(--mono);line-height:1.5}
.task .lg .err{color:rgb(var(--red))}

/* ── smaller screens ── */
@media (max-width:1280px){.wz{grid-template-columns:minmax(0,1fr)}.wz-side{position:static}.ws{grid-template-columns:minmax(0,1fr) 320px}}
@media (max-width:980px){.ws{grid-template-columns:minmax(0,1fr)}.ws-side{border-top:1px solid rgb(var(--stroke))}.modecards{grid-template-columns:1fr 1fr}.grid3,.grid4{grid-template-columns:1fr 1fr}}
@media (max-width:1360px){.net,.solpx,.top-r .vsep{display:none}.runs span{display:none}}
@media (max-width:1100px){.cmdk span,.cmdk kbd{display:none}.cmdk{flex:none;width:40px;padding:0;justify-content:center}.modesw button{padding:0 9px}}
@media (max-width:820px){
  body{overflow:auto}
  .app,.app[data-collapsed=true]{--side:0px;grid-template-columns:minmax(0,1fr);grid-template-areas:"top" "page";height:auto;min-height:100vh}
  .top{position:sticky;top:0}
  .top-l,.app[data-collapsed=true] .top-l{width:auto;border-right:0;padding:0 6px 0 12px}
  .app .top-l .logo b{display:none}
  .top .burger{display:grid}
  .top-c{padding:0 6px;gap:8px}
  .modesw button{padding:0 8px;font-size:11px}
  .modesw button[data-m=sim]{max-width:112px;overflow:hidden;text-overflow:ellipsis}
  .runs,.funderbtn .l,.funderbtn>svg.i:last-child{display:none}
  .top-r{padding:0 10px 0 4px;gap:6px}
  .side,.app[data-collapsed=true] .side{position:fixed;top:0;bottom:0;left:0;width:min(300px,84vw);z-index:76;transform:translateX(-102%);transition:transform .24s cubic-bezier(.2,.7,.2,1);box-shadow:24px 0 60px rgba(0,0,0,.6)}
  .app.side-open .side{transform:none}
  .app.side-open .scrim{display:block;position:fixed;inset:0;z-index:75;background:rgba(3,4,7,.5)}
  .app[data-collapsed=true] .logo b,.app[data-collapsed=true] .si span,.app[data-collapsed=true] .si em,.app[data-collapsed=true] .sg-h,.app[data-collapsed=true] .newl span,.app[data-collapsed=true] .crow .nm,.app[data-collapsed=true] .crow .st,.app[data-collapsed=true] .simcard{display:revert}
  .app[data-collapsed=true] .si,.app[data-collapsed=true] .crow{justify-content:flex-start;padding:0 10px}
  .grid2{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ── launch currency (the pair: SOL, USDC, listed tokens and stocks) ── */
.qpicks{display:flex;flex-wrap:wrap;gap:8px}
.qchip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px 0 8px;border-radius:999px;background:rgb(var(--bg-2));border:1px solid rgb(var(--stroke));font-size:var(--fs);font-weight:500;transition:border-color .15s,background .15s}
.qchip:hover{border-color:rgba(var(--line),.14);background:rgb(var(--bg-3))}
.qchip.on{border-color:rgba(var(--primary),.55);background:linear-gradient(180deg,rgba(var(--primary),.14),rgba(var(--primary),.04))}
.qchip.more{color:rgb(var(--text-2));padding-left:11px}
.qlogo{display:inline-grid;place-items:center;flex:none;border-radius:50%;overflow:hidden;background:rgb(var(--bg-4));font-size:9px;font-weight:600;color:rgb(var(--text-2))}
.qlogo img{width:100%;height:100%;object-fit:cover}
.qlogo svg{width:100%;height:100%}
.qcur{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:rgb(var(--bg-2));border:1px solid rgba(var(--primary),.28)}
.qcur b{display:block;font-weight:500}
.qcur span{display:block;font-size:var(--fx);color:rgb(var(--text-3))}
.qcur-r{margin-left:auto;text-align:right}
.qlist{display:flex;flex-direction:column;max-height:52vh;overflow:auto;margin:12px -4px;padding:0 4px}
.qitem{display:grid;grid-template-columns:26px minmax(0,1fr) auto 90px;align-items:center;gap:12px;padding:9px 10px;border-radius:8px;text-align:left;transition:background .12s}
.qitem:hover{background:rgb(var(--bg-3))}
.qitem.on{background:rgba(var(--primary),.1)}
.qitem .t b{display:block;font-weight:500;font-size:var(--fs)}
.qitem .t span{display:block;font-size:var(--fx);color:rgb(var(--text-3));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qitem .p{text-align:right;font-size:var(--fs);color:rgb(var(--text-2))}
.qcustom{display:flex;align-items:center;gap:16px;padding-top:12px;border-top:1px solid rgb(var(--stroke));flex-wrap:wrap}
.qcustom b{font-weight:500;font-size:var(--fs)}

/* ── the Instant Trade panel (floating) ── */
.itp{position:fixed;z-index:60;width:330px;border-radius:12px;border:1px solid rgba(var(--line),.1);box-shadow:0 24px 70px -20px rgba(0,0,0,.85);color:rgb(var(--text));overflow:hidden}
.itp-h{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border-bottom:1px solid rgba(var(--line),.07);cursor:grab;user-select:none;touch-action:none}
.itp-h b{font-weight:500;font-size:var(--fs)}
.itp-h .sub{font-size:var(--fx);color:rgb(var(--text-3));margin-right:auto}
.itp-h .grip{color:rgb(var(--text-3));display:grid}
.itp-b{padding:12px;display:flex;flex-direction:column;gap:10px}
.itp-scope{display:flex;flex-wrap:wrap;gap:5px}
.itp-scope button{height:24px;padding:0 9px;border-radius:999px;font-size:var(--fx);background:rgba(var(--line),.05);color:rgb(var(--text-2))}
.itp-scope button.on{background:rgba(var(--primary),.18);color:rgb(var(--primary))}
.itp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.itp-kpis span{display:flex;flex-direction:column;gap:1px;padding:7px 8px;border-radius:8px;background:rgba(var(--line),.04)}
.itp-kpis i{font-style:normal;font-size:10px;color:rgb(var(--text-3))}
.itp-kpis b{font-weight:500;font-size:var(--fs)}
.itp-q{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.itp-q .btn,.qrow6 .btn{position:relative}
.itp-w{display:flex;align-items:center;gap:8px;padding:6px 4px;font-size:var(--fs);cursor:pointer}
.itp-w .num{margin-left:auto}
.qrow6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.qrow6 .btn{min-height:30px}
.kb{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 3px;margin-left:6px;border-radius:4px;background:rgba(var(--line),.1);color:rgb(var(--text-2));font-size:10px;font-family:var(--mono)}
button.kb{height:24px;min-width:30px;font-size:11px;margin:0;cursor:pointer}
.kolt,.trkt{display:inline-flex;align-items:center;gap:5px;height:18px;padding:0 7px 0 2px;border-radius:999px;font-size:var(--fx);font-weight:500;vertical-align:middle}
.kolt{background:rgba(255,122,182,.13);color:#ff9cc8}
.kolt img{width:14px;height:14px;border-radius:50%;object-fit:cover}
.trkt{background:rgba(93,211,232,.12);color:#7fe0f0;padding-left:7px}

/* a breakdown under a form (Send tokens): which wallet sends what */
details.brk{border:1px solid rgb(var(--stroke));border-radius:10px;padding:0 12px}
details.brk>summary{cursor:pointer;padding:10px 0;font-size:var(--fs);color:rgb(var(--text-2));list-style:none}
details.brk>summary::before{content:'▸ ';color:rgb(var(--text-3))}
details.brk[open]>summary::before{content:'▾ '}
details.brk .tbl{margin-bottom:8px}

/* Collaborate: the actions a member may do, two columns of ticks */
.permgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}
.permgrid .check{padding:6px 0}
.permgrid small{font-size:var(--fx)}

/* Activity: rows open to their breakdown */
.qchip.on{background:rgba(var(--primary),.16);border-color:rgba(var(--primary),.5);color:rgb(var(--text))}
.acttbl tr.det{display:none}
.acttbl tr.open+tr.det{display:table-row}
.acttbl tr.det>td{background:rgb(var(--bg-2));border-top:0}
.acttbl .chev{display:inline-block;color:rgb(var(--text-3));transition:transform .15s}
.acttbl tr.open .chev{transform:rotate(90deg)}
.kvgrid{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px 14px;font-size:var(--fs)}

/* the P&L card editor */
.pnlgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.bgrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.bgthumb{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:62px;border-radius:8px;overflow:hidden;border:1px solid rgb(var(--stroke));background:rgb(var(--bg-2));cursor:pointer;padding:0}
.bgthumb canvas,.bgthumb img,.bgthumb video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bgthumb small{position:relative;font-size:10px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8);align-self:flex-start;margin:auto 0 4px 6px}
.bgthumb.on{border-color:rgb(var(--primary));box-shadow:0 0 0 2px rgba(var(--primary),.35)}
.bgthumb.add{color:rgb(var(--text-2))}
.bgthumb.add small{color:rgb(var(--text-2));text-shadow:none;align-self:center;margin:0}
.bgdel{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;display:none;align-items:center;justify-content:center;padding:0}
.bgdel .i{width:12px;height:12px}
.bgthumb:hover .bgdel{display:flex}
@media (max-width:900px){.pnlgrid{grid-template-columns:1fr}}

/* Dashboard: the profile and the P&L Calendar */
.profile{margin-bottom:6px}
.profile-banner{height:150px;background-size:cover;background-position:center}
.profile-row{display:flex;align-items:flex-end;gap:16px;padding:0 20px 18px;margin-top:-38px}
.profile-av{width:88px;height:88px;border-radius:50%;border:4px solid rgb(var(--bg-1,var(--bg)));background:rgb(var(--bg-3));display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:600;overflow:hidden;flex:none}
.profile-av img{width:100%;height:100%;object-fit:cover}
.bnrow{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.bnthumb{height:40px;border-radius:7px;border:1px solid rgb(var(--stroke));cursor:pointer;display:flex;align-items:center;justify-content:center;color:rgb(var(--text-2));background:rgb(var(--bg-2));padding:0}
.bnthumb.on{border-color:rgb(var(--primary));box-shadow:0 0 0 2px rgba(var(--primary),.35)}
.calmonth{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.calyear{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.calhead{text-align:center;padding-bottom:2px}
.calcell{display:flex;flex-direction:column;gap:3px;min-height:74px;padding:8px 9px;border-radius:8px;border:1px solid rgb(var(--stroke));background:rgb(var(--bg-2));text-align:left;font-size:12px}
.calyear .calcell{min-height:92px;cursor:pointer}
.calcell b{font-size:13px;font-weight:600}

/* Settings → Appearance: presets, the custom palette */
.tpresets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tpreset{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:9px;border:1px solid rgb(var(--stroke));background:rgb(var(--bg-2));cursor:pointer;transition:border-color .15s}
.tpreset:hover{border-color:rgba(var(--line),.16)}
.tpreset.on{border-color:rgb(var(--primary));box-shadow:0 0 0 2px rgba(var(--primary),.25)}
.tswatch{display:flex;height:34px;border-radius:6px;overflow:hidden;border:1px solid rgba(var(--line),.08)}
.tswatch i{flex:1}
.tgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tpick{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:8px;border:1px solid rgb(var(--stroke));background:rgb(var(--bg-2));cursor:pointer;font-size:12px}
.tpick input{width:28px;height:22px;border:0;padding:0;background:none;cursor:pointer}
/* button styles: Classic (squarer), Rounded (pills); Modern is the default */
html.btn-classic .btn,html.btn-classic .icon-btn,html.btn-classic .seg,html.btn-classic .seg button{border-radius:4px}
html.btn-rounded .btn,html.btn-rounded .icon-btn,html.btn-rounded .seg,html.btn-rounded .seg button,html.btn-rounded .qchip{border-radius:999px}
/* a light theme: shadows and overlays that assumed a dark page */
html.light .modal-back{background:rgba(20,22,30,.35)}
html.light .skel{background:linear-gradient(90deg,rgb(var(--bg-3)),rgb(var(--bg-4)),rgb(var(--bg-3)));background-size:200% 100%}
html.light .logo img{filter:invert(1) brightness(.25)}

/* the chart's toggles (Callouts) and the callout card */
.chip-t{height:26px;padding:0 10px;border-radius:7px;font-size:var(--fx);font-weight:500;color:rgb(var(--text-3));background:rgba(var(--bg-2),.85);border:1px solid rgb(var(--stroke))}
.chip-t.on{color:#f5c46b;border-color:rgba(245,196,107,.45);background:rgba(245,196,107,.08)}
.co-card{position:absolute;z-index:5;width:320px;max-height:300px;overflow:auto;padding:10px 12px;border-radius:10px;background:rgba(var(--bg-2),.97);border:1px solid rgba(245,196,107,.35);box-shadow:0 12px 30px rgba(0,0,0,.45);font-size:var(--fs);display:flex;flex-direction:column;gap:10px;pointer-events:auto}
.co-card .co-one{display:flex;flex-direction:column;gap:6px}
.co-card .co-one+.co-one{border-top:1px solid rgb(var(--stroke));padding-top:8px}
.co-card img{width:18px;height:18px;border-radius:50%;object-fit:cover}
.co-card p{color:rgb(var(--text-2));line-height:1.45;white-space:pre-wrap}
.co-card a{color:rgb(var(--primary))}
.co-card .co-x{position:absolute;top:6px;right:6px}

/* the sign-in card's way into the simulator */
.gate-sim{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:10px;background:rgba(var(--yellow),.06);border:1px solid rgba(var(--yellow),.24);text-align:left;transition:border-color .15s,background .15s}
.gate-sim:hover{border-color:rgba(var(--yellow),.5);background:rgba(var(--yellow),.1)}
.gate-sim>svg.i:first-child{width:18px;height:18px;color:rgb(var(--yellow))}
.gate-sim span{flex:1;display:flex;flex-direction:column;gap:2px}
.gate-sim b{font-weight:500;font-size:13px}
.gate-sim small{font-size:11.5px;color:rgb(var(--text-2))}
.gate-sim>svg.i:last-child{color:rgb(var(--text-3))}

/* ══ the Rift skin for every shared part: hairlines, the off-white primary, quiet outlined buttons, light type ══ */
.btn{border-radius:8px;font-size:12.5px;font-weight:550;letter-spacing:-.005em;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease),filter .12s var(--ease),transform 80ms var(--ease)}
.btn:active{scale:1;transform:scale(.97)}
.btn.md{min-height:32px;padding:0 13px}
.btn.lg{min-height:38px;padding:0 16px;border-radius:9px;font-size:13px}
.btn.sm{min-height:26px;padding:0 9px;border-radius:7px;font-size:12px}
.btn.xs{min-height:22px;padding:0 7px;border-radius:6px;font-size:11px}
.btn.blue{background:#e9ebe8;color:#0a0b0b;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.btn.blue:hover{background:#e9ebe8;filter:brightness(1.08)}
.btn.glow{box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 30px -12px rgba(237,239,237,.45)}
.btn.dark{background:rgba(var(--line),.03);border:1px solid rgba(var(--line),.075);color:rgb(var(--text-2))}
.btn.dark:hover{background:rgba(var(--line),.06);border-color:rgba(var(--line),.12);color:rgb(var(--text))}
.btn.ghost{color:rgb(var(--text-2))}
.btn.ghost:hover{background:rgba(var(--line),.05);color:rgb(var(--text))}
.btn.green{background:rgb(var(--green));color:#06140d}
.btn.red{background:rgb(var(--red));color:#fff}
.btn.soft-red{background:rgba(var(--red),.1);color:rgb(var(--red));box-shadow:inset 0 0 0 1px rgba(var(--red),.16)}
.btn.soft-green{background:rgba(var(--green),.1);color:rgb(var(--green));box-shadow:inset 0 0 0 1px rgba(var(--green),.16)}
.inp{height:36px;border-radius:8px;background:rgba(var(--line),.02);border:1px solid rgba(var(--line),.075);transition:border-color .14s var(--ease),background .14s var(--ease),box-shadow .14s var(--ease)}
.inp:hover{border-color:rgba(var(--line),.12)}
.inp:focus-within{background:rgba(var(--line),.035);border-color:rgba(var(--line),.22);box-shadow:0 0 0 3px rgba(var(--line),.05)}
.field>label,.lab{font-size:12.5px;font-weight:500;color:rgb(var(--text-2))}
.seg{padding:3px;border-radius:9px;background:rgba(var(--line),.02);border:1px solid rgba(var(--line),.075)}
.seg button{height:26px;padding:0 11px;border-radius:6px;font-size:12.5px;font-weight:500;color:rgb(var(--text-3))}
.seg button.on{background:rgba(var(--line),.07);color:rgb(var(--text));box-shadow:inset 0 0 0 1px rgba(var(--line),.04)}
.sw{background:rgba(var(--line),.1)}
.sw.on{background:#e9ebe8}
.sw.on::after{background:#0a0b0b}
.check i{border-color:rgba(var(--line),.2);border-radius:4px}
.check.on i{background:#e9ebe8;border-color:#e9ebe8}
input[type=range]{background:rgba(var(--line),.1)}
input[type=range]::-webkit-slider-thumb{background:#e9ebe8;box-shadow:0 0 0 4px rgba(var(--line),.08)}
.card{background:rgba(var(--line),.018);border:1px solid rgba(var(--line),.075);border-radius:12px}
.card-h{height:48px;padding:0 18px;border-bottom:1px solid rgba(var(--line),.075)}
.card-h h3{font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.card-b{padding:18px}
.sect{font-size:11px;font-weight:600;letter-spacing:.06em;color:rgb(var(--text-3))}
.kpis{gap:0;background:transparent;border:1px solid rgba(var(--line),.075);border-radius:12px}
.kpi{background:transparent;border-right:1px solid rgba(var(--line),.075);padding:16px 18px}
.kpi:last-child{border-right:0}
.kpi i{font-size:12px;font-weight:500;color:rgb(var(--text-3))}
.kpi b{font-size:20px;font-weight:500;letter-spacing:-.02em}
.tbl{font-size:13px}
.tbl th{height:38px;padding:0 14px;font-size:12px;font-weight:500;color:rgb(var(--text-3));background:rgb(var(--bg));border-bottom:1px solid rgba(var(--line),.075)}
.tbl td{height:48px;padding:0 14px;border-bottom:1px solid rgba(var(--line),.05)}
.tbl tr:hover td{background:rgba(var(--line),.025)}
.tbl tr:last-child td{border-bottom:0}
.pill{height:20px;padding:0 8px;border-radius:6px;font-size:11px;font-weight:600;background:rgba(var(--line),.05);color:rgb(var(--text-2));box-shadow:inset 0 0 0 1px rgba(var(--line),.05)}
.pill.live{background:rgba(var(--green),.09);color:rgb(var(--green));box-shadow:inset 0 0 0 1px rgba(var(--green),.14)}
.pill.draft{background:rgba(var(--line),.05);color:rgb(var(--text-2))}
.pill.warn{background:rgba(var(--yellow),.09);color:rgb(var(--yellow));box-shadow:inset 0 0 0 1px rgba(var(--yellow),.15)}
.pill.bad{background:rgba(var(--red),.09);color:rgb(var(--red));box-shadow:inset 0 0 0 1px rgba(var(--red),.15)}
.pill.blue{background:rgba(var(--line),.07);color:rgb(var(--text))}
.tag{border-radius:5px;background:rgba(var(--line),.08);color:rgb(var(--text))}
.badge{background:#e9ebe8;color:#0a0b0b}
.tabs{height:44px;padding:0 14px;gap:2px;border-bottom:1px solid rgba(var(--line),.075)}
.tabs button{height:28px;padding:0 11px;border-radius:7px;font-size:12.5px;font-weight:500;color:rgb(var(--text-3))}
.tabs button:hover{color:rgb(var(--text))}
.tabs button.on{background:rgba(var(--line),.06);color:rgb(var(--text));box-shadow:inset 0 0 0 1px rgba(var(--line),.04)}
.addr{font-size:11.5px}
.empty .ico{border-radius:10px;background:rgba(var(--line),.03);border:1px solid rgba(var(--line),.075)}
.empty h3{font-size:18px;font-weight:500;letter-spacing:-.02em}
.empty p{font-size:13px;line-height:1.6}
.note{font-size:12.5px;line-height:1.6}
.note.info{background:rgba(var(--line),.03);border-color:rgba(var(--line),.09)}
.toast{background:rgb(18,20,20);border:1px solid rgba(var(--line),.12);border-radius:10px;font-size:12.5px;box-shadow:0 18px 50px -14px rgba(0,0,0,.75)}
.modal-back{background:rgba(5,6,6,.52);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.modal{background:rgb(14,15,15);border:1px solid rgba(var(--line),.12);border-radius:14px;box-shadow:0 40px 100px -24px rgba(0,0,0,.85)}
.modal-h{padding:16px 20px;border-bottom:1px solid rgba(var(--line),.075)}
.modal-h h3{font-size:15px;font-weight:600;letter-spacing:-.015em}
.modal-b{padding:20px}
.modal-f{padding:14px 20px;border-top:1px solid rgba(var(--line),.075)}
.menu{background:rgb(18,20,20);border:1px solid rgba(var(--line),.12);border-radius:10px;padding:5px;box-shadow:0 20px 50px -14px rgba(0,0,0,.8)}
.menu button{height:32px;border-radius:7px;font-size:12.5px;font-weight:500;color:rgb(var(--text-2))}
.menu button:hover{background:rgba(var(--line),.06);color:rgb(var(--text))}
.menu hr{border-top-color:rgba(var(--line),.075)}
.skel{background:linear-gradient(90deg,rgba(var(--line),.025),rgba(var(--line),.06),rgba(var(--line),.025));background-size:200% 100%}
:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:4px}
::selection{background:rgba(237,239,237,.3);color:#fff}
::-webkit-scrollbar-thumb{background:rgba(var(--line),.1)}
.task{border-radius:12px;border-color:rgba(var(--line),.075)}
/* the Live Workspace on hairlines */
.ws-main{border-right-color:rgba(var(--line),.075)}
.ws-strip,.ws-chart,.panel{border-color:rgba(var(--line),.075)}
.ws-strip .st i{font-size:11.5px;font-weight:500}
.ws-strip .st b{font-size:14px;font-weight:600}
.panel h4{font-size:12.5px;font-weight:600;color:rgb(var(--text-2))}
/* the launch steps */
.rail .st.on{background:rgba(var(--line),.05);box-shadow:inset 0 0 0 1px rgba(var(--line),.04)}
.rail .st.on i{background:#e9ebe8;color:#0a0b0b}
.rail .st i{background:rgba(var(--line),.06)}
/* the sign-in card */
.gate{background:radial-gradient(900px 520px at 50% -10%,rgba(205,210,206,.07),transparent 60%),rgb(var(--bg))}
.gate-card{background:rgb(14,15,15);border:1px solid rgba(var(--line),.12);border-radius:16px}
.gate-card h1{font-weight:500;letter-spacing:-.03em}
.wallet-btn{border-radius:10px;background:rgba(var(--line),.03);border:1px solid rgba(var(--line),.09);font-weight:550}
.wallet-btn:hover{background:rgba(var(--line),.06);border-color:rgba(var(--line),.16)}

/* the command bar, as Rift's search */
.pal-back{background:rgba(5,6,6,.52);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fin .1s ease-out}
.pal{width:min(600px,100%);background:rgb(14,15,15);border:1px solid rgba(var(--line),.12);border-radius:14px;box-shadow:0 40px 100px -24px rgba(0,0,0,.85);animation:palin .12s var(--ease-out)}
@keyframes palin{from{opacity:0;transform:translateY(-4px) scale(.99)}}
.pal-in{height:54px;border-bottom:1px solid rgba(var(--line),.075)}
.pal-in input{font-size:15px;font-weight:450}
.pal-g{font:600 11px var(--sans);letter-spacing:.04em;text-transform:none;color:rgb(var(--text-3))}
.pal-row{height:40px;border-radius:8px}
.pal-row.on{background:rgba(var(--line),.06)}
.pal-row.on::before{display:none}
.pal-row.on::after{content:"";position:absolute;right:12px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:1.5px;background:#fff;box-shadow:0 0 6px rgba(237,239,237,.5)}
.pal-row em{margin-right:16px}
.pal-ic{background:rgba(var(--line),.05);border-radius:7px}
.pal-row.on .pal-ic{background:rgba(var(--line),.1);color:#fff}
.pal-t b{font-weight:550}
.pal-t i{font:500 11.5px var(--sans)}
.pal-foot{border-top:1px solid rgba(var(--line),.075)}
.pal-mode{font:600 11px var(--sans);letter-spacing:.02em;text-transform:none}
/* a row with a picture and two lines (coins, wallets) inside pages */
.lrow{display:flex;align-items:center;gap:10px;height:46px;padding:0 8px;margin:0 -8px;border-radius:8px;transition:background .12s var(--ease)}
.lrow:hover,.lrow.on{background:rgba(var(--line),.04)}
.lrow .av{width:28px;height:28px;border-radius:8px;background:rgba(var(--line),.06);flex:none;overflow:hidden;display:grid;place-items:center;font-size:10px;font-weight:700;color:rgb(var(--text-3));text-transform:uppercase}
.lrow .av img{width:100%;height:100%;object-fit:cover}
.lrow .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left}
.lrow .t b{font-weight:550;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .t i{font-style:normal;color:rgb(var(--text-3));font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ══ the Launch Simulator ══ */
.sav{width:28px;height:28px;border-radius:8px;flex:none;display:inline-grid;place-items:center;font-size:10px;font-weight:700;letter-spacing:.02em;color:rgba(255,255,255,.88);text-transform:uppercase;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.sav.lg{width:40px;height:40px;border-radius:10px;font-size:13px}
.page-head .sav{width:24px;height:24px;border-radius:7px;font-size:9px}
.pill.sim{background:rgba(var(--yellow),.1);color:rgb(var(--yellow));box-shadow:inset 0 0 0 1px rgba(var(--yellow),.2)}
.simclock{margin-left:4px;font-size:12px;font-weight:600;color:rgb(var(--text-2))}
.seg.speed button{min-width:34px;padding:0 8px}
.seg.speed button svg.i{width:12px;height:12px}
.btn.wide{width:100%}
.modecards.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.mode b em{margin-left:6px;font-style:normal;font-size:11px;font-weight:600;color:rgb(var(--text-3))}
.mode.on{border-color:rgba(var(--line),.28);background:rgba(var(--line),.05);box-shadow:inset 0 0 0 1px rgba(var(--line),.06)}
.mode{background:rgba(var(--line),.018);border-color:rgba(var(--line),.075)}
.simlive{display:flex;align-items:center;gap:18px;margin:0 0 22px;padding:16px 18px;border-radius:12px;background:rgba(var(--yellow),.04);border:1px solid rgba(var(--yellow),.2);transition:border-color .15s,background .15s}
.simlive:hover{border-color:rgba(var(--yellow),.4);background:rgba(var(--yellow),.06)}
.simlive .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.simlive .t b{font-size:15px;font-weight:600;letter-spacing:-.01em}
.simlive .t b span{color:rgb(var(--text-3));font-weight:500}
.simlive .t>span{font-size:12px;color:rgb(var(--text-2))}
.simlive .n{display:flex;flex-direction:column;gap:3px;min-width:110px}
.simlive .n i{font-style:normal;font-size:11.5px;color:rgb(var(--text-3))}
.simlive .n b{font-size:14px;font-weight:600}
.kpi small{font-size:11.5px;color:rgb(var(--text-3));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-side-wrap{display:flex;flex-direction:column;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(var(--line),.12) transparent}
.ws-side-wrap .ws-side{overflow:visible;flex:none}
.simend{margin:14px 16px 2px;padding:14px 16px;border-radius:12px;border:1px solid rgba(var(--line),.12);background:rgba(var(--line),.03);display:flex;flex-direction:column;gap:12px}
.simend-h{display:flex;align-items:baseline;justify-content:space-between}
.simend-h i{font-style:normal;font-size:12px;font-weight:600;color:rgb(var(--text-2))}
.simend-h b{font-size:22px;font-weight:600;letter-spacing:-.02em}
.quote{min-height:16px;font-size:11.5px;color:rgb(var(--text-3))}
.rowbtns{display:inline-flex;gap:4px}
.role{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;font-size:11px;font-weight:600;background:rgba(var(--line),.05);color:rgb(var(--text-2))}
.role.dev{background:rgba(236,57,122,.12);color:#f0709c}
.role.front,.role.back{background:rgba(240,180,41,.1);color:#f0b429}
.role.temp{background:rgba(var(--line),.06)}
.youtag{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:5px;background:rgba(var(--line),.1);color:#fff;font-size:10.5px;font-weight:700}
.tbl tr.mine td{background:rgba(var(--line),.02)}
.dist4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid rgba(var(--line),.075)}
.dist4>div{display:flex;flex-direction:column;gap:3px;padding:12px 16px;border-right:1px solid rgba(var(--line),.05)}
.dist4>div:last-child{border-right:0}
.dist4 i{font-style:normal;font-size:11.5px;color:rgb(var(--text-3))}
.dist4 b{font-size:15px;font-weight:600}
.share{width:120px;height:4px;border-radius:2px;background:rgba(var(--line),.06);overflow:hidden}
.share i{display:block;height:100%;background:rgba(var(--line),.5)}
.simlog{display:flex;flex-direction:column;padding:6px 0}
.simlog>div{display:flex;gap:14px;padding:7px 16px;font-size:12.5px;color:rgb(var(--text-2));border-bottom:1px solid rgba(var(--line),.04)}
.simlog>div span:first-child{flex:none;width:44px;color:rgb(var(--text-3))}
.simlog .you,.simlog .launch{color:rgb(var(--text))}
.simlog .guard,.simlog .nuke{color:rgb(var(--red))}
.simlog .auto{color:rgb(var(--green))}
.simlog .bond{color:rgb(var(--yellow))}
.simlog .err{color:rgb(var(--yellow))}
.claimrow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.claimrow>div{display:flex;flex-direction:column;gap:2px}
.claimrow i{font-style:normal;font-size:11.5px;color:rgb(var(--text-3))}
.claimrow b{font-size:14px;font-weight:600}
.tile b em.on{margin-left:7px;padding:1px 6px;border-radius:5px;font-style:normal;font-size:10px;font-weight:700;background:rgba(var(--green),.12);color:rgb(var(--green))}
.tile[disabled]{opacity:.45;pointer-events:none}
.pbar{display:grid;grid-template-columns:28px 70px minmax(0,1fr) 80px;align-items:center;gap:10px;padding:4px 0;font-size:12.5px}
.pbar .n{font-weight:600}
.pbar .track{height:6px;border-radius:3px;background:rgba(var(--line),.05);overflow:hidden}
.pbar .track i{display:block;height:100%;border-radius:3px}
.pbar .track i.up{background:rgb(var(--green))}
.pbar .track i.down{background:rgb(var(--red))}
.pbar b{text-align:right;font-weight:600}
@media (max-width:1280px){.modecards.five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){.modecards.five,.dist4{grid-template-columns:1fr 1fr}.simlive{flex-wrap:wrap}.simlive .n{min-width:0}}
.tile{background:rgba(var(--line),.018);border-color:rgba(var(--line),.075);border-radius:10px}
.tile:hover{background:rgba(var(--line),.04);border-color:rgba(var(--line),.13)}
.tile b{font-weight:600}
.wcols{padding-left:22px}
.open-btn svg.i{display:none}
@media (max-width:820px){
  .wcols{padding-left:0;grid-template-columns:minmax(0,1fr)!important}
  .modesw .ml,.funderbtn{display:none}
  .open-btn{padding:0 10px;margin-left:4px}.open-btn span{display:none}.open-btn svg.i{display:block;width:15px;height:15px}
  .acct{margin-left:4px}
  .ph{padding:28px 18px 18px;flex-direction:column;align-items:flex-start}.ph h1{font-size:28px}.ph-acts{justify-content:flex-start}
  .pad,.app[data-head=bar] .pad{padding:8px 16px 32px}
  /* the Live Workspace on a phone: one column that scrolls, the chart a fixed height */
  .app[data-head=bar] .page-body{overflow:visible}
  .app[data-head=bar] .page-content,.app[data-head=bar] .page-content>*{height:auto}
  .ws{height:auto;display:flex;flex-direction:column}
  .ws-main{display:flex;flex-direction:column;border-right:0}
  .ws-chart{height:340px;flex:none}
  .ws-low .body{max-height:none;overflow-x:auto}
  .ws-side-wrap{overflow:visible;border-top:1px solid rgba(var(--line),.075)}
  .page-head{height:auto;min-height:52px;flex-wrap:wrap;padding:10px 14px;gap:8px}
  .page-head h2{flex-wrap:wrap;row-gap:6px}
  .page-head .acts{flex-wrap:wrap}
  .simclock{width:100%}
}
@media (max-width:820px){.top-l .brand b,.top-l .brand span{display:none}.top-l{padding:0 4px 0 10px}}
/* the chart's trade marks: the hover card */
.tm-tip{position:absolute;z-index:6;min-width:170px;padding:9px 11px;border-radius:9px;background:rgba(18,20,20,.96);border:1px solid rgba(var(--line),.12);box-shadow:0 14px 40px -12px rgba(0,0,0,.8);pointer-events:none;opacity:0;transform:translateY(2px);transition:opacity .12s var(--ease-out),transform .12s var(--ease-out)}
.tm-tip.on{opacity:1;transform:none}
.tm-t{font-size:12.5px;font-weight:700;margin-bottom:5px;letter-spacing:-.005em}
.tm-t.buy{color:rgb(var(--green))}.tm-t.sell{color:rgb(var(--red))}
.tm-r{display:flex;justify-content:space-between;gap:14px;font-size:11.5px;line-height:1.7;color:rgb(var(--text-3))}
.tm-r b{color:rgb(var(--text));font-weight:600}

/* ══ no amber and no green dots in the frame (owner 10-28: "i dont like this colour", "dont do this green dot thing"):
   the simulator is told by its words (Simulator in the header, its tags, Paper Funder); white and grey everywhere else;
   green and red stay on numbers: buys, sells, profit and loss ══ */
.modesw button i{display:none}
.modesw button{padding:0 12px}
.modesw button.on[data-m=sim]{background:rgba(var(--line),.07);color:rgb(var(--text));box-shadow:inset 0 0 0 1px rgba(var(--line),.04)}
.app[data-mode=sim] .top::before{display:none}
.app[data-mode=sim] .brand span{color:rgb(var(--text-2))}
.app[data-mode=sim] .funderbtn{border-color:rgba(var(--line),.075);background:rgba(var(--line),.02)}
.app[data-mode=sim] .funderbtn .l{color:rgb(var(--text-3))}
.app[data-mode=sim] .moire::before{background:radial-gradient(circle at var(--ox) var(--oy),rgba(205,210,206,.22),rgba(205,210,206,.08) 58%,rgba(205,210,206,.016) 100%)}
.simcard{background:rgba(var(--line),.03);border-color:rgba(var(--line),.09)}
.simcard b{color:rgb(var(--text))}
.liveonly .ico{background:rgba(var(--line),.05);color:rgb(var(--text-2))}
.gate-sim{background:rgba(var(--line),.03);border-color:rgba(var(--line),.1)}
.gate-sim:hover{border-color:rgba(var(--line),.2);background:rgba(var(--line),.06)}
.gate-sim>svg.i:first-child{color:rgb(var(--text))}
.pill.sim{background:rgba(var(--line),.06);color:rgb(var(--text));box-shadow:inset 0 0 0 1px rgba(var(--line),.1)}
.pill.live{background:rgba(var(--line),.07);color:rgb(var(--text));box-shadow:inset 0 0 0 1px rgba(var(--line),.08)}
.simlive{background:rgba(var(--line),.025);border-color:rgba(var(--line),.09)}
.simlive:hover{border-color:rgba(var(--line),.2);background:rgba(var(--line),.045)}
.net i{display:none}
.net.off{color:rgb(var(--red))}
.crow .st{display:none}
.si em.hot{color:rgb(var(--text))}
.runs.on svg.i{color:rgb(var(--text));animation:none}
.tile b em.on{background:rgba(var(--line),.08);color:rgb(var(--text))}
/* limit orders on the chart: the draft's card, the placed orders' tags */
.ll-layer{position:absolute;inset:0;z-index:7;pointer-events:none}
.ll-card,.ll-tag{position:absolute;left:0;top:0;pointer-events:auto}
.ll-card{width:270px;padding:12px 13px;border-radius:11px;background:rgba(18,20,20,.96);border:1px solid rgba(var(--line),.13);box-shadow:0 20px 50px -14px rgba(0,0,0,.85);display:flex;flex-direction:column;gap:9px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ll-h{display:flex;align-items:baseline;gap:8px}
.ll-h b{font-size:13px;font-weight:700}
.ll-h b.ll-tp{color:rgb(var(--green))}.ll-h b.ll-sl{color:rgb(var(--red))}
.ll-at{flex:1;font-size:12px;font-weight:600;color:rgb(var(--text-2))}
.ll-x{width:22px;height:22px;border-radius:6px;color:rgb(var(--text-3));font-size:15px;line-height:1;display:grid;place-items:center}
.ll-x:hover{background:rgba(var(--line),.07);color:rgb(var(--text))}
.ll-pcts{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.ll-k{font-size:11.5px;color:rgb(var(--text-3))}
.ll-chip{height:24px;padding:0 8px;border-radius:6px;font-size:11.5px;font-weight:600;color:rgb(var(--text-2));background:rgba(var(--line),.04);box-shadow:inset 0 0 0 1px rgba(var(--line),.08)}
.ll-chip.on{color:#0a0b0b;background:#e9ebe8;box-shadow:none}
.ll-who{display:flex;align-items:center;gap:7px;font-size:12px;color:rgb(var(--text-2));cursor:pointer}
.ll-who input{accent-color:#e9ebe8}
.ll-sep{color:rgb(var(--text-3))}
.ll-fees{font-size:11px;color:rgb(var(--text-3))}
.ll-go{height:32px;border-radius:8px;font-size:12.5px;font-weight:700;color:#0a0b0b;background:#e9ebe8}
.ll-go.tp{background:rgb(var(--green))}.ll-go.sl{background:rgb(var(--red));color:#fff}
.ll-go:disabled{opacity:.5}
.ll-tip{font-size:11px;line-height:1.45;color:rgb(var(--text-3))}
.ll-tag{display:flex;align-items:center;gap:4px;height:22px;padding:0 3px 0 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;background:rgba(18,20,20,.94);box-shadow:inset 0 0 0 1px rgba(var(--line),.12)}
.ll-tag.tp{color:rgb(var(--green));box-shadow:inset 0 0 0 1px rgba(var(--green),.35)}
.ll-tag.sl{color:rgb(var(--red));box-shadow:inset 0 0 0 1px rgba(var(--red),.35)}
.ll-tag .ll-x{width:18px;height:18px;font-size:13px}
.ll-dragging,.ll-dragging *{cursor:ns-resize!important;user-select:none}

/* ── the brand kit, beside the coin's form (kit.js) */
.kit-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);gap:16px;align-items:start}
@media (max-width:1360px){.kit-split{grid-template-columns:minmax(0,1fr)}}
.kit .card-h h3 svg.i{width:15px;height:15px;color:rgb(var(--text-2))}
.kit-left{font-size:11.5px;color:rgb(var(--text-3));font-variant-numeric:tabular-nums}
.kit-in{display:flex;flex-direction:column;gap:10px}
.kit-in .kit-idea{min-height:76px;font-size:13px}
.kit-go{align-self:stretch;justify-content:center}
.kit-sec{margin-top:20px}
.kit-t{font-size:11.5px;font-weight:600;color:rgb(var(--text-3));letter-spacing:.02em;margin-bottom:9px}
.kit-names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.kit-name{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:68px;padding:10px 12px;border-radius:9px;text-align:left;background:rgba(var(--line),.02);border:1px solid rgba(var(--line),.075);transition:border-color .15s,background .15s}
.kit-name b{font-size:13px;font-weight:600;color:rgb(var(--text));max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kit-name span{font-size:11.5px;font-weight:600;color:rgb(var(--text-2))}
.kit-name small{font-size:11px;line-height:1.4;color:rgb(var(--text-3));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:3px}
.kit-name.skel{border:0;padding:0}
.kit-list{display:flex;flex-direction:column;gap:6px}
.kit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:9px 12px;border-radius:9px;text-align:left;background:rgba(var(--line),.02);border:1px solid rgba(var(--line),.075);transition:border-color .15s,background .15s}
.kit-row span{font-size:12.5px;line-height:1.5;color:rgb(var(--text-2));white-space:pre-wrap;overflow-wrap:anywhere}
.kit-row em{font-style:normal;font-size:11px;font-weight:600;color:rgb(var(--text-3));opacity:0;transition:opacity .15s;padding-top:2px}
.kit-row svg.i{width:14px;height:14px;color:rgb(var(--text-3));margin-top:2px}
.kit-name:hover,.kit-row:hover{border-color:rgba(var(--line),.16);background:rgba(var(--line),.04)}
.kit-row:hover em{opacity:1}
.kit-row:hover span{color:rgb(var(--text))}
.kit-name.on,.kit-row.on{border-color:rgba(233,235,232,.5);background:rgba(var(--line),.05)}
.kit-row.on em{opacity:1;color:rgb(var(--text))}
.kit-art{min-height:56px!important;font-size:12.5px;margin-bottom:10px}
.kit-acts{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.kit-acts small{font-size:11px}
.kit-logos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.kit-logo{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;padding:0;background:rgb(var(--bg-3));border:1px solid rgba(var(--line),.075);transition:border-color .15s}
.kit-logo img,.kit-wide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.kit-logo:hover{border-color:rgba(var(--line),.22)}
.kit-logo.on{border-color:transparent;box-shadow:0 0 0 2px #e9ebe8}
.kit-logo.skel,.kit-wide.skel{border:0}
.kit-wide{position:relative;aspect-ratio:3/1;border-radius:10px;overflow:hidden;background:rgb(var(--bg-3))}
.kit-dl{position:absolute;right:6px;bottom:6px;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(10,11,11,.72);backdrop-filter:blur(6px);color:#e9ebe8;opacity:0;transition:opacity .15s}
.kit-dl svg.i{width:14px;height:14px}
.kit-logo:hover .kit-dl,.kit-wide:hover .kit-dl{opacity:1}
@media (hover:none){.kit-dl{opacity:1}}

/* ── known bots on a live coin (live.js: the strip's "Bots hold", the Bots tab, the kind tag on rows) */
.ws-strip .st.click{cursor:pointer;border-radius:6px;transition:background .15s}
.ws-strip .st.click:hover b{text-decoration:underline;text-decoration-color:rgba(var(--line),.3);text-underline-offset:3px}
.botk{display:inline-flex;align-items:center;height:16px;padding:0 5px;border-radius:4px;font-size:9.5px;font-weight:700;letter-spacing:.05em;font-style:normal;color:rgb(var(--text-2));background:rgba(var(--line),.06);box-shadow:inset 0 0 0 1px rgba(var(--line),.1);margin-right:6px;vertical-align:1px;cursor:default}
.bhead{padding:14px 16px;border-bottom:1px solid rgba(var(--line),.075)}
.bsum{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.bsum b{font-size:20px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.bsum span{font-size:12.5px;color:rgb(var(--text-2))}
.bkinds{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
@media (max-width:1600px){.bkinds{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.bkinds{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bk{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:9px;background:rgba(var(--line),.02);border:1px solid rgba(var(--line),.075)}
.bk i{font-style:normal;font-size:11px;font-weight:500;color:rgb(var(--text-3));display:flex;align-items:center;white-space:nowrap;overflow:hidden}
.bk b{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.bk small{font-size:11px;color:rgb(var(--text-3))}
.bk.none{opacity:.45}

/* ── Studio (pages/studio.js): Claude builds with you; chat left, what it makes right */
.sto-home{max-width:760px;margin:8px auto 48px}
.sto-hero{text-align:center;margin:10px 0 22px}
.sto-hero h2{font-size:28px;font-weight:600;letter-spacing:-.02em;margin:14px 0 8px}
.sto-hero p{color:rgb(var(--text-2));font-size:14px;max-width:540px;margin:0 auto;line-height:1.6}
.sto-mark{width:44px;height:44px;margin:0 auto;border-radius:12px;display:grid;place-items:center;background:rgba(var(--line),.04);border:1px solid rgba(var(--line),.09);color:rgb(var(--text))}
.sto-mark svg.i{width:20px;height:20px}
.sto-ideas{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.sto-idea{height:30px;padding:0 12px;border-radius:8px;font-size:12.5px;color:rgb(var(--text-2));background:rgba(var(--line),.025);border:1px solid rgba(var(--line),.08);transition:border-color .15s,color .15s}
.sto-idea:hover{color:rgb(var(--text));border-color:rgba(var(--line),.18)}
.sto-sec{margin-top:40px}
.sto-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.sto-card{display:flex;gap:12px;align-items:center;padding:12px;border-radius:10px;background:rgba(var(--line),.02);border:1px solid rgba(var(--line),.075);transition:border-color .15s,background .15s;min-width:0}
.sto-card:hover{border-color:rgba(var(--line),.16);background:rgba(var(--line),.04)}
.sto-thumb{width:44px;height:44px;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:rgb(var(--bg-3));font-weight:600;color:rgb(var(--text-2));flex:none}
.sto-thumb img{width:100%;height:100%;object-fit:cover}
.sto-meta{min-width:0}
.sto-meta b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sto-meta small{display:block;font-size:11.5px;color:rgb(var(--text-3));margin-top:2px}
/* the message box */
.sto-box{border-radius:14px;background:rgb(var(--bg-2));border:1px solid rgba(var(--line),.1);padding:10px 10px 8px 12px;transition:border-color .15s}
.sto-box:focus-within{border-color:rgba(var(--line),.22)}
.sto-box.drag{border-color:rgba(233,235,232,.55)}
.sto-in{display:block;width:100%;resize:none;border:0;outline:0;background:none;color:rgb(var(--text));font:inherit;font-size:13.5px;line-height:1.55;min-height:22px;padding:2px 2px 6px}
.sto-in::placeholder{color:rgb(var(--text-3))}
.sto-box.big{padding:14px 12px 10px 16px;border-radius:16px}
.sto-box.big .sto-in{font-size:15px;min-height:72px}
.sto-row{display:flex;align-items:center;gap:8px}
.sto-att{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:rgb(var(--text-3));transition:background .15s,color .15s}
.sto-att:hover{background:rgba(var(--line),.06);color:rgb(var(--text))}
.sto-att svg.i{width:16px;height:16px}
.sto-hint{flex:1;font-size:11px;color:rgb(var(--text-3))}
.sto-send{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#e9ebe8;color:#0a0b0b;transition:filter .15s}
.sto-send:hover{filter:brightness(1.08)}
.sto-send svg.i{width:15px;height:15px}
.sto-send.stop{background:rgba(var(--line),.1);color:rgb(var(--text))}
.sto-pics{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.sto-pics:empty{display:none}
.sto-pic{position:relative;width:56px;height:56px}
.sto-pic img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid rgba(var(--line),.1)}
.sto-pic button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:rgb(var(--bg-4));color:rgb(var(--text));border:1px solid rgba(var(--line),.15)}
.sto-pic button svg.i{width:11px;height:11px}
.sto-usage{font-size:11px;color:rgb(var(--text-3));margin-top:8px;text-align:center;font-variant-numeric:tabular-nums}
.sto-foot .sto-usage{text-align:right;margin-top:6px}
/* the workspace */
.sto{display:grid;grid-template-columns:minmax(360px,460px) minmax(0,1fr);height:100%;min-height:0}
.sto-chat{display:flex;flex-direction:column;min-height:0;border-right:1px solid rgba(var(--line),.075)}
.sto-log{flex:1;min-height:0;overflow:auto;padding:20px 18px 8px;scrollbar-width:thin;scrollbar-color:rgba(var(--line),.12) transparent}
.sto-foot{flex:none;padding:8px 14px 12px}
.sto-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px}
.sto-empty b{font-size:15px;font-weight:600}
.sto-msg{margin:0 0 14px}
.sto-msg.me{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.sto-bub{max-width:88%;padding:9px 13px;border-radius:14px 14px 4px 14px;background:rgb(var(--bg-3));border:1px solid rgba(var(--line),.07);font-size:13.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.sto-mpics{display:flex;gap:6px}
.sto-mpics img{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid rgba(var(--line),.1)}
.sto-msg.ai{font-size:13.5px;line-height:1.65}
.md p{margin:0 0 8px}
.md ul,.md ol{margin:0 0 8px;padding-left:20px}
.md li{margin:3px 0}
.md code{font-family:var(--mono);font-size:12px;padding:1px 5px;border-radius:5px;background:rgba(var(--line),.07)}
.md pre{margin:6px 0 10px;padding:10px 12px;border-radius:8px;background:rgb(var(--bg-2));border:1px solid rgba(var(--line),.08);overflow:auto;max-height:280px}
.md pre code{padding:0;background:none;font-size:11.5px;line-height:1.55;white-space:pre}
.md a{color:rgb(var(--text));text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(var(--line),.35)}
.md b{font-weight:650}
.sto-note{font-size:12.5px;line-height:1.55;color:rgb(var(--text-3));margin:0 0 10px;padding-left:11px;border-left:2px solid rgba(var(--line),.1);white-space:pre-wrap}
.sto-tool{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;padding:7px 10px;border-radius:8px;background:rgba(var(--line),.025);border:1px solid rgba(var(--line),.06);font-size:12.5px;color:rgb(var(--text-2))}
.sto-tool>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.sto-tool svg.i{width:14px;height:14px;flex:none;color:rgb(var(--text-3))}
.sto-tool.err svg.i{color:rgb(var(--red))}
.sto-tool em{flex-basis:100%;font-style:normal;font-size:11.5px;color:rgb(var(--text-3));padding-left:22px}
.sto-tpic{flex-basis:100%;max-width:220px;border-radius:8px;border:1px solid rgba(var(--line),.1);cursor:pointer;margin:4px 0 2px 22px}
.sto-spin{display:inline-block;width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(var(--line),.15);border-top-color:rgb(var(--text-2));animation:sto-r .8s linear infinite;flex:none}
@keyframes sto-r{to{transform:rotate(360deg)}}
.sto-work{display:flex;align-items:center;gap:8px;font-size:12px;color:rgb(var(--text-3));margin:4px 0 10px}
.sto-err{font-size:12.5px;padding:8px 11px;border-radius:8px;background:rgba(var(--red),.07);border:1px solid rgba(var(--red),.2);margin:0 0 10px}
.sto-info{font-size:12px;color:rgb(var(--text-3));margin:0 0 10px}
.sto-done{font-size:11px;color:rgb(var(--text-3));margin:-4px 0 16px;font-variant-numeric:tabular-nums}
/* the right side */
.sto-right{display:flex;flex-direction:column;min-width:0;min-height:0}
.sto-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;height:44px;padding:0 12px 0 10px;border-bottom:1px solid rgba(var(--line),.075);flex:none}
.sto-tabs{display:flex;gap:2px}
.sto-tabs button{height:28px;padding:0 11px;border-radius:7px;font-size:12.5px;font-weight:500;color:rgb(var(--text-3));transition:color .15s,background .15s}
.sto-tabs button:hover{color:rgb(var(--text))}
.sto-tabs button.on{color:rgb(var(--text));background:rgba(var(--line),.06)}
.sto-tools{display:flex;align-items:center;gap:6px}
.sto-dev{display:flex;padding:2px;border-radius:8px;background:rgba(var(--line),.03);border:1px solid rgba(var(--line),.08)}
.sto-dev button{width:30px;height:24px;border-radius:6px;display:grid;place-items:center;color:rgb(var(--text-3))}
.sto-dev button.on{background:rgba(var(--line),.09);color:rgb(var(--text))}
.sto-dev svg.i{width:14px;height:14px}
.sto-view{flex:1;min-height:0;overflow:auto;position:relative}
.sto-stage{height:100%;display:flex;justify-content:center;background:rgb(var(--bg-2))}
.sto-stage.desktop .sto-device{flex:1;min-width:0}
.sto-stage.phone{align-items:center;padding:18px;overflow:auto}
.sto-stage.phone .sto-device{width:390px;height:min(844px,100%);flex:none;border-radius:26px;border:1px solid rgba(var(--line),.14);overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.sto-frame{width:100%;height:100%;border:0;display:block;background:#0a0b0b}
.sto-blank{height:100%;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:30px}
.sto-blank b{font-size:15px;font-weight:600}
.sto-blank p{font-size:13px;color:rgb(var(--text-3));max-width:320px;line-height:1.55;margin:0}
.sto-pane{padding:20px 22px 40px;max-width:1000px}
.sto-ksec{margin-bottom:24px}
.sto-lb{display:grid;grid-template-columns:200px minmax(0,1fr);gap:12px;align-items:start}
.sto-pc{position:relative;border-radius:10px;overflow:hidden;background:rgb(var(--bg-3));border:1px solid rgba(var(--line),.08)}
.sto-pc img{display:block;width:100%;height:auto}
.sto-pc small{display:block;padding:6px 9px;font-size:11px;color:rgb(var(--text-3));border-top:1px solid rgba(var(--line),.07);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sto-pc-a{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s}
.sto-pc-a a,.sto-pc-a button{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(10,11,11,.72);backdrop-filter:blur(6px);color:#e9ebe8}
.sto-pc-a svg.i{width:14px;height:14px}
.sto-pc:hover .sto-pc-a{opacity:1}
@media (hover:none){.sto-pc-a{opacity:1}}
.sto-pics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.sto-swatches{display:flex;flex-wrap:wrap;gap:8px}
.sto-sw{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px 0 6px;border-radius:8px;border:1px solid rgba(var(--line),.08);font:500 12px var(--mono);color:rgb(var(--text-2))}
.sto-sw i{width:18px;height:18px;border-radius:5px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.sto-coin{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:start;margin-bottom:22px}
.sto-cpic{aspect-ratio:1;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:rgb(var(--bg-2));border:1px solid rgba(var(--line),.08);color:rgb(var(--text-3))}
.sto-cpic img{width:100%;height:100%;object-fit:cover}
.sto-choose{display:flex;flex-wrap:wrap;gap:8px}
.sto-choose button{width:64px;height:64px;border-radius:9px;overflow:hidden;border:1px solid rgba(var(--line),.1);padding:0}
.sto-choose img{width:100%;height:100%;object-fit:cover;display:block}
.sto-choose button.on{box-shadow:0 0 0 2px #e9ebe8;border-color:transparent}
.sto-files{display:flex;flex-direction:column;gap:2px;margin:10px 0 14px}
.sto-file{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:8px;font-size:12.5px;color:rgb(var(--text-2));text-align:left;transition:background .15s}
.sto-file:hover{background:rgba(var(--line),.04);color:rgb(var(--text))}
.sto-file span{flex:1;font-family:var(--mono);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sto-file small{font-size:11px;color:rgb(var(--text-3));font-variant-numeric:tabular-nums}
.sto-file svg.i{width:14px;height:14px;color:rgb(var(--text-3))}
.sto-code pre{margin:0;padding:12px 14px;border-radius:10px;background:rgb(var(--bg-2));border:1px solid rgba(var(--line),.08);max-height:60vh;overflow:auto}
.sto-code code{font:12px/1.55 var(--mono);white-space:pre;color:rgb(var(--text-2))}
/* the head */
.sto-name{font-size:14px;font-weight:600;color:rgb(var(--text));padding:3px 6px;margin:-3px -6px;border-radius:6px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sto-name:hover{background:rgba(var(--line),.06)}
.sto-pub{display:inline-flex;align-items:center;gap:9px;height:32px;padding:0 12px 0 10px;border-radius:8px;font-size:12.5px;font-weight:500;color:rgb(var(--text-2));background:rgba(var(--line),.03);border:1px solid rgba(var(--line),.09)}
.sto-pub:hover{color:rgb(var(--text));border-color:rgba(var(--line),.16)}
.sto-pub i{width:26px;height:15px;border-radius:9px;background:rgba(var(--line),.14);position:relative;transition:background .15s;flex:none}
.sto-pub i::after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:rgb(var(--text-2));transition:transform .15s}
.sto-pub i.on{background:#e9ebe8}
.sto-pub i.on::after{transform:translateX(11px);background:#0a0b0b}
@media (max-width:980px){
  .app[data-page=studio] .page-body{overflow:auto}
  .sto{grid-template-columns:minmax(0,1fr);height:auto}
  .sto-chat{height:72vh;border-right:0;border-bottom:1px solid rgba(var(--line),.075)}
  .sto-right{height:86vh}
  .sto-lb,.sto-coin{grid-template-columns:minmax(0,1fr)}
  .sto-hint{display:none}
}

/* ── the trade panel: Buy above, Sell below, both always on screen (live.js + sim/live.js tradeBlock) */
.panel.trade2{gap:10px}
.tb{display:flex;flex-direction:column;gap:8px;padding:11px 11px 12px;border-radius:10px;background:rgba(var(--line),.018);border:1px solid rgba(var(--line),.075)}
.tb-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.tb-h{font-size:12.5px;font-weight:600;letter-spacing:-.005em}
.tb-go{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.tb-go .btn{min-width:96px;justify-content:center}
.tb .quote:empty{display:none}
.tb .quote.hold{min-height:0;margin-top:-2px}.tb .quote.hold.warn{color:rgb(var(--red))}
.tb .seg button{padding:0 8px}

/* ── Studio templates (pages/studio.js tplCard) */
.sto-th{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.sto-th .kit-t{margin:0}
.sto-th span{font-size:12px;color:rgb(var(--text-3))}
.sto-tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.sto-tpl{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:rgba(var(--line),.02);border:1px solid rgba(var(--line),.075);transition:border-color .15s}
.sto-tpl:hover{border-color:rgba(var(--line),.16)}
.sto-tcov{display:grid;place-items:center;aspect-ratio:16/9;background:rgb(var(--bg-3));overflow:hidden;border-bottom:1px solid rgba(var(--line),.06)}
.sto-tcov img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.sto-tpl:hover .sto-tcov img{transform:scale(1.03)}
.sto-tcov span{font-size:15px;font-weight:600;color:rgb(var(--text-3))}
.sto-tbody{display:flex;flex-direction:column;gap:6px;padding:11px 12px 12px;flex:1}
.sto-tname{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.sto-tname b{font-size:13.5px;font-weight:600}
.sto-tname small{font-size:11px;color:rgb(var(--text-3))}
.sto-tbody p{font-size:12px;line-height:1.5;color:rgb(var(--text-2));margin:0;flex:1}
.sto-tacts{display:flex;gap:6px;margin-top:6px}
.sto-ehint{font-size:12.5px;color:rgb(var(--text-3));max-width:300px;line-height:1.5;margin:0}
.sto-home{max-width:980px}
.sto-home>.sto-box.big,.sto-home>.sto-hero{max-width:760px;margin-left:auto;margin-right:auto}
/* the Regulus fee (app/fees.py): header label, trade panel line, Fees page */
.feepill{display:inline-flex;align-items:center;height:30px;padding:0 10px;border-radius:8px;border:1px solid rgba(var(--line),.08);color:rgb(var(--text-2));font-size:var(--fs);white-space:nowrap}
.feepill:hover{color:rgb(var(--text));border-color:rgba(var(--line),.16)}
.feeline{display:block;font-size:11px;color:rgb(var(--text-3));text-decoration:none}
.feeline:hover{color:rgb(var(--text-2))}
.feeplan{display:flex;flex-direction:column;gap:4px}
.feeplan b{font-size:28px;font-weight:500;letter-spacing:-.02em}
.feeplan span{color:rgb(var(--text-2))}
.feebar{height:6px;border-radius:3px;background:rgba(var(--line),.08);overflow:hidden}
.feebar i{display:block;height:100%;background:rgb(var(--primary))}
@media (max-width:760px){.feepill{display:none}}
/* sortable table headers (the workspace's wallets): click to sort, again to reverse, a third time back to the launch's order */
.tbl th.sortable{cursor:pointer;user-select:none}
.tbl th.sortable:hover,.tbl th.sortable.on{color:rgb(var(--text))}
/* the simulator's welcome (pages/sim/common.js simIntro) */
.simintro-box{width:min(460px,100%)}
.simintro-lead{margin:0 0 14px;font-size:14px;line-height:1.55;color:rgb(var(--text))}
ol.simintro{list-style:none;margin:0;padding:0;display:grid;gap:8px;counter-reset:si}
ol.simintro li{counter-increment:si;position:relative;padding:10px 12px 10px 40px;border:1px solid rgba(var(--line),.07);border-radius:10px;background:rgba(var(--line),.025);font-size:12.5px;line-height:1.5;color:rgb(var(--text-2))}
ol.simintro li::before{content:counter(si);position:absolute;left:12px;top:10px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:600;background:rgba(var(--line),.08);color:rgb(var(--text))}
ol.simintro b{color:rgb(var(--text));font-weight:600}
.simintro-box .modal-f{justify-content:space-between}
/* a draft's setup steps (Token · Launch Settings · Funding · Launch) share the launch page's bar but scroll as a page (owner 10-29: "I CANT FUCKING SCROLL DOWN") */
.app[data-head=bar] .page-body:has(>.page-content>.pad){overflow:auto}
.app[data-head=bar] .page-content:has(>.pad){flex:1 0 auto;height:auto}
.app[data-head=bar] .page-content>.pad{flex:none}

/* ── FreeDeploy: the Live feed (landing page) in the app's own look: hairline lines, off-white primary, Manrope + Geist Mono ── */
.fd{max-width:1180px;margin:0 auto;padding:0 28px 60px}
.fd-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 0;margin-bottom:12px;background:rgba(var(--bg),.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(var(--line),.07)}
.fd-stats{display:flex;gap:18px;font:450 var(--fs) var(--sans);color:rgb(var(--text-3));white-space:nowrap}
.fd-stats span{display:flex;align-items:center;gap:6px}
.fd-stats b{color:rgb(var(--text));font:500 var(--fs) var(--mono)}
.fd-dot{width:7px;height:7px;border-radius:50%;background:rgb(var(--yellow))}
.fd-dot.on{background:rgb(var(--green));box-shadow:0 0 0 3px rgba(var(--green),.15);animation:fdpulse 2s infinite}
@keyframes fdpulse{50%{box-shadow:0 0 0 6px rgba(var(--green),0)}}
.fd-tools{display:flex;align-items:center;gap:8px}
.fd-q .inp{width:220px}
.fd-tools .btn.on{border-color:rgba(var(--primary),.5);color:rgb(var(--text))}
.fd-pill{position:sticky;top:62px;z-index:6;display:block;margin:0 auto 10px;height:30px;padding:0 16px;border-radius:999px;background:rgb(var(--primary));color:rgb(var(--bg));font:600 var(--fs) var(--sans);box-shadow:0 8px 24px rgba(0,0,0,.45)}
.fd-list{display:flex;flex-direction:column;gap:10px}
.fd-empty{padding:80px 0;text-align:center;color:rgb(var(--text-3))}
.fd-card{background:rgba(var(--line),.018);border:1px solid rgba(var(--line),.075);border-radius:12px;overflow:hidden;transition:border-color .15s var(--ease-out)}
.fd-card:hover{border-color:rgba(var(--line),.16)}
.fd-card.fresh{animation:fdfresh 1.8s var(--ease-out)}
@keyframes fdfresh{0%{border-color:rgba(var(--green),.7);background:rgba(var(--green),.06)}100%{border-color:rgba(var(--line),.075);background:rgba(var(--line),.018)}}
.fd-body{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:14px 16px 12px}
.fd-av{width:40px;height:40px;border-radius:50%;object-fit:cover;background:rgb(var(--bg-4))}
.fd-main{min-width:0}
.fd-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.fd-who{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap;overflow:hidden}
.fd-who b{font-weight:600;font-size:var(--fm);overflow:hidden;text-overflow:ellipsis}
.fd-who a:hover{color:rgb(var(--text-2))}
.fd-ver{width:14px;height:14px;color:#6aa8ff}
.fd-plat{font:500 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:rgb(var(--text-2));border:1px solid rgba(var(--line),.1);border-radius:5px;padding:1px 6px}
.fd-when{display:flex;align-items:baseline;gap:10px;flex:none;font-size:var(--fs)}
.fd-when b{color:rgb(var(--text))}
.fd-kind{font-size:var(--fs);margin-top:2px}
.fd-txt{margin-top:6px;font-size:15px;line-height:1.5;color:rgba(var(--text),.95);white-space:pre-wrap;word-wrap:break-word}
.fd-media{display:grid;gap:3px;margin-top:10px;max-width:560px;border-radius:10px;overflow:hidden;border:1px solid rgba(var(--line),.07)}
.fd-media.n2,.fd-media.n3,.fd-media.n4{grid-template-columns:1fr 1fr}
.fd-media img,.fd-vid{width:100%;height:100%;max-height:330px;object-fit:cover;display:block;background:rgb(var(--bg-3))}
.fd-media.n1 img{max-height:380px;object-fit:contain;background:rgb(var(--bg-2))}
.fd-vid{position:relative;aspect-ratio:16/9}
.fd-vid img{position:absolute;inset:0}
.fd-vid::after{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(0,0,0,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l9 5-9 5z' fill='white'/%3E%3C/svg%3E") center/20px no-repeat;border:1px solid rgba(255,255,255,.3)}
.fd-quote{margin-top:10px;max-width:620px;border:1px solid rgba(var(--line),.09);border-radius:10px;padding:10px 12px}
.fd-qh{display:flex;align-items:center;gap:6px;font-size:var(--fs)}
.fd-qh img{width:18px;height:18px;border-radius:50%}
.fd-qt{margin-top:4px;font-size:var(--fm);color:rgb(var(--text-2));white-space:pre-wrap}
.fd-qm{display:flex;gap:4px;margin-top:8px}.fd-qm img{width:84px;height:84px;object-fit:cover;border-radius:6px}
.fd-event{display:flex;align-items:center;gap:10px;margin-top:6px}.fd-event img{width:30px;height:30px;border-radius:50%}
.fd-facts{display:inline-flex;flex-wrap:wrap;margin-top:10px;border:1px solid rgba(var(--line),.07);border-radius:8px;overflow:hidden}
.fd-facts span{display:flex;align-items:baseline;gap:6px;padding:4px 10px;border-right:1px solid rgba(var(--line),.07);white-space:nowrap}
.fd-facts span:last-child{border-right:0}
.fd-facts em{font:500 10px var(--mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--text-3))}
.fd-facts b{font:500 var(--fs) var(--mono)}
.fd-facts b.hot{color:rgb(var(--yellow))}.fd-facts b.up{color:rgb(var(--green))}
.fd-coins{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid rgba(var(--line),.07);margin-left:68px}
.fd-coin{position:relative;display:flex;align-items:center;gap:9px;min-width:0;height:58px;padding:8px 10px;border-right:1px solid rgba(var(--line),.07);text-align:left;transition:background .12s var(--ease-out)}
.fd-coin:last-child{border-right:0}
.fd-coin:hover{background:rgba(var(--line),.045)}
.fd-coin img,.fd-ini{width:38px;height:38px;border-radius:8px;flex:none;object-fit:cover;background:rgb(var(--bg-4))}
.fd-ini{display:grid;place-items:center;font:700 13px var(--sans);color:rgb(var(--text))}
.fd-ini img{width:24px;height:24px;background:none;border-radius:0;object-fit:contain}
.fd-cn{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.fd-cn b{font-weight:600;font-size:var(--fs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-cn i{font:500 11px var(--mono);font-style:normal;color:rgb(var(--text-2));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-coin kbd{position:absolute;top:6px;right:7px;min-width:16px;height:16px;font-size:10px;opacity:.55}
.fd-coin:hover kbd{opacity:1}
.fd-src{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid rgba(var(--line),.07);border-radius:10px;margin-bottom:12px}
.fd-src img{width:28px;height:28px;border-radius:50%}
.fd-src p{margin-top:3px;font-size:var(--fs);color:rgb(var(--text-2))}
.fd-picks{display:flex;flex-wrap:wrap;gap:6px}
.fd-pick{width:56px;height:56px;border-radius:8px;overflow:hidden;border:1px solid rgba(var(--line),.1);display:grid;place-items:center;color:rgb(var(--text-3))}
.fd-pick img{width:100%;height:100%;object-fit:cover}
.fd-pick.on{border-color:rgb(var(--primary));box-shadow:0 0 0 1px rgb(var(--primary))}
.fd-pick.add{border-style:dashed}
.fd-lede{font-size:var(--fl);color:rgb(var(--text));margin-bottom:14px}
.fd-steps{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.fd-step{display:flex;gap:12px;padding:12px;border:1px solid rgba(var(--line),.075);border-radius:10px;background:rgba(var(--line),.015)}
.fd-step b{font-weight:600}.fd-step p{margin-top:3px;font-size:var(--fs);color:rgb(var(--text-2))}
.fd-n{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:600 12px var(--mono);background:rgb(var(--primary));color:rgb(var(--bg))}
@media (max-width:1300px){.fd-coins{grid-template-columns:repeat(3,minmax(0,1fr));margin-left:0}.fd-coin:nth-child(3n){border-right:0}.fd-coin:nth-child(-n+3){border-bottom:1px solid rgba(var(--line),.07)}}
@media (max-width:760px){.fd{padding:0 12px 40px}.fd-steps{grid-template-columns:1fr}.fd-q .inp{width:140px}.fd-coins{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* the coin address + X in the header (FreeDeploy) */
.capill{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 10px;border-radius:8px;border:1px solid rgba(var(--line),.09);background:rgba(var(--line),.025);color:rgb(var(--text-3));font-size:var(--fs);white-space:nowrap}
.capill .calab{font:600 11px var(--mono);letter-spacing:.04em;color:rgb(var(--text-2))}
.capill svg.i{width:13px;height:13px;opacity:.5}
.capill.live{color:rgb(var(--text));border-color:rgba(var(--green),.45);cursor:pointer}
.capill.live .calab{color:rgb(var(--green))}
.capill.live:hover{background:rgba(var(--green),.08)}
.capill:disabled{cursor:default}
.xbtn{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid rgba(var(--line),.09);color:rgb(var(--text-2))}
.xbtn:hover{color:rgb(var(--text));border-color:rgba(var(--line),.18)}
@media (max-width:1100px){.capill .mono{display:none}}

.gate-card .logo{display:flex;align-items:center;gap:10px}
.gate-back{align-self:center;font-size:12.5px;color:rgb(var(--text-2))}
.gate-back:hover{color:rgb(var(--text))}
/* Vivaldi: the set logo (#42) is a chevron; it does not spin on hover */
.brand:hover img.mark{transform:none}
/* phones: a modal never runs off the screen (the backdrop's grid column was sized by the modal's own content) */
.modal-back{grid-template-columns:minmax(0,1fr)}
.modal-back>.modal{justify-self:center;max-width:100%}
/* phones: the feed never widens the page (its numbers strip wraps; nothing sticks out past the screen) */
@media (max-width:760px){
  .fd{min-width:0;overflow-x:clip}
  .fd-bar{gap:8px}
  .fd-stats{flex-wrap:wrap;white-space:normal;row-gap:4px;gap:4px 12px}
}
/* phones (Vivaldi launch day): the header fits 390 px. No coin yet = no CA pill (nothing to copy); with a coin the pill shows only the short
   address; the New launch button is the + alone; Sign in compact. */
@media (max-width:480px){
  .top{padding-right:0}
  .top-r{gap:3px;padding:0 8px 0 2px}
  .top-r>*{flex:none}
  .capill:not(.live){display:none}
  .capill .calab{display:none}
  .open-btn span{display:none}
  .tl.signin{padding:0 8px;font-size:12px}
  .modesw{margin-left:0}
}
@media (max-width:760px){
  .fd{width:100%;max-width:100%}
  .fd-bar>*{min-width:0;max-width:100%}
  .fd-tools{flex-wrap:wrap;min-width:0}
  .fd-tools>*{min-width:0;max-width:100%}
}
/* the feed's link preview (a news post's photo + headline) and the post a reply answers (owner 11-12 "improve the image thing") */
.fd-link{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:center;margin-top:10px;max-width:560px;padding:8px;border:1px solid rgba(var(--line),.08);border-radius:10px;color:inherit;text-decoration:none;transition:border-color .12s}
.fd-link:hover{border-color:rgba(var(--line),.18)}
.fd-link img{width:132px;height:84px;object-fit:cover;border-radius:7px;background:rgba(var(--line),.04)}
.fd-link>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.fd-link b{font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fd-link p{font-size:var(--fs);color:rgb(var(--text-3));display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.fd-link span{font-size:11px}
.fd-link:not(:has(img)){grid-template-columns:minmax(0,1fr)}
.fd-parent{display:flex;gap:9px;align-items:flex-start;margin:2px 0 8px;padding:8px 10px;border-left:2px solid rgba(var(--line),.14);background:rgba(var(--line),.02);border-radius:0 8px 8px 0;font-size:var(--fs)}
.fd-parent>img:first-child{width:22px;height:22px;border-radius:50%;flex:none}
.fd-parent>div{flex:1;min-width:0}
.fd-parent p{margin-top:2px;color:rgb(var(--text-2));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fd-parent .fd-pimg{width:52px;height:52px;object-fit:cover;border-radius:6px;flex:none}
@media (max-width:760px){.fd-link{grid-template-columns:96px minmax(0,1fr)}.fd-link img{width:96px;height:64px}}
/* owner 11-13: the simulator says so, plainly, on the feed and on its chart */
.fd-simnote,.simbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border:1px solid rgba(var(--yellow),.28);background:rgba(var(--yellow),.06);border-radius:10px;font-size:var(--fs);color:rgb(var(--text-2))}
.fd-simnote{margin:4px 0 10px}
.simbar{border-radius:0;border-width:0 0 1px 0}
.fd-simnote>span:nth-child(2),.simbar>span:nth-child(2){flex:1;min-width:220px}
.fd-simnote b,.simbar b{color:rgb(var(--text));font-weight:600}
.fd-simnote .tag,.simbar .tag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px;font:600 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:rgb(var(--yellow));background:rgba(var(--yellow),.12);border:1px solid rgba(var(--yellow),.3)}
.fd-simnote .tag svg,.simbar .tag svg{width:11px;height:11px}
/* the first-visit tour (owner 11-13): the lit target and its note */
.tour-spot{position:fixed;z-index:90;pointer-events:none;border-radius:12px;box-shadow:0 0 0 9999px rgba(3,4,7,.62),0 0 0 2px rgb(var(--yellow)),0 0 24px 4px rgba(var(--yellow),.45);animation:tourpulse 1.6s ease-in-out infinite}
@keyframes tourpulse{50%{box-shadow:0 0 0 9999px rgba(3,4,7,.62),0 0 0 2px rgb(var(--yellow)),0 0 34px 8px rgba(var(--yellow),.25)}}
.tour-tip{position:fixed;z-index:91;width:360px;padding:16px 18px;border-radius:12px;background:rgb(var(--bg-2));border:1px solid rgba(var(--yellow),.45);box-shadow:0 24px 60px -12px rgba(0,0,0,.8);display:flex;flex-direction:column;gap:8px;font-size:var(--fs);color:rgb(var(--text-2))}
.tour-tip>b{font-size:16px;color:rgb(var(--text));font-weight:600}
.tour-tip p b{color:rgb(var(--text))}
.tour-step{font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--yellow))}
.tour-row{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}
@media (max-width:480px){.tour-tip{width:calc(100vw - 24px)}}
