/* Small layout fixes. Loaded last. */
/* Award picker: names scale with the tile so they never touch its edges or break mid-word. */
body .reward-tier .reward-choice{container-type:inline-size;padding-left:3px!important;padding-right:3px!important}
body .reward-tier .reward-choice>span{font-size:clamp(10.5px,18.5cqi,13px)!important;font-weight:600!important;line-height:1.2!important;letter-spacing:-.015em;padding:0 3px;overflow-wrap:break-word;word-break:normal;hyphens:manual}
/* Very narrow phones: four tiles per row so names stay readable. */
@media (max-width:359px){body .reward-tier .reward-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
/* Deleted direct messages. */
.messenger-deleted{margin:0;font-style:italic;opacity:.7}
/* Blocked profile: a plain notice with an Unblock button. */
.profile-blocked-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,#e5484d 8%,var(--panel));font-size:14px;line-height:1.4}
.profile-blocked-note[hidden]{display:none}
.growth-toggle small{display:block;margin-top:2px;font-size:12.5px;line-height:1.35;color:var(--muted);font-weight:400}
/* Homepage Manage menu: own compositing layer, short open and close fade. */
@keyframes growth-menu-in{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes growth-menu-out{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.98)}}
body .growth-manage>.growth-actions{will-change:transform,opacity;transform:translateZ(0);transform-origin:top right;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:growth-menu-in .16s ease-out}
body .growth-manage.is-closing:not([open])>.growth-actions{display:grid;animation:growth-menu-out .14s ease-in forwards;pointer-events:none}
@media (prefers-reduced-motion:reduce){body .growth-manage>.growth-actions,body .growth-manage.is-closing>.growth-actions{animation:none}}
/* Settings > Blocked accounts. */
.blocked-list{display:grid;margin-top:10px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.blocked-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px}
.blocked-row+.blocked-row{border-top:1px solid var(--line)}
.blocked-row[hidden]{display:none}
.blocked-name{min-width:0;padding:0;border:0;background:none;color:var(--text);font:inherit;font-weight:600;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
/* Chart marker: ringed dot in the line colour; a gentle pulse while it rests on the latest price. */
@keyframes chart-marker-pulse{0%{transform:scale(.7);opacity:.38}80%,100%{transform:scale(2.3);opacity:0}}
body .chart-marker-pulse{transform-box:fill-box;transform-origin:center;animation:chart-marker-pulse 2.4s ease-out infinite;opacity:0}
body [data-inspected-index] .chart-marker-pulse{display:none}
body[data-theme=dark] .chart-marker-ring{fill:#0d1220}
@media (prefers-reduced-motion:reduce){body .chart-marker-pulse{animation:none;display:none}}
/* Settings > Appearance: System / Light / Dark segmented control. */
.profile-setting-row.theme-setting{flex-wrap:wrap}
.theme-choice{display:inline-flex;margin-left:auto;padding:3px;gap:2px;border:1px solid var(--line);border-radius:99px;background:color-mix(in srgb,var(--text) 5%,transparent)}
.theme-choice button{min-height:32px!important;padding:5px 12px!important;border:0!important;border-radius:99px!important;background:transparent!important;box-shadow:none!important;color:var(--muted)!important;font-size:13px!important;font-weight:600;cursor:pointer}
.theme-choice button[aria-checked=true]{background:linear-gradient(135deg,#2f80ff,#7b4dff)!important;color:#fff!important}
/* iPhone: quick taps on controls (e.g. open the sort menu, then pick an option) were read as double-tap zoom.
   Pinch zoom still works. Text fields stay at 16px or larger so focusing one never zooms the page. */
html,button,a,summary,label,select,input,textarea,[role=button],[role=tab],[role=menuitem],.chip,.btn{touch-action:manipulation}
@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{font-size:max(16px,1em)!important}}
/* Share sheet: the card keeps its shape while it loads, and the buttons sit on the dialog, not on a menu panel. */
body .growth-share-frame{position:relative;aspect-ratio:1200/630;border-radius:18px;overflow:hidden;background:var(--line,rgba(127,127,127,.15))}
body .growth-share-frame .growth-share-preview{display:block;width:100%;height:100%;object-fit:cover;border-radius:0;transition:opacity .25s ease}
body .growth-share-frame.is-loading .growth-share-preview,body .growth-share-frame.is-failed .growth-share-preview{opacity:0}
body .growth-share-frame.is-loading::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.12) 50%,transparent 70%);background-size:200% 100%;animation:share-shimmer 1.2s linear infinite}
@keyframes share-shimmer{from{background-position:150% 0}to{background-position:-50% 0}}
body .growth-share-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
body .growth-share-actions .btn{justify-content:center;text-align:center;min-width:0}
/* A news card in the feed gets the same divider below it as posts have. */
#feed>:is(.home-news-card,.invite-feed-card)+*{border-top:1px solid var(--line)!important;margin-top:12px!important}
/* Comment buttons match the post buttons: one outlined vote pill, then round outlined buttons. */
:is(html,#liquid-glass) body .reply-controls{display:flex!important;grid-template-columns:none!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important;min-width:0!important}
:is(html,#liquid-glass) body .reply-controls .reply-vote-pill{width:auto!important;min-width:max-content!important;display:inline-flex;align-items:center;height:32px;border:1px solid var(--line);border-radius:999px;background:var(--panel);overflow:hidden;flex:none}
:is(html,#liquid-glass) body .reply-controls :is(.reply-vote,.reply-round,.reply-score){flex:none!important}:is(html,#liquid-glass) body .reply-controls :is(.reply-vote,.reply-round){display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin:0!important;min-height:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;color:var(--muted)!important;cursor:pointer}
:is(html,#liquid-glass) body .reply-controls .reply-vote{width:30px!important;height:30px!important;border:0!important;border-radius:0!important;background:transparent!important}
:is(html,#liquid-glass) body .reply-controls .reply-vote[data-choice="-1"]{border-left:1px solid var(--line)!important}
:is(html,#liquid-glass) body .reply-controls .reply-score{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;width:auto!important;min-width:16px!important;padding:0 4px!important;font-size:12px;font-weight:600;color:var(--muted)}
:is(html,#liquid-glass) body .reply-controls .reply-round{width:32px!important;height:32px!important;border:1px solid var(--line)!important;border-radius:999px!important;background:var(--panel)!important}
:is(html,#liquid-glass) body .reply-controls svg{width:16px!important;height:16px!important}
:is(html,#liquid-glass) body .reply-controls .reply-vote[aria-pressed=true]{background:#7756cf22!important;color:#ae98ff!important}
:is(html,#liquid-glass) body .reply-controls .reply-vote[data-choice="-1"][aria-pressed=true]{background:#ef60741c!important;color:#ee88aa!important}
:is(html,#liquid-glass) body .reply-controls .delete-reply:hover{color:#d9455f!important}
/* The reply box sits flush with the post's clipped edge, so its focus ring is drawn inside the border. */
:is(html,#liquid-glass):is(html,#liquid-glass) body[data-theme] .social-reply-form input:is(:focus,:focus-visible){outline:none!important;border-color:var(--focus,#8a74ce)!important;box-shadow:inset 0 0 0 1px var(--focus,#8a74ce)!important}
/* A reply that is still sending shows at reduced strength with its buttons paused. */
body .reply-pending>.thread-reply{opacity:.6}
body .reply-pending .reply-controls{pointer-events:none}
/* Invite prompts: one in the feed for members, one above the feed for people arriving from an invite link. */
body :is(.invite-feed-card,.invite-welcome){display:flex;align-items:center;gap:14px;justify-content:space-between;padding:14px 16px!important;margin:12px 0!important;border:1px solid var(--line)!important;border-radius:16px!important;background:linear-gradient(135deg,rgba(58,187,215,.10),rgba(151,104,238,.14)),var(--panel)!important}
body :is(.invite-feed-card,.invite-welcome) b{display:block;font-size:15px;margin-bottom:3px}
body :is(.invite-feed-card,.invite-welcome) p{margin:0;font-size:13px;line-height:1.45;color:var(--muted)}
body .invite-feed-actions{display:flex;flex-direction:column;gap:6px;flex:none}
body :is(.invite-feed-card,.invite-welcome) .btn{white-space:nowrap}
@media (max-width:520px){body :is(.invite-feed-card,.invite-welcome){flex-direction:column;align-items:stretch}body .invite-feed-actions{flex-direction:row}body .invite-feed-actions .btn{flex:1}}
/* Menus inside popups sit on the popup surface, not a second dark box. */
:is(html,#liquid-glass):is(html,#liquid-glass) body[data-theme] .modal-card :is(.post-options-menu,.feed-sort-menu){background:transparent!important;background-image:none!important;box-shadow:none!important;border-color:transparent!important}
/* The price dot only appears while scrubbing (dragging or hovering) the main chart. */
body .live-chart[data-inspected-index] .chart-marker:not(.mini-dot){transition:opacity .15s ease}body .live-chart:not([data-inspected-index]) .chart-marker:not(.mini-dot){opacity:0}
/* Profile photo controls in the profile editor. */
body .avatar-photo-upload{cursor:pointer}body :is(#avatarPhotoUpload,#avatarPhotoRemove)[aria-busy=true]{opacity:.6;pointer-events:none}body #profileAvatarEditSlot{display:flex;flex-wrap:wrap;gap:8px;align-items:center}body .avatar-photo-status{flex-basis:100%;margin:2px 0 0;min-height:0}body .avatar-photo-status:empty{display:none}
body .photo-avatar{background-size:cover!important;border-radius:50%!important}body img[src^="/avatar/"]{object-fit:cover;border-radius:50%}
/* Sticky popup titles use the popup surface, not the page surface. */
:is(html,#liquid-glass):is(html,#liquid-glass) body[data-theme] #accountModal .modal-card h2{background-color:var(--lg-modal,var(--surface))!important;background-image:none!important}
/* Two boxed cards in a row (news, invite) get the same divider line in the gap between them. */
body #feed>:is(.home-news-card,.invite-feed-card)+:is(.home-news-card,.invite-feed-card){position:relative;margin-top:12px!important;border-top:1px solid var(--line)!important}body #feed>:is(.home-news-card,.invite-feed-card)+:is(.home-news-card,.invite-feed-card)::before{content:"";position:absolute;left:-1px;right:-1px;top:-13px;height:1px;background:var(--line);pointer-events:none}
/* A linked post (from a notification or share link) scrolls into view below the header and glows briefly. */
body #sharedPost{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 86px)}body #sharedPost.is-revealed .post{animation:shared-post-glow 2.4s ease-out}@keyframes shared-post-glow{0%,35%{box-shadow:0 0 0 2px var(--focus,#8a74ce),0 0 24px rgba(138,116,206,.35);border-radius:16px}100%{box-shadow:0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){body #sharedPost.is-revealed .post{animation:none}}
/* Track records: call badge on posts, profile record, Top callers board. */
body .post-call{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0 2px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;font-size:13px;background:var(--panel2,rgba(120,130,160,.08))}
body .post-call b{font-weight:750}body .post-call.call-bullish b{color:#2fbf7a}body .post-call.call-bearish b{color:#ef5f73}
body .post-call .call-entry{color:var(--muted)}
body .post-call .call-steps{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
body .call-step{padding:2px 8px;border-radius:999px;font-weight:650;font-size:12px;background:rgba(120,130,160,.14);color:var(--muted)}
body .call-step.call-right{background:rgba(47,191,122,.15);color:#2fbf7a}body .call-step.call-wrong{background:rgba(239,95,115,.15);color:#ef5f73}
body .call-hint{margin:6px 2px 0}
body .call-record{padding:14px 16px!important;margin:12px 0}body .call-record h3{margin:0 0 10px;font-size:16px}
body .call-record-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
body .call-record-stats span{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted)}body .call-record-stats b{font-size:20px;color:var(--text)}
body #topCallers{margin:18px 0 6px}
body .top-callers-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}
body .top-caller{display:grid;grid-template-columns:28px 1fr auto;grid-template-areas:"rank name rate" "rank meta meta";gap:2px 8px;align-items:center;padding:10px 14px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit}
body .top-caller:first-child{border-top:0}body .top-caller:hover{background:var(--ui-hover,rgba(120,130,160,.08))}
body .top-caller-rank{grid-area:rank;font-weight:800;color:var(--muted)}body .top-caller b{grid-area:name}body .top-caller span:not(.top-caller-rank){grid-area:rate;font-weight:700;color:#2fbf7a}body .top-caller small{grid-area:meta;color:var(--muted)}
/* Call it: daily Bitcoin higher-or-lower card on Home. */
/* Top streaks: ranked rows with medals and avatars. */
body .call-it-board{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:6px}
body .call-it-board li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:14px;background:color-mix(in srgb,var(--text) 4%,transparent)}
body .call-it-board li.ci-me{background:color-mix(in srgb,#9945ff 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,#9945ff 40%,transparent)}
body .call-it-board li:nth-child(1){background:linear-gradient(90deg,rgba(251,191,36,.18),transparent 70%)}
body .ci-rank{flex:none;display:grid;place-items:center;min-width:28px;height:28px;border-radius:9px;font-size:13px;font-weight:850;color:var(--muted);background:color-mix(in srgb,var(--text) 7%,transparent)}
body .ci-rank:is(.ci-rank-1,.ci-rank-2,.ci-rank-3){background:none;font-size:22px}
body .ci-board-avatar{flex:none;width:36px;height:36px;border-radius:50%;object-fit:cover;background:color-mix(in srgb,var(--text) 8%,transparent)}
body .ci-board-blank{display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(145deg,#ff9a3c,#9945ff)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .ci-board-name{display:grid;flex:1;min-width:0;margin:0;padding:0!important;min-height:0;border:0!important;background:none!important;box-shadow:none!important;color:var(--text)!important;font:inherit;text-align:left;line-height:1.25;cursor:pointer}
body .ci-board-name b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body .ci-board-name small{font-size:12px;color:var(--muted)}
body .ci-board-streak{flex:none;padding:4px 10px;border-radius:999px;font-size:14px;font-weight:850;color:#c2410c;background:rgba(249,115,22,.13)}
body[data-theme=dark] .ci-board-streak{color:#fdba74;background:rgba(253,186,116,.14)}
body .ci-board-empty{color:var(--muted)}
/* Portfolio tracker on the Charts page. */
body .pf-up{color:#2fbf7a;font-weight:700}body .pf-down{color:#ef5f73;font-weight:700}
body .pf-form{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px}
body .pf-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
body .pf-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
body .pf-results{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
body .pf-form-actions{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}
@media(max-width:520px){body .pf-fields{grid-template-columns:1fr}}
/* Call it: a playful daily game card. */
:is(html,#liquid-glass):is(html,#liquid-glass) body .call-it-card{position:relative;overflow:hidden;padding:14px!important;margin:0 0 12px;border:1px solid color-mix(in srgb,#9945ff 35%,var(--line))!important;background:radial-gradient(120% 90% at 100% 0%,rgba(247,147,26,.22),transparent 55%),radial-gradient(90% 80% at 0% 100%,rgba(153,69,255,.22),transparent 60%),var(--card,var(--surface))!important}
body .ci-head{display:flex;align-items:center;gap:12px}
body .ci-coin{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffc46b,#f7931a 60%,#c96f05);color:#fff;font-size:21px;font-weight:900;box-shadow:0 3px 10px rgba(247,147,26,.35),inset 0 -3px 0 rgba(0,0,0,.15);animation:ci-bob 3s ease-in-out infinite}
@keyframes ci-bob{50%{transform:translateY(-3px) rotate(-6deg)}}
body .ci-title{flex:1;min-width:0}body .ci-kicker{margin:0;font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;background:linear-gradient(90deg,#9945ff,#ff7a3c);-webkit-background-clip:text;background-clip:text;color:transparent}
body .ci-title h3{margin:2px 0 0;font-size:16px;line-height:1.25}
body .ci-price{flex:none;display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}body .ci-price small{font-size:11px;color:var(--muted)}body .ci-price b{font-size:16px;font-variant-numeric:tabular-nums}
body .ci-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
:is(html,#liquid-glass):is(html,#liquid-glass) body .ci-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0!important;border-radius:12px!important;color:#fff!important;font:inherit;font-size:15px;font-weight:800;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 4px 12px var(--ci-glow),inset 0 -2px 0 rgba(0,0,0,.15)!important}
body .ci-btn span{font-size:18px;transition:transform .2s ease}
:is(html,#liquid-glass):is(html,#liquid-glass) body .ci-btn-up{--ci-glow:rgba(20,200,120,.35);background:linear-gradient(160deg,#2ee59d,#10a765)!important}
:is(html,#liquid-glass):is(html,#liquid-glass) body .ci-btn-down{--ci-glow:rgba(239,95,115,.35);background:linear-gradient(160deg,#ff7b8c,#d93a55)!important}
body .ci-btn:hover{transform:translateY(-1px)}body .ci-btn:hover span{transform:scale(1.25) rotate(-10deg)}body .ci-btn:active{transform:translateY(1px) scale(.98)}body .ci-btn:disabled{opacity:.6;transform:none}
body .ci-hint{margin:6px 0 0;text-align:center;font-size:12px;color:var(--muted)}
body .ci-ticket{display:flex;gap:10px;align-items:center;margin-top:12px;padding:10px 12px;border-radius:12px;border:1.5px dashed var(--ci-c);background:color-mix(in srgb,var(--ci-c) 10%,transparent)}
body .ci-ticket.ci-up{--ci-c:#14c47a}body .ci-ticket.ci-down{--ci-c:#ef5f73}
body .ci-ticket-pick{font-size:24px;animation:ci-bob 2.4s ease-in-out infinite}
body .ci-ticket div{display:flex;flex-direction:column;gap:1px}body .ci-ticket small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:750}body .ci-ticket b{font-size:15px}
body .ci-mood{font-size:13px;font-weight:700}body .ci-winning{color:#14c47a}body .ci-losing{color:#ef5f73}body .ci-close{color:#e0a400}
body .ci-timer{margin-top:10px}body .ci-timer small{display:block;margin-top:5px;font-size:12px;color:var(--muted);text-align:right}
body .ci-bar{height:8px;border-radius:99px;background:color-mix(in srgb,var(--muted) 18%,transparent);overflow:hidden}body .ci-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9945ff,#ff7a3c,#ffd23f);background-size:200% 100%;animation:ci-flow 3s linear infinite}
@keyframes ci-flow{to{background-position:-200% 0}}
body .ci-wait{margin:14px 0 0;font-weight:650}
body .ci-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}
body .ci-stat{display:flex;flex-direction:row;justify-content:center;align-items:baseline;gap:5px;padding:6px 4px;border-radius:10px;background:color-mix(in srgb,var(--muted) 9%,transparent)}body .ci-stat b{font-size:14px;font-variant-numeric:tabular-nums}body .ci-stat small{font-size:11px;color:var(--muted)}
body .ci-last{margin:8px 0 0;font-size:12px;font-weight:650}body .ci-right{color:#14c47a}body .ci-wrong{color:#ef5f73}body .ci-draw{color:var(--muted)}
body .ci-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
:is(html,#liquid-glass):is(html,#liquid-glass) body .ci-chip{min-height:32px;padding:0 12px;border-radius:999px!important;border:1px solid var(--line)!important;background:color-mix(in srgb,var(--muted) 8%,transparent)!important;color:var(--text)!important;font:inherit;font-size:13px;font-weight:700;cursor:pointer;box-shadow:none!important}
body .ci-confetti{position:absolute;left:50%;top:55%;pointer-events:none}body .ci-confetti i{position:absolute;width:8px;height:12px;border-radius:2px;opacity:0;animation:ci-pop 1.1s cubic-bezier(.2,.7,.3,1) var(--d) forwards}
@keyframes ci-pop{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--x),calc(var(--y) + 140px)) rotate(var(--r))}}
@media(prefers-reduced-motion:reduce){body .ci-coin,body .ci-ticket-pick,body .ci-bar span{animation:none}}
/* Portfolio tracker on the Charts page. */
body .portfolio-card{padding:16px!important;margin:0 0 14px}
body .pf-head{display:flex;align-items:center;gap:8px}
body .pf-head h3{margin:0;font-size:18px}
body .pf-private{font-size:11px;font-weight:750;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--muted);white-space:nowrap}
:is(html,#liquid-glass):is(html,#liquid-glass) body .pf-add{margin-left:auto;white-space:nowrap;min-height:36px;padding:0 14px;border:0!important;border-radius:999px!important;background:linear-gradient(135deg,#9945ff,#4f6bff)!important;color:#fff!important;font:inherit;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 6px 16px rgba(110,80,255,.3)!important}
body .pf-hero{margin-top:12px;padding:16px;border-radius:18px;color:#fff;background:radial-gradient(120% 120% at 100% 0%,rgba(20,241,149,.35),transparent 55%),linear-gradient(135deg,#2b1a5e,#4b2aa8 55%,#7a3fd0)}
body .pf-hero small{font-size:12px;opacity:.75}body .pf-hero .pf-total{margin:2px 0 8px;font-size:32px;font-weight:850;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
body .pf-hero-stats{display:flex;gap:18px;flex-wrap:wrap}body .pf-hero-stats>span{display:flex;flex-direction:column;font-size:15px}body .pf-hero-stats em{font-style:normal;font-size:12px;opacity:.85}
body .pf-hero .pf-up{color:#5dffb5}body .pf-hero .pf-down{color:#ff9aa8}
body .pf-alloc{display:flex;height:8px;margin-top:14px;border-radius:99px;overflow:hidden;gap:2px;background:rgba(255,255,255,.12)}body .pf-alloc span{min-width:3px}
body .pf-up{color:#14b86f;font-weight:750}body .pf-down{color:#ef5f73;font-weight:750}
body .pf-list{display:flex;flex-direction:column;gap:6px;margin-top:12px}
:is(html,#liquid-glass):is(html,#liquid-glass) body .pf-list .pf-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin:0!important;padding:10px 12px!important;min-height:0!important;border:1px solid var(--line)!important;border-radius:14px!important;background:color-mix(in srgb,var(--muted) 5%,transparent)!important;box-shadow:none!important;color:var(--text)!important;text-align:left;font:inherit;cursor:pointer;transition:transform .12s ease,background .12s ease}
:is(html,#liquid-glass):is(html,#liquid-glass) body .pf-list .pf-row:hover{background:color-mix(in srgb,var(--muted) 11%,transparent)!important;transform:translateY(-1px)}
body .pf-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;object-fit:cover;color:#fff;font-weight:850;font-size:15px}
body .pf-row>span{display:flex;flex-direction:column;gap:3px}body .pf-row small{font-size:12px;color:var(--muted)}body .pf-value{align-items:flex-end;text-align:right}body .pf-coin b{display:flex;align-items:center;gap:6px}
body .pf-pill{font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px}body .pf-pill-up{background:rgba(20,184,111,.14);color:#14b86f}body .pf-pill-down{background:rgba(239,95,115,.14);color:#ef5f73}
body .pf-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-top:12px;padding:20px 14px;border-radius:18px;border:1.5px dashed var(--line)}
body .pf-empty p{margin:0;line-height:1.5}body .pf-empty-coins{display:flex}body .pf-empty-coins span{display:grid;place-items:center;width:44px;height:44px;margin-left:-10px;border-radius:50%;border:3px solid var(--card,var(--surface,#fff));color:#fff;font-size:20px;font-weight:900;box-shadow:0 4px 12px rgba(0,0,0,.15)}body .pf-empty-coins span:first-child{margin-left:0}
body .pf-quick{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
body .pf-form{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px}
body .pf-public{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--muted) 6%,transparent);cursor:pointer}
body .pf-public>span:first-child{display:flex;flex-direction:column;font-size:14px}body .pf-public small{font-size:12px;color:var(--muted)}
@media(max-width:420px){body .pf-hero .pf-total{font-size:28px}}
/* Cards hold their space while loading; the game shrinks to one row once played. */
body .call-it-card.ci-loading{min-height:270px}html[data-callit="played"] body .call-it-card.ci-loading{min-height:0;padding:10px 12px!important}html[data-callit="played"] body .call-it-card.ci-loading .ci-coin{width:38px;height:38px;font-size:21px;animation:none}html[data-callit="played"] body .call-it-card.ci-loading h3{font-size:15px}
body .pf-skeleton{height:200px;border-radius:18px;background:linear-gradient(100deg,color-mix(in srgb,var(--muted) 8%,transparent) 30%,color-mix(in srgb,var(--muted) 16%,transparent) 50%,color-mix(in srgb,var(--muted) 8%,transparent) 70%);background-size:200% 100%;animation:ci-flow 1.4s linear infinite}
:is(html,#liquid-glass):is(html,#liquid-glass) body .call-it-card.ci-compact{padding:10px 12px!important}
:is(html,#liquid-glass):is(html,#liquid-glass) body .ci-mini{display:flex;align-items:center;gap:12px;width:100%;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--text)!important;font:inherit;text-align:left;cursor:pointer}
body .ci-mini .ci-coin{width:38px;height:38px;font-size:21px;animation:none}
body .ci-mini-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}body .ci-mini-text b{font-size:15px}body .ci-mini-text small{font-size:12px;color:var(--muted)}
body .ci-mini-streak{flex:none;padding:4px 10px;border-radius:999px;background:rgba(255,150,60,.15);color:#ff8a1f;font-weight:800;font-size:13px}
body .ci-chevron{flex:none;font-size:18px;color:var(--muted)}
:is(html,#liquid-glass):is(html,#liquid-glass) body #page-home #headlineTicker{display:none!important}
/* Portfolio wallet connection. */
:is(html,#liquid-glass):is(html,#liquid-glass) body .pf-wallet-bar{display:flex;align-items:center;gap:10px;width:100%;margin:10px 0 0;padding:10px 12px!important;min-height:0!important;border:1px dashed color-mix(in srgb,#9945ff 45%,var(--line))!important;border-radius:14px!important;background:color-mix(in srgb,#9945ff 6%,transparent)!important;box-shadow:none!important;color:var(--text)!important;font:inherit;text-align:left}
body .pf-wallet-bar>span:first-child{font-size:18px}body .pf-wallet-bar>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}body .pf-wallet-bar b{font-size:14px}body .pf-wallet-bar small{font-size:12px;color:var(--muted)}
body .pf-wallet-connect{cursor:pointer}
body .pf-wallet-tag{font-size:11px}
body .pf-connect-options{display:flex;flex-direction:column;gap:8px;margin:12px 0}
:is(html,#liquid-glass):is(html,#liquid-glass) body .pf-connect-option{display:flex;align-items:center;gap:12px;width:100%;min-height:0!important;padding:12px!important;border:1px solid var(--line)!important;border-radius:14px!important;background:color-mix(in srgb,var(--muted) 5%,transparent)!important;box-shadow:none!important;color:var(--text)!important;font:inherit;text-align:left;cursor:pointer}
body .pf-connect-option>span:last-child{display:flex;flex-direction:column}body .pf-connect-option small{font-size:12px;color:var(--muted)}
body .pf-verified{display:inline-flex;align-items:center;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:rgba(20,184,111,.14);color:#12a866;white-space:nowrap}body .pf-public-line .pf-verified{margin-left:6px;vertical-align:middle}
body .pf-head h3{white-space:nowrap}body .pf-head .pf-private,body .pf-head .pf-verified{padding:3px 7px;font-size:10.5px}body .pf-head{gap:6px}
/* Market-moving events at the top of News. */
body .market-events-card{padding:14px!important;margin:0 0 12px}
body .me-head{display:flex;align-items:center;justify-content:space-between;gap:8px}body .me-head h3{margin:0;font-size:16px}
body .me-next{display:flex;align-items:flex-start;gap:12px;margin-top:10px;padding:12px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,#9945ff 10%,transparent),color-mix(in srgb,#ff7a3c 8%,transparent));border:1px solid color-mix(in srgb,#9945ff 25%,var(--line))}
body .me-emoji{font-size:26px;line-height:1}
body .me-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}body .me-body b{font-size:15px}body .me-body small{font-size:12px;color:var(--muted)}
body .me-live{color:#ef5f73}
:is(html,#liquid-glass):is(html,#liquid-glass) body .me-notify{flex:none;min-height:32px;padding:0 12px;border-radius:999px!important;border:0!important;background:linear-gradient(135deg,#9945ff,#4f6bff)!important;color:#fff!important;font:inherit;font-size:13px;font-weight:800;cursor:pointer;box-shadow:none!important;white-space:nowrap}
:is(html,#liquid-glass):is(html,#liquid-glass) body .me-notify.is-on{background:rgba(20,184,111,.15)!important;color:#12a866!important}
body .me-list{display:flex;flex-direction:column;margin-top:6px}
body .me-row{display:flex;align-items:center;gap:10px;padding:8px 2px;border-top:1px solid var(--line)}body .me-row:first-child{border-top:0}
body .me-row-text{flex:1;min-width:0;display:flex;flex-direction:column}body .me-row-text b{font-size:14px}body .me-row-text small{font-size:12px;color:var(--muted)}
body .me-impact{margin:4px 0 0;font-size:13px;display:flex;gap:8px;flex-wrap:wrap}
body .me-headline{font-size:13px;color:var(--text);text-decoration:none;font-weight:650}
body .me-foot{margin:8px 0 0;font-size:11px}
body .me-cal{display:inline-flex;align-items:center;text-decoration:none}
body .me-row{align-items:flex-start}body .me-row>span:first-child{padding-top:2px}body .me-impact{gap:6px;font-size:12px}
/* In-app event calendar. */
body .cal-filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}body .cal-filters .chip{flex:none}
body .cal-month{margin:14px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
body .cal-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
body .cal-date{flex:none;display:flex;flex-direction:column;align-items:center;width:42px;padding:4px 0;border-radius:10px;background:color-mix(in srgb,#9945ff 9%,transparent);line-height:1.1}body .cal-date b{font-size:17px}body .cal-date small{font-size:10px;color:var(--muted);text-transform:uppercase}
body .cal-info{flex:1;min-width:0}body .cal-info summary{list-style:none;cursor:pointer;display:flex;flex-direction:column}body .cal-info summary::-webkit-details-marker{display:none}body .cal-info summary b{font-size:14px}body .cal-info summary small{font-size:12px;color:var(--muted)}body .cal-info p{margin:6px 0 0}
:is(html,#liquid-glass):is(html,#liquid-glass) body .cal-info>summary{display:flex!important;flex-direction:column!important;align-items:flex-start!important;text-align:left!important;padding:0!important;margin:0!important;min-height:0!important;background:none!important;border:0!important;box-shadow:none!important}:is(html,#liquid-glass):is(html,#liquid-glass) body .cal-info>summary::after,:is(html,#liquid-glass):is(html,#liquid-glass) body .cal-info>summary::before{display:none!important;content:none!important}
body .me-skeleton{height:150px;border-radius:14px;background:linear-gradient(100deg,color-mix(in srgb,var(--muted) 8%,transparent) 30%,color-mix(in srgb,var(--muted) 16%,transparent) 50%,color-mix(in srgb,var(--muted) 8%,transparent) 70%);background-size:200% 100%;animation:ci-flow 1.4s linear infinite}
html[data-market-events] body #marketEventsCard.me-pending[hidden]{display:block!important;min-height:330px}
/* Call it as community sentiment: today's split of higher vs lower calls. */
body .ci-crowd{margin-top:12px}
body .ci-crowd-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;gap:2px;background:color-mix(in srgb,var(--muted) 15%,transparent)}
body .ci-crowd-up{background:linear-gradient(90deg,#10a765,#2ee59d);border-radius:99px 0 0 99px;transition:width .6s ease}body .ci-crowd-down{flex:1;background:linear-gradient(90deg,#ff7b8c,#d93a55);border-radius:0 99px 99px 0}
body .ci-crowd-bar.is-empty span{opacity:.25}
body .ci-crowd-labels{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:5px;font-size:13px}body .ci-crowd-labels small{font-size:11px;color:var(--muted);text-align:center}
body #callItCardCharts{margin:0 0 14px}
html body[data-home-layout="compact"] #page-tokencheck .compact-sentiment[hidden],html body #page-tokencheck .pulse[hidden]{display:none!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .profile-social-actions .round-control:is(.active,[aria-pressed=true]){background:#6850aa!important;color:#fff!important;border-color:transparent!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .post .post-add-emoji[aria-pressed=true]{background:#6850aa!important;color:#fff!important;border-color:transparent!important}
/* Other members' profiles (pop-up and page) match your own: the background is a banner that fades into the card,
   and the name, badge, buttons and bio sit on the normal readable surface below it. */
:is(html,#liquid-glass):is(html,#liquid-glass) body .nodora-profile:is(.has-profile-cover,.has-banner){position:relative;isolation:isolate;background-image:none!important;background-color:var(--panel)!important;color:var(--text)!important}
body[data-theme="light"] .nodora-profile:is(.has-profile-cover,.has-banner){--text:#16233d!important;--muted:#526582!important;--panel:#fff!important;--panel2:#f4f6fb!important;--line:#d6deec!important}
body[data-theme="dark"] .nodora-profile:is(.has-profile-cover,.has-banner){--text:#f5f7ff!important;--muted:#91a0c4!important;--panel:#0f1729!important;--panel2:#162038!important;--line:#263554!important}
body .nodora-profile .public-cover-stage{position:absolute;inset:0 0 auto;height:190px;z-index:-1;pointer-events:none}
body .nodora-profile .public-cover-stage::before{content:'';position:absolute;inset:0;background:var(--profile-cover,none) center 35%/cover no-repeat;opacity:.8}
body .nodora-profile .public-cover-stage::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,var(--panel) 2%,transparent 75%)}
body .nodora-profile:is(.has-profile-cover,.has-banner) .public-profile-identity{flex-direction:column!important;align-items:flex-start!important;gap:12px!important}
body .nodora-profile:is(.has-profile-cover,.has-banner) .public-profile-name h3,body .nodora-profile:is(.has-profile-cover,.has-banner)>p{color:var(--text)!important;text-shadow:none!important}
body .nodora-profile .public-cover-stage.no-cover{background:linear-gradient(130deg,#2580ff35,#7a4df235)}body .nodora-profile .public-cover-stage.no-cover::before{display:none}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .post .social-reply:is(.active,[aria-pressed=true]){border-color:var(--lg-edge,var(--line))!important;box-shadow:none!important;outline:none!important}
/* iPhone keeps a tapped button in :hover/:focus; pin the comments button's resting look so closing replies
   goes straight back to normal with no white flash. Only the open state (.active) is tinted. */
body[data-theme="light"] .post .social-reply{--reply-rest:#fff;--reply-rest-line:#e0e0e0}
body[data-theme="dark"] .post .social-reply{--reply-rest:rgb(13,17,23);--reply-rest-line:rgb(61,68,77)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .post .social-reply:not(.active):not([aria-pressed=true]):is(:hover,:focus,:focus-visible,:active){background-color:var(--reply-rest)!important;border-color:var(--reply-rest-line)!important;box-shadow:none!important;outline:none!important}
@media (hover:none){:is(html,#liquid-glass):is(html,#liquid-glass) body .post .social-reply{transition:none!important}}
/* Market-moving events: a clear card of its own, line icons instead of emoji, and a "Latest news" heading below. */
:is(html,#liquid-glass):is(html,#liquid-glass) body .market-events-card{padding:14px!important;margin:0 0 6px;border:1px solid var(--line)!important;border-radius:20px!important;background:var(--panel)!important;box-shadow:0 6px 20px rgba(15,23,42,.06)!important}
body .me-head h3{display:flex;align-items:center;gap:8px}
:is(html,#liquid-glass):is(html,#liquid-glass) body .me-cal-btn{display:inline-flex;align-items:center;gap:6px}body .me-cal-btn svg{width:16px;height:16px}
body .me-badge{flex:none;display:inline-grid;place-items:center;min-width:40px;height:26px;padding:0 6px;border-radius:8px;font-size:11px;font-weight:850;letter-spacing:.06em;color:#fff;background:#5b6b8c}
body .me-badge-fomc{background:linear-gradient(135deg,#2b5bd7,#1e3a8a)}body .me-badge-rba{background:linear-gradient(135deg,#0f8a6b,#0b5e4a)}body .me-badge-conferences{background:linear-gradient(135deg,#9945ff,#6d28d9)}
body .me-next .me-badge{height:30px;min-width:46px;font-size:12px;margin-top:2px}
:is(html,#liquid-glass):is(html,#liquid-glass) body .me-notify{display:inline-flex;align-items:center;justify-content:center;gap:6px}
body .me-notify svg{width:16px;height:16px;flex:none}
:is(html,#liquid-glass):is(html,#liquid-glass) body .me-notify.me-notify-icon{width:36px;height:36px;min-height:36px;padding:0;background:transparent!important;border:1px solid var(--line)!important;color:var(--muted)!important}
:is(html,#liquid-glass):is(html,#liquid-glass) body .me-notify.me-notify-icon.is-on{background:rgba(20,184,111,.14)!important;border-color:transparent!important;color:#12a866!important}
body .me-notify.me-notify-icon svg{width:17px;height:17px}
body .me-row{align-items:center}body .me-row>.me-badge{margin-top:0}
body .news-section-title{margin:18px 2px 10px;font-size:16px;font-weight:800;display:flex;align-items:center;gap:10px;color:var(--text)}
body .news-section-title::after{content:'';flex:1;height:1px;background:var(--line)}
body .me-row{align-items:flex-start!important}body .me-row>.me-badge{margin-top:2px}body .me-row>.me-notify{margin-top:2px}body .me-impact,body .me-row-text .me-impact{font-size:13px!important;margin-top:4px}body .me-headline{font-size:13px}
/* iPhone app: purchases go through Apple, so USDC prices and X sign-in are hidden. */
html[data-app] .social-auth,html[data-app] .social-auth+.auth-divider{display:none!important}
html[data-app] .currency-price:has(.usdc-logo){display:none!important}
/* Morning brief opened from a notification. */
.brief-view{display:grid;gap:14px}
.brief-hero{padding:18px;border-radius:18px;color:#fff;background:linear-gradient(135deg,#ff9a3c 0%,#f5576c 55%,#8b5cf6 100%);box-shadow:0 12px 30px rgba(245,87,108,.25)}
.brief-hero small{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
#socialDialogBody .brief-hero h2{margin:4px 0 4px;font-size:26px;line-height:1.15;color:#fff}
.brief-hero p{margin:0;font-size:15px;opacity:.95}
.brief-loading{margin:0;color:var(--muted);font-size:14px;text-align:center}
.brief-section{padding:4px 2px}
.brief-section header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
#socialDialogBody .brief-section h3{display:flex;align-items:center;gap:8px;margin:0!important;font-size:13px!important;font-weight:800!important;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)!important}
.brief-more{appearance:none;border:0;background:none;color:#7c5cff;font:700 14px/1 inherit;cursor:pointer;padding:6px 2px}
.brief-coin,.brief-post,.brief-news{appearance:none;display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;border-top:1px solid var(--line,rgba(127,127,127,.18));background:none;color:inherit;font:inherit;padding:12px 2px;cursor:pointer;text-decoration:none}
.brief-section header+.brief-coin,.brief-section header+.brief-post,.brief-section header+.brief-news{border-top:0}
.brief-coin img,.brief-coin-dot{width:32px;height:32px;border-radius:50%;flex:none}
.brief-coin-dot{display:grid;place-items:center;font-weight:800;background:rgba(124,92,255,.15)}
.brief-coin-name{flex:1;min-width:0;display:grid}
.brief-coin-name small,.brief-coin-price small,.brief-news small,.brief-post small{font-size:12.5px;color:var(--muted)}
.brief-spark{width:72px;height:26px;flex:none}
.brief-coin-price{display:grid;text-align:right;min-width:86px}
.brief-coin-price .up{color:#16a34a;font-weight:700}.brief-coin-price .down{color:#e11d48;font-weight:700}
.brief-news img{width:56px;height:56px;border-radius:12px;object-fit:cover;flex:none}
.brief-news span,.brief-post>span:last-child{display:grid;gap:3px;min-width:0}
.brief-news b,.brief-post b{font-size:15px;line-height:1.35;font-weight:600}
.brief-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;flex:none;font-weight:900;font-size:14px;color:#fff;background:linear-gradient(135deg,#ff9a3c,#f5576c)}
.brief-fallback{margin:0;font-size:15px}
.brief-cta{width:100%;margin-top:2px}
/* Call it card briefly highlighted when opened from a notification. */
#callItCard.ci-flash{animation:ci-flash 1.6s ease-out}
@keyframes ci-flash{0%,40%{box-shadow:0 0 0 3px #8b5cf6,0 0 28px rgba(139,92,246,.45)}100%{box-shadow:none}}
@media(prefers-reduced-motion:reduce){#callItCard.ci-flash{animation:none}}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body #socialDialogBody :is(.brief-coin,.brief-post){border-radius:0!important;background:none!important;box-shadow:none!important;border:0!important;border-top:1px solid var(--line,rgba(127,127,127,.18))!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;min-height:0!important;padding:12px 2px!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body #socialDialogBody .brief-section header+:is(.brief-coin,.brief-post){border-top:0!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body #socialDialogBody .brief-more{background:none!important;border:0!important;box-shadow:none!important;min-height:0!important;padding:6px 2px!important}
/* Portfolio empty state: real coin logos. */
body .pf-empty-coins img{width:44px;height:44px;margin-left:-10px;border-radius:50%;border:3px solid var(--card,var(--surface,#fff));background:var(--card,var(--surface,#fff));box-shadow:0 4px 12px rgba(15,23,42,.12)}
body .pf-empty-coins img:first-child{margin-left:0}
/* What if calculator: amount and coin, pill pickers, a result panel and a chart you can drag across. */
:is(html,#liquid-glass):is(html,#liquid-glass) body .whatif-card{--wi:#0d9488;--wi2:#3b82f6;position:relative;overflow:hidden;padding:16px!important;margin:0 0 12px;border:1px solid color-mix(in srgb,var(--wi) 35%,var(--line))!important;background:radial-gradient(120% 90% at 100% 0%,rgba(20,184,166,.18),transparent 55%),radial-gradient(90% 80% at 0% 100%,rgba(59,130,246,.16),transparent 60%),var(--card,var(--surface))!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .wi-head{display:flex;align-items:center;gap:12px;width:100%;margin:0;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;color:inherit!important;font:inherit;text-align:left;cursor:pointer;min-height:0}
body .wi-titles{display:grid;flex:1;min-width:0}
body .wi-title{margin-top:2px;font-size:17px;font-weight:800;line-height:1.25;color:var(--text)}
body .wi-mini{display:none;margin-top:2px;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
body .wi-mini b{color:var(--text)}body .wi-mini em{font-style:normal;font-weight:800}
body .wi-toggle{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:var(--muted);background:color-mix(in srgb,var(--text) 6%,transparent);transition:transform .25s ease}
body .wi-toggle svg{width:18px;height:18px}
body .wi-collapsed .wi-toggle{transform:rotate(180deg)}
body .wi-collapsed .wi-body{display:none}
body .wi-collapsed .wi-titles:has(.wi-mini:not(:empty)) .wi-title{display:none}body .wi-collapsed .wi-mini:not(:empty){display:block}
:is(html,#liquid-glass):is(html,#liquid-glass) body .whatif-card.wi-collapsed{padding:12px 14px!important}
body .wi-collapsed .wi-badge{width:36px;height:36px;border-radius:11px}
body .wi-badge{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:linear-gradient(145deg,#2dd4bf,#0d9488 55%,#2563eb);color:#fff;box-shadow:0 4px 14px rgba(13,148,136,.35),inset 0 -3px 0 rgba(0,0,0,.15)}
body .wi-badge svg{width:22px;height:22px;stroke-width:2.4}
body .wi-kicker{margin:0;font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;background:linear-gradient(90deg,#0d9488,#2563eb);-webkit-background-clip:text;background-clip:text;color:transparent}
body[data-theme=dark] .wi-kicker{background-image:linear-gradient(90deg,#5eead4,#93c5fd)}
body .wi-form{display:grid;gap:10px;margin:14px 0 4px}
body .wi-pick{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px}
body .wi-field{display:grid;gap:4px;margin:0;min-width:0}
body .wi-field>span:first-child,body .wi-seg-row>span{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
:is(html,#liquid-glass):is(html,#liquid-glass) body .wi-amount,:is(html,#liquid-glass):is(html,#liquid-glass) body .wi-coin{position:relative;display:flex;align-items:center;gap:6px;min-width:0;height:44px;padding:0 12px;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--panel,var(--surface))!important;font-size:16px;font-weight:750;color:var(--text);transition:border-color .15s,box-shadow .15s}
:is(html,#liquid-glass):is(html,#liquid-glass) body .wi-amount:focus-within,:is(html,#liquid-glass):is(html,#liquid-glass) body .wi-coin:focus-within{border-color:var(--wi)!important;box-shadow:0 0 0 3px rgba(20,184,166,.2)!important}
body .wi-amount b{color:var(--muted);font-weight:700}
:is(html,#liquid-glass):is(html,#liquid-glass) body .wi-amount input{flex:1;min-width:0;width:100%;border:0!important;background:none!important;box-shadow:none!important;font:inherit;color:inherit;padding:0!important;min-height:0;outline:none!important}
body .wi-coin-logo,body .wi-coin-initial{flex:none;width:24px;height:24px;border-radius:50%;object-fit:cover}
body .wi-coin-initial{display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(145deg,#2dd4bf,#2563eb)}
body .wi-coin-logo[hidden],body .wi-coin-initial[hidden]{display:none}
:is(html,#liquid-glass):is(html,#liquid-glass) body .wi-coin select{flex:1;min-width:0;height:100%;border:0!important;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0 center!important;box-shadow:none!important;-webkit-appearance:none;appearance:none;font:inherit;color:inherit;padding:0 18px 0 0!important;outline:none!important;text-overflow:ellipsis}
body .wi-seg-row{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:8px}
body .wi-seg{display:flex;gap:2px;padding:3px;border-radius:12px;background:color-mix(in srgb,var(--text) 6%,transparent);border:1px solid var(--line)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .wi-seg button{flex:1;min-width:0;min-height:34px;padding:0 4px!important;border:0!important;border-radius:9px!important;background:transparent!important;box-shadow:none!important;color:var(--muted)!important;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .wi-seg button.active{background:var(--panel,#fff)!important;color:var(--text)!important;box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 1px color-mix(in srgb,var(--wi) 45%,transparent)!important}
body[data-theme=dark] .wi-seg button.active{background:color-mix(in srgb,#2dd4bf 18%,#111827)!important}
body .wi-result{margin-top:12px;transition:opacity .2s}body .wi-result.wi-busy{opacity:.55}
body .wi-skeleton{height:250px;border-radius:14px;background:linear-gradient(90deg,color-mix(in srgb,var(--text) 5%,transparent) 25%,color-mix(in srgb,var(--text) 10%,transparent) 50%,color-mix(in srgb,var(--text) 5%,transparent) 75%);background-size:200% 100%;animation:wi-shimmer 1.2s linear infinite}
@keyframes wi-shimmer{to{background-position:-200% 0}}
body .wi-hero{--tone:#10a765;padding:14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--tone) 30%,transparent);background:linear-gradient(150deg,color-mix(in srgb,var(--tone) 14%,transparent),color-mix(in srgb,var(--tone) 4%,transparent))}
body .wi-hero.wi-loss{--tone:#d93a55}
body[data-theme=dark] .wi-hero{--tone:#3fd3a7}body[data-theme=dark] .wi-hero.wi-loss{--tone:#ff7b91}
body .wi-sentence{margin:0;font-size:13px;line-height:1.35;color:var(--muted)}
body .wi-value{display:block;margin:2px 0 8px;font-size:36px;line-height:1.1;font-weight:850;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
body .wi-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
body .wi-pill{padding:3px 9px;border-radius:999px;background:var(--tone);color:#fff;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
body[data-theme=dark] .wi-pill{color:#06251b}body[data-theme=dark] .wi-loss .wi-pill{color:#2a0710}
body .wi-profit{font-size:13px;font-weight:750;color:var(--tone);font-variant-numeric:tabular-nums}
body .wi-times{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800;color:#7c3aed;background:rgba(124,58,237,.12)}
body[data-theme=dark] .wi-times{color:#c4b5fd;background:rgba(167,139,250,.16)}
body .wi-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 12px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
body .wi-stats>div{padding:8px 10px;min-width:0}body .wi-stats>div+div{border-left:1px solid var(--line)}
body .wi-stats dt{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body .wi-stats dd{margin:2px 0 0;font-size:14px;font-weight:750;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body .wi-plot{--tone:#10a765;position:relative;height:130px;touch-action:pan-y;cursor:crosshair}
body .wi-plot.wi-down{--tone:#d93a55}body[data-theme=dark] .wi-plot{--tone:#3fd3a7}body[data-theme=dark] .wi-plot.wi-down{--tone:#ff7b91}
body .wi-chart{display:block;width:100%;height:100%;overflow:visible}
body .wi-chart path{fill:none;stroke-width:2.25;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
body .wi-chart .wi-value{stroke:var(--tone)}
body .wi-chart .wi-area{stroke:none}body .wi-chart path.wi-area{fill:url(#wiFill)}
body .wi-stop-top{stop-color:var(--tone);stop-opacity:.28}body .wi-stop-bottom{stop-color:var(--tone);stop-opacity:0}
body .wi-chart .wi-invested{stroke:var(--muted);stroke-dasharray:4 4;stroke-width:1.5;opacity:.8}
body .wi-end{position:absolute;right:0;top:var(--end-y);width:10px;height:10px;margin:-5px -5px 0 0;border-radius:50%;background:var(--tone);box-shadow:0 0 0 3px color-mix(in srgb,var(--tone) 25%,transparent)}
body .wi-end::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--tone);animation:wi-ping 1.8s ease-out infinite}
@keyframes wi-ping{to{transform:scale(2.4);opacity:0}}
@media(prefers-reduced-motion:reduce){body .wi-end::after,body .wi-skeleton{animation:none}}
body .wi-cursor{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed color-mix(in srgb,var(--text) 35%,transparent);pointer-events:none}
body .wi-cursor[hidden]{display:none}
body .wi-cursor i{position:absolute;top:var(--y);left:-5px;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--panel,#fff);border:2px solid var(--tone)}
body .wi-cursor b{position:absolute;top:-6px;left:8px;display:grid;gap:1px;padding:6px 9px;border-radius:10px;background:var(--panel,#fff);border:1px solid var(--line);box-shadow:0 6px 18px rgba(0,0,0,.12);font-size:14px;font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
body .wi-cursor.wi-flip b{left:auto;right:8px}
body .wi-cursor b small{font-size:11px;font-weight:600;color:var(--muted)}
body .wi-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 12px;font-size:12px;color:var(--muted)}
body .wi-legend span{display:inline-flex;align-items:center;gap:6px}body .wi-legend span:last-child{margin-left:auto}
body .wi-legend i{display:inline-block;width:14px;height:0;border-top:2px solid #10a765}body .wi-legend .wi-key-invested{border-top:2px dashed var(--muted)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .wi-share{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;border:0!important;border-radius:12px!important;background:linear-gradient(135deg,#14b8a6,#2563eb)!important;color:#fff!important;font:inherit;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(37,99,235,.28),inset 0 -2px 0 rgba(0,0,0,.15)!important;transition:transform .15s}
body .wi-share:active{transform:scale(.98)}body .wi-share svg{width:18px;height:18px}
body .wi-status{margin:6px 0;font-size:13px;color:var(--muted)}
body .wi-note{margin:10px 0 0;font-size:11px;color:var(--muted);text-align:center}
body .wi-mini em.wi-gain{color:#10a765}body .wi-mini em.wi-loss{color:#d93a55}body[data-theme=dark] .wi-mini em.wi-gain{color:#3fd3a7}body[data-theme=dark] .wi-mini em.wi-loss{color:#ff7b91}
/* What if: post and share buttons under a result. */
body .wi-actions{display:flex;gap:8px}body .wi-actions .wi-post-btn{flex:1}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .wi-share.wi-icon-only{flex:none;width:48px;padding:0!important;background:var(--panel,var(--surface))!important;color:var(--text)!important;border:1px solid var(--line)!important;box-shadow:none!important}
/* What if result attached to a post. */
body .wi-post{--tone:#10a765;position:relative;overflow:hidden;margin:10px 0 4px;padding:14px;border-radius:16px;border:1px solid color-mix(in srgb,#14b8a6 35%,var(--line));background:radial-gradient(110% 90% at 100% 0%,rgba(20,184,166,.16),transparent 55%),radial-gradient(90% 80% at 0% 100%,rgba(59,130,246,.12),transparent 60%),var(--panel,var(--surface))}
body .wi-post.wi-loss{--tone:#d93a55}body[data-theme=dark] .wi-post{--tone:#3fd3a7}body[data-theme=dark] .wi-post.wi-loss{--tone:#ff7b91}
body .wi-post-top{display:flex;align-items:center;gap:8px}
body .wi-post-badge{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:linear-gradient(145deg,#2dd4bf,#0d9488 55%,#2563eb);color:#fff}
body .wi-post-badge svg{width:16px;height:16px;stroke-width:2.5}
body .wi-post-kicker{flex:1;min-width:0;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body .wi-post-kicker b{color:var(--text)}body .wi-post-kicker small{font-size:11px;font-weight:700}
body .wi-post-pill{flex:none;padding:3px 9px;border-radius:999px;background:var(--tone);color:#fff;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
body[data-theme=dark] .wi-post-pill{color:#06251b}body[data-theme=dark] .wi-loss .wi-post-pill{color:#2a0710}
body .wi-post-line-text{margin:10px 0 0;font-size:13px;color:var(--muted)}
body .wi-post-value{display:block;font-size:30px;line-height:1.15;font-weight:850;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
body .wi-post-sub{margin:2px 0 6px;font-size:13px;color:var(--muted)}body .wi-post-sub b{color:#7c3aed}body[data-theme=dark] .wi-post-sub b{color:#c4b5fd}
body .wi-post-chart{display:block;width:100%;height:80px;margin:4px 0 8px;overflow:visible}
body .wi-post-chart path{fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
body .wi-post-line{stroke:var(--tone);stroke-width:2.25}body .wi-post-put{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 4;opacity:.8}
body .wi-post-area{fill:color-mix(in srgb,var(--tone) 14%,transparent)!important;stroke:none}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .wi-post-try{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:40px;margin:0 0 8px;border:0!important;border-radius:11px!important;background:linear-gradient(135deg,#14b8a6,#2563eb)!important;color:#fff!important;font:inherit;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 3px 10px rgba(37,99,235,.22)!important}
body .wi-post-note{display:block;font-size:11px;color:var(--muted)}
body #composerWhatIfPreview{margin:6px 0}body #composerWhatIfPreview .wi-post{margin-top:0}
/* Notifications: buttons react to a tap, a read item fades its highlight, an opening item flashes. */
body :is(.open-notification,.mark-notification,#inboxReadAll,#readAllNotifications){transition:transform .12s ease,background-color .15s ease,opacity .15s ease;-webkit-tap-highlight-color:transparent}
body :is(.open-notification,.mark-notification,#inboxReadAll,#readAllNotifications):active,body :is(.open-notification,.mark-notification,#inboxReadAll,#readAllNotifications).is-pressed{transform:scale(.94)}
body #page-messages .inbox-text-button:is(.open-notification,.mark-notification,#inboxReadAll){padding:4px 10px!important;margin:0 -10px 0 0;border-radius:999px}
body #page-messages .inbox-text-button:is(.open-notification,.mark-notification,#inboxReadAll):is(:active,.is-pressed){background:color-mix(in srgb,var(--messenger-accent,#6d5dfc) 16%,transparent)}
body #page-messages .inbox-notice-actions{gap:10px}
body :is(.inbox-notice,.notification-item){transition:background-color .35s ease,opacity .35s ease,box-shadow .35s ease}
body :is(.inbox-notice,.notification-item).just-read{background-color:transparent!important}
body :is(.inbox-notice,.notification-item).just-read .inbox-unread-dot{transform:scale(0);opacity:0;transition:transform .3s ease,opacity .3s ease}
body :is(.inbox-notice,.notification-item).is-opening{background:color-mix(in srgb,var(--messenger-accent,#6d5dfc) 12%,transparent)!important;box-shadow:inset 3px 0 0 var(--messenger-accent,#6d5dfc)}
/* Swipe to delete notifications: a red Delete layer behind the row shows as it slides left. */
body :is(#notificationList,#inboxNoticeList){position:relative;overflow-x:hidden}
body :is(#notificationList .notification-item,#inboxNoticeList .inbox-notice){position:relative;z-index:1;touch-action:pan-y}
body .swipe-delete-bg{position:absolute;z-index:0;display:flex;align-items:center;justify-content:flex-end;padding-right:22px;box-sizing:border-box;background:#e5484d;color:#fff;font-weight:800;font-size:15px;pointer-events:none;transition:background .15s ease}
body .swipe-delete-bg.ready{background:#c81e3a}
body :is(.notification-item,.inbox-notice).swipe-removing{opacity:0;transition:transform .22s ease,opacity .22s ease!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body :is(.notification-item,.inbox-notice).is-swiping{background:var(--panel,#fff)!important;box-shadow:4px 0 14px rgba(0,0,0,.12)!important}
body[data-theme=dark] :is(.notification-item,.inbox-notice).is-swiping{background:#121a2c!important}
/* News cards: a clear pressed state on tap, a gentle lift on hover, and a loading state while one of
   Nodora's own articles opens (that navigates to its page, so it can take a moment). */
.news-card.news-open{-webkit-tap-highlight-color:transparent;transition:transform .14s ease,filter .14s ease,box-shadow .14s ease,border-color .14s ease}
.news-card.news-open:active{transform:scale(.975);filter:brightness(.9);box-shadow:inset 0 0 0 2px rgba(124,58,237,.35)!important}
@media(hover:hover){.news-card.news-open:hover{border-color:rgba(124,58,237,.45)!important;box-shadow:0 6px 18px rgba(15,23,42,.12)!important}}
.news-card.news-open.is-opening{position:relative;transform:scale(.985);filter:brightness(.92);pointer-events:none}
.news-card.news-open.is-opening::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,transparent,#7c3aed,#38bdf8,transparent);background-size:200% 100%;animation:news-opening 1s linear infinite}
@keyframes news-opening{from{background-position:200% 0}to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.news-card.news-open,.news-card.news-open:active{transition:none;transform:none}.news-card.news-open.is-opening::after{animation:none;background:#7c3aed}}
/* Profile action buttons: View Achievements and View Gifts match in size and weight, with even gaps. */
.vote-stats{margin-bottom:0!important}
.profile-achievements-link,.profile-gifts>summary,.profile-view-link{font-size:14px!important;font-weight:600!important;height:40px!important;min-height:40px!important;margin:0!important;border-radius:12px!important}
.vote-stats+.profile-achievements-link,.vote-stats+.profile-view-link{margin-top:10px!important}
.profile-achievements-link+.profile-gifts{margin-top:10px!important}
.profile-gifts>summary{margin:0!important}
/* Followers / Following on someone else's profile open their lists. */
.profile-public-connections button{display:inline-flex;align-items:baseline;gap:0;margin:0;padding:6px 2px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;transition:opacity .12s}
.profile-public-connections button:active{opacity:.55}
@media(hover:hover){.profile-public-connections button:hover{text-decoration:underline;text-underline-offset:3px}}
.profile-public-connections button:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
.profile-view-link+.profile-achievements-link{margin-top:10px!important}
.profile-view-link{box-shadow:none!important;color:inherit!important}
/* Profile pop-up: the close button sits inside the profile card's top-right corner (the card is inset 17px). */
body #socialDialog.bounded-dialog.profile-preview-dialog #closeSocialDialog,body #socialDialog.profile-preview-dialog #closeSocialDialog{top:29px!important;right:29px!important;width:34px!important;height:34px!important}
