
.trust-doc{max-width:760px;margin:0 auto;padding:8px 20px 0;font-size:1.06rem;line-height:1.75}
.trust-doc h2{font-family:var(--serif);font-size:1.5rem;margin:32px 0 12px;letter-spacing:-.01em}
.trust-doc p{margin:0 0 16px;color:var(--fg)}
.trust-doc a{color:var(--emerald-ink);text-decoration:underline;text-underline-offset:2px}
.trust-edit{max-width:760px;margin:20px auto 0;padding:0 20px}
.trust-nav{max-width:760px;margin:30px auto 0;padding:18px 20px 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px}
.trust-nav a{color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:600}
.trust-nav a:hover{color:var(--emerald-ink)}
.corr-list{max-width:760px;margin:0 auto;padding:0 20px}
.corr-item{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--line)}
.corr-item:first-child{border-top:0}
.corr-date{font-family:var(--mono);font-size:.8rem;color:var(--muted);white-space:nowrap;min-width:92px;padding-top:2px}
.corr-body{flex:1;min-width:0}.corr-body b{font-size:1.05rem}.corr-body p{margin:6px 0 0;color:var(--muted);line-height:1.6}
.corr-link{display:inline-block;margin-top:8px;font-size:.85rem;color:var(--emerald-ink);font-weight:600}

.bp-ban{position:relative;width:100%;height:clamp(180px,30vw,340px);overflow:hidden}
.bp-ban img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bp-ban-fallback{position:absolute;inset:0;background:linear-gradient(128deg,#3A1220 0%,#12233F 38%,#0B1B36 62%,#123353 86%,#0E2E52 100%)}
.bp-ban-ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,32,.10),rgba(8,18,32,.55))}
.bp-head{display:flex;align-items:flex-start;gap:20px;margin-top:-56px;position:relative;z-index:2;flex-wrap:wrap}
.bp-avwrap{flex:none}
.bp-av{display:grid;place-items:center;width:124px;height:124px;border-radius:50%;background:#fff;border:5px solid var(--bg);box-shadow:0 12px 34px rgba(8,18,32,.24);overflow:hidden}
.bp-av img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;border-radius:50%}
.bp-av.icon img{width:60%;height:60%;object-fit:contain;border-radius:0}
.bp-meta{flex:1;min-width:230px;padding-top:64px}
.bp-name{font-family:var(--serif);font-size:clamp(1.6rem,4.4vw,2.35rem);margin:0;letter-spacing:-.02em;line-height:1.15;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bp-vtick{display:inline-flex;color:#1D9BF0}
.bp-vtick svg{width:26px;height:26px;display:block}
.bp-sub{margin:6px 0 0;color:var(--muted);font-size:.94rem}
.bp-sub a{color:var(--emerald-ink);font-weight:600;text-decoration:none}
.bp-about{margin:10px 0 0;font-size:.95rem;line-height:1.65;max-width:620px}
.bp-cta{flex:none;align-self:center;margin-top:64px}
.bp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:22px 0 24px}
.bp-kpi{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:var(--card);box-shadow:var(--raise)}
.bp-kpi b{display:block;font-family:var(--mono);font-size:1.5rem;line-height:1.1;letter-spacing:-.02em}
.bp-kpi span{display:block;margin-top:3px;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
@media(max-width:640px){
  .bp-head{margin-top:-44px;gap:14px}
  .bp-av{width:96px;height:96px;border-width:4px}.bp-av.icon img{width:56%;height:56%}
  .bp-meta{padding-top:0;min-width:100%;margin-top:6px}
  .bp-cta{margin-top:4px;width:100%;justify-content:center}
  .bp-name{font-size:1.55rem}.bp-vtick svg{width:21px;height:21px}
  .bp-kpis{grid-template-columns:repeat(2,1fr);gap:10px}
  .bp-kpi{padding:12px 14px}.bp-kpi b{font-size:1.25rem}
}
.bp-sum{margin-bottom:22px}
.bp-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.bp-chip{font-size:.8rem;font-weight:700;padding:5px 12px;border-radius:999px}
.bp-chip.pos{background:color-mix(in srgb,#0E9F6E 13%,transparent);color:#0B7A55}
.bp-chip.neg{background:color-mix(in srgb,#E8730B 15%,transparent);color:#A85408}
.bp-table-wrap{margin-bottom:8px}
.bp-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);background:var(--card);box-shadow:var(--raise)}
.bp-table th,.bp-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.bp-table th:last-child,.bp-table td:last-child{border-right:0}
.bp-table tbody tr:last-child td{border-bottom:0}
.bp-table th{background:var(--navy,#0B2545);color:#fff;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:0;border-right-color:rgba(255,255,255,.16)}
.bp-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--fg) 3%,transparent)}
@media(max-width:760px){
  .bp-table,.bp-table tbody,.bp-table tr,.bp-table td{display:block;width:100%}
  .bp-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .bp-table{border:0;background:0;box-shadow:none}
  .bp-table tr{border:1px solid var(--line);background:var(--card);box-shadow:var(--raise);margin-bottom:10px;padding:12px 14px}
  .bp-table tbody tr:nth-child(even) td{background:transparent}
  .bp-table td{border:0;padding:5px 0;display:flex;align-items:center;justify-content:space-between;gap:14px}
  .bp-table td.bp-param{font-family:var(--serif);font-size:1.06rem;font-weight:700;padding:0 0 8px;margin-bottom:6px;border-bottom:1px solid var(--line);display:block}
  .bp-table td[data-label]::before{content:attr(data-label);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;flex:none}
  .bp-table td.bp-score{font-size:1.2rem}
  .bp-star{font-size:1.05rem}
}
.bp-score{font-family:var(--mono);font-weight:700;font-size:1.1rem;white-space:nowrap}
.bp-score small{color:var(--muted);font-weight:400;font-size:.75rem}
.bp-n{font-family:var(--mono);color:var(--muted);font-size:.88rem}
.bp-star{color:var(--line);font-size:1rem;letter-spacing:1px}
.bp-star.on{color:#F5A623}.bp-star.half{color:#F5A623;opacity:.55}
.bp-nostar{color:var(--muted);font-size:.82rem}
.bp-note{font-size:.8rem;color:var(--muted);margin:10px 0 0;line-height:1.6}
.bp-reviews{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:700px){.bp-reviews{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.bp-reviews{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bp-rcard{position:relative;overflow:hidden;background:linear-gradient(150deg,color-mix(in srgb,var(--tone) 9%,var(--card)),var(--card) 62%);border:1px solid color-mix(in srgb,var(--tone) 26%,var(--line));border-radius:18px;padding:18px;--tone:#3B6FD9}
.bp-rcard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--tone),transparent 78%)}
.bp-rcard:nth-child(6n+1){--tone:#3B6FD9}.bp-rcard:nth-child(6n+2){--tone:#E11D74}.bp-rcard:nth-child(6n+3){--tone:#0E9F6E}
.bp-rcard:nth-child(6n+4){--tone:#7C5CFC}.bp-rcard:nth-child(6n+5){--tone:#E8730B}.bp-rcard:nth-child(6n+6){--tone:#0891B2}
.bp-rtop{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:9px}
.bp-tag{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono);color:var(--tone);border:1px solid color-mix(in srgb,var(--tone) 34%,var(--line));border-radius:999px;padding:2px 8px}
.bp-rago{margin-left:auto;font-size:.76rem;color:var(--muted)}
.bp-rchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.bp-rchip{font-family:var(--mono);font-size:.7rem;color:var(--muted);background:color-mix(in srgb,var(--fg) 5%,transparent);border-radius:5px;padding:3px 8px}
.bp-rtext{margin:0;font-size:.95rem;line-height:1.6}
.bp-block{margin:0 auto 44px}
.bp-shead{margin-bottom:20px}
.bp-shead .sec-h{margin:0}
.bp-sdesc{margin:6px 0 0;color:var(--muted);font-size:.9rem;line-height:1.55}
.bp-sum{margin-bottom:40px!important}
.bp-table-wrap{margin-top:2px}
.bp-note{margin-top:16px!important;padding-top:14px;border-top:1px solid var(--line)}
.bp-reviews{margin-top:2px}
.bp-rcard{transition:transform .18s var(--ease),box-shadow .22s var(--ease)}
.bp-rcard:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(11,37,69,.13)}
.bp-kpi{transition:transform .18s var(--ease),box-shadow .22s var(--ease)}
.bp-kpi:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(11,37,69,.12)}
.bp-table tbody tr{transition:background .15s}
.bp-table tbody tr:hover td{background:color-mix(in srgb,var(--emerald) 5%,transparent)}
.bp-av{transition:transform .3s var(--ease)}
.bp-av:hover{transform:scale(1.04)}
.bp-back a{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border:1px solid var(--line);border-radius:999px;background:var(--card);transition:border-color .18s,transform .18s var(--ease)}
.bp-back a:hover{border-color:color-mix(in srgb,var(--emerald) 45%,var(--line));transform:translateY(-2px)}
.bp-back a .ic{transform:rotate(180deg)}
@media(max-width:760px){.bp-block{margin-bottom:34px}.bp-sum{margin-bottom:30px!important}.bp-shead{margin-bottom:16px}}
.bp-more{display:flex;align-items:center;justify-content:center;gap:10px;padding:22px 0;color:var(--muted);font-size:.88rem}
.bp-more.done{display:none}
.bp-spin{width:15px;height:15px;border:2px solid var(--line);border-top-color:var(--emerald);border-radius:50%;animation:bpspin .7s linear infinite}
@keyframes bpspin{to{transform:rotate(360deg)}}
.bp-back{margin:26px auto 40px;text-align:center}
.bp-back a{color:var(--emerald-ink);font-weight:700;text-decoration:none}
@media(max-width:620px){.bp-headwrap{margin-top:-40px}.bp-dp{width:82px;height:82px}.bp-dp img{width:60px;height:60px}.bp-cta{width:100%;justify-content:center}}

.bp-story{margin:0 0 6px}
.bp-story::after{content:"";display:block;clear:both}
.bp-story p{margin:0 0 16px;font-size:1.02rem;line-height:1.75;max-width:70ch}
.bpx{float:right;clear:right;width:min(340px,42%);margin:.2em 0 1.4em 2em;font-size:.9rem}
.bpx-top{float:none;width:auto;margin:0 0 20px}
.ibx{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);table-layout:fixed;box-shadow:var(--raise)}
.ibx-cap{caption-side:top;padding:13px 14px 11px;background:color-mix(in srgb,var(--navy,#0B2545) 7%,var(--card));border-bottom:1px solid var(--line);text-align:center}
.ibx-cap b{display:block;font-family:var(--serif);font-size:1.05rem;line-height:1.3;font-weight:600;overflow-wrap:anywhere}
.ibx-cap span{display:block;margin-top:3px;font-size:.76rem;color:var(--muted);line-height:1.4}
.ibx th,.ibx td{padding:8px 12px;text-align:left;vertical-align:top;border-top:1px solid var(--line);overflow-wrap:anywhere}
.ibx tbody tr:first-child th,.ibx tbody tr:first-child td{border-top:0}
.ibx th[scope="row"]{width:40%;font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);line-height:1.5}
.ibx td{line-height:1.55}
.ibx td a{color:var(--emerald-ink);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--emerald) 38%,transparent)}
.ibx td a:hover{border-bottom-color:var(--emerald)}
.ibx .ibx-ext::after{content:"↗";font-size:.76em;margin-left:.2em;opacity:.7;border:0}
.ibx-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ibx-list li{margin:0}
.ibx tr.is-head th{width:auto;background:color-mix(in srgb,var(--navy,#0B2545) 7%,var(--card));text-align:center;font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--brass-ink,#A01018);padding:7px 12px}
.ibx tr.is-wide td{text-align:center}
.ibx-media td{padding:14px 14px 10px;text-align:center}
.ibx-media figure{margin:0;display:grid;justify-items:center;gap:7px}
.ibx-media img{max-width:min(100%,210px);height:auto;display:block;border-radius:8px;box-shadow:0 8px 22px rgba(11,37,69,.16)}
.ibx-media figcaption{font-size:.73rem;color:var(--muted);line-height:1.45;max-width:32ch}
.ibx-rate td{padding:10px 12px 12px;text-align:center}
.ibx-rate-in{display:flex;align-items:baseline;justify-content:center;gap:.4em;flex-wrap:wrap;line-height:1}
.ibx-stars{font-size:1.1rem;letter-spacing:.04em;color:var(--line)}
.ibx-star.on{color:#F5A623}.ibx-star.half{color:#F5A623;opacity:.55}
.ibx-rate-in b{font-family:var(--mono);font-weight:700;font-size:1.1rem}
.ibx-rate-in i{font-style:normal;font-size:.75rem;color:var(--muted)}
.ibx-rate-k{display:block;margin-top:5px;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ibx-verdict td{padding:10px 14px 12px;text-align:center}
.ibx-verdict q{font-family:var(--serif);font-style:italic;font-size:.95rem;line-height:1.45}
.ibx-blank{color:var(--muted);font-size:.85em}
@media(max-width:760px){
  .bpx{float:none;width:auto;margin:0 0 20px;font-size:.95rem}
  .ibx th[scope="row"]{width:42%;font-size:.65rem}
  .ibx th,.ibx td{padding:8px 10px}
}

:root{
  --ink:#0A0E2A; --surface:#FFFFFF; --emerald:#0B2545; --brass:#D6101E;
  --mist:#DDE3F5; --alert:#D6101E;
  --bg:var(--surface); --fg:var(--ink); --card:#FFFFFF; --line:var(--mist);
  --muted:#57617A; --raise:0 1px 2px rgba(10,14,42,.05),0 8px 24px rgba(10,14,42,.06);--inkb:#0B2545;--inksh:rgba(11,37,69,.92);
  --emerald-ink:#0A1F3D; --brass-ink:#E60017;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Geist","Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --mono:"Geist Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:14px; --r-lg:22px; --header-h:60px; --nav-h:60px; --logo-h:44px; --logo-maxw:260px;
  --maxw:1120px; --content:760px; --ease:cubic-bezier(.22,1,.36,1);
}
html[data-theme="dark"]{
  --bg:#070B1F; --fg:#F1F4FF; --card:#0E1530; --line:#1D2747;
  --muted:#90A0C2; --raise:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.45);--inkb:#0d1526;--inksh:rgba(0,0,0,.75);
  --emerald-ink:#6E93FF; --brass-ink:#FF3B47;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.6;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding-top:var(--header-h);overflow-x:clip;max-width:100%}
@media (max-width:1023px){body{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:560;line-height:1.1;letter-spacing:-.02em;margin:0}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.01em}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.content{max-width:var(--content);margin:0 auto;padding:0 20px}
:focus-visible{outline:2.5px solid var(--emerald);outline-offset:2px;border-radius:6px}

.hdr{position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:60;display:flex;align-items:center;gap:10px;padding:0 14px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line);transform:translateZ(0);-webkit-transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform}
.hdr .left,.hdr .right{display:flex;align-items:center;gap:8px}
.hdr .left{min-width:0;flex:0 1 auto;overflow:hidden}
.hdr .right{margin-left:auto;flex:0 0 auto}
.hdr-nav{display:none}
@media (min-width:1024px){
  .hdr .left{flex:0 0 auto}
  .hdr-nav{display:flex;align-items:center;gap:2px;margin-left:10px;margin-right:12px;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}
  .hdr-nav::-webkit-scrollbar{display:none}
  .hdr-nav a{padding:8px 8px;border-radius:4px;font-size:.86rem;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap;flex:0 0 auto;transition:color .15s var(--ease),background .15s}
  @media (min-width:1024px) and (max-width:1359px){.hdr-nav a{padding:7px 5px;font-size:.77rem;letter-spacing:-.012em}.hdr-nav{margin-left:4px;margin-right:8px}.hdr .right{gap:5px}.pub-btn{padding:0 13px;font-size:.88rem}}
  @media (min-width:1360px) and (max-width:1479px){.hdr-nav a{padding:8px 7px;font-size:.83rem}.hdr-nav{margin-left:8px}}
  .hdr-nav a:hover{color:var(--fg);background:color-mix(in srgb,var(--fg) 6%,transparent)}
  .hdr-nav a.on{color:var(--brass-ink);background:transparent;font-weight:700}
}
.iconbtn{display:grid;place-items:center;width:42px;height:42px;border-radius:4px;background:transparent;border:1px solid transparent;color:var(--fg);cursor:pointer;transition:background .18s var(--ease),transform .12s var(--ease)}
.iconbtn:hover{background:color-mix(in srgb,var(--fg) 6%,transparent)}
.iconbtn:active{transform:scale(.94)}
.ic{width:21px;height:21px;display:block}
.brand{display:flex;align-items:center;gap:9px;padding:4px 6px;border-radius:4px;min-width:0}
.brand-logo{display:inline-flex;align-items:center;min-width:0;
  height:min(var(--logo-h),calc(var(--header-h) - 10px));max-width:min(var(--logo-maxw),100%)}
.brand-logo img{height:100%;width:auto;max-width:100%;display:block;object-fit:contain;object-position:left center}
.brand-logo .bl-dark{display:none}
html[data-theme="dark"] .brand-logo .bl-light{display:none}
html[data-theme="dark"] .brand-logo .bl-dark{display:block}
/* The drawer is dark in both themes, so it always wants the lockup drawn for
   a dark ground. In light mode it used to show the dark-ink lockup and the
   logo simply disappeared into the panel. */
html[data-theme]:root aside.drawer .brand-logo .bl-light{display:none}
html[data-theme]:root aside.drawer .brand-logo .bl-dark{display:block}
.pub-btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 16px;border-radius:4px;background:linear-gradient(135deg,#0B2545,#12305E,rgb(var(--rb-red-solid)),#0B2545);background-size:300% 300%;animation:fabShift 6s ease-in-out infinite;color:#fff;font-weight:600;font-size:.95rem;border:0;cursor:pointer;box-shadow:0 4px 14px rgba(11,37,69,.28);transition:transform .12s var(--ease),box-shadow .18s var(--ease),filter .18s}
@media (prefers-reduced-motion:reduce){.pub-btn{animation:none;background:var(--emerald)}}
.pub-btn:hover{filter:brightness(1.05);box-shadow:0 6px 20px rgba(11,37,69,.36)}
.pub-btn:active{transform:translateY(1px) scale(.99)}
.pub-btn .ic{width:18px;height:18px}
@media (max-width:560px){.pub-btn .txt{display:none}.pub-btn{padding:0 12px}}
@media (max-width:480px){.hdr{padding:0 8px}.hdr .left,.hdr .right{gap:2px}.iconbtn{width:38px;height:38px;border-radius:4px}.pub-btn{padding:0;width:38px;justify-content:center}}
@media (max-width:1023px){.pub-btn{display:none}}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:1rem;color:#fff;background:linear-gradient(135deg,var(--emerald),#0a4d39);border:2px solid color-mix(in srgb,var(--brass) 60%,transparent);overflow:hidden;flex:0 0 auto;text-decoration:none}
.avatar-guest{background:color-mix(in srgb,var(--fg) 8%,transparent);border-color:var(--line);color:var(--muted)}
.avatar-guest .ic{width:20px;height:20px}
.avatar img{width:100%;height:100%;object-fit:cover}

.lang-wrap{position:relative}
.bell-desktop{display:none}
@media (min-width:1024px){.bell-desktop{display:grid}}
.lang-menu{position:absolute;right:0;top:48px;min-width:180px;max-height:340px;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:0;box-shadow:var(--raise);padding:6px;display:none;z-index:70}
.lang-menu.open{display:block;animation:pop .16s var(--ease)}
.lang-menu button{display:flex;width:100%;align-items:center;gap:8px;padding:9px 11px;border:0;border-radius:4px;background:transparent;color:var(--fg);font:inherit;font-size:.92rem;cursor:pointer;text-align:left}
.lang-menu button:hover{background:color-mix(in srgb,var(--fg) 6%,transparent)}
.lang-menu button.active{color:var(--emerald-ink);font-weight:700}
.lang-menu button.active .ic{color:var(--emerald-ink)}
@keyframes pop{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}

.scrim{position:fixed;inset:0;background:rgba(8,12,20,.46);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .24s var(--ease),visibility .24s;z-index:90}
.scrim.open{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;bottom:0;left:0;width:min(86vw,330px);z-index:100;background:var(--bg);border-right:1px solid var(--line);transform:translateX(-102%);transition:transform .3s var(--ease);display:flex;flex-direction:column;padding:16px 14px;overflow:auto}
.drawer.open{transform:none}
.drawer .d-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.drawer nav{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.drawer nav a{display:flex;align-items:center;gap:12px;padding:12px 12px;border-radius:4px;font-size:1rem;font-weight:500;color:var(--fg);transition:background .15s var(--ease)}
.drawer nav a .ic{width:19px;height:19px;flex:0 0 auto;color:var(--muted)}
.drawer nav a[aria-current="page"] .ic{color:var(--emerald-ink)}
.drawer nav a:hover{background:color-mix(in srgb,var(--fg) 6%,transparent)}
.drawer nav a[aria-current="page"]{background:color-mix(in srgb,var(--emerald) 12%,transparent);color:var(--emerald-ink);font-weight:600}
.drawer .d-acc{border-top:1px solid var(--line);margin-top:10px;padding-top:6px}
.d-acc summary{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:4px;cursor:pointer;font-weight:600;color:var(--fg);list-style:none}
.d-acc summary::-webkit-details-marker{display:none}
.d-acc summary .ic{width:19px;height:19px;color:var(--muted)}
.d-acc-arr{margin-left:auto}
.d-acc-arr .ic{transition:transform .2s var(--ease)}
.d-acc[open] .d-acc-arr .ic{transform:rotate(90deg)}
.d-acc-links{display:flex;flex-direction:column;padding:2px 6px 6px}
.d-acc-links a{padding:10px 14px 10px 40px;border-radius:4px;color:var(--muted);text-decoration:none;font-size:.94rem}
.d-acc-links a:hover{background:color-mix(in srgb,var(--fg) 5%,transparent);color:var(--fg)}
.d-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.drawer .who{display:flex;align-items:center;gap:10px;padding:8px 4px 12px}
.drawer .who .nm{font-weight:600;font-size:.95rem}
.drawer .who .hd{font-family:var(--mono);font-size:.78rem;color:var(--emerald-ink)}
.drawer .socials{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.drawer .socials a{font-size:.85rem;color:var(--muted);padding:6px 10px;border:1px solid var(--line);border-radius:999px}
.drawer .handle{font-family:var(--mono);font-size:.82rem;color:var(--emerald-ink)}

.bnav{position:fixed;left:0;right:0;bottom:0;z-index:60;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:none;grid-template-columns:repeat(5,1fr);align-items:center;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-top:1px solid var(--line);transform:translateZ(0);-webkit-transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform}
@media (max-width:1023px){.bnav{display:grid}}
.bnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:100%;color:var(--muted);font-size:.66rem;font-weight:600}
.bnav a .ic{width:22px;height:22px}
.bnav a[aria-current="page"]{color:var(--emerald-ink)}
.bnav .fabwrap{position:relative;height:100%;align-self:stretch}
.bnav .fab{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%!important;display:grid;place-items:center;color:#fff;box-shadow:0 8px 22px rgba(11,37,69,.4);border:4px solid var(--bg);transition:transform .14s var(--ease);background:linear-gradient(135deg,#0B2545,#12305E,rgb(var(--rb-red-solid)),#0B2545);background-size:300% 300%;animation:fabShift 6s ease-in-out infinite}
@keyframes fabShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@media (prefers-reduced-motion:reduce){.bnav .fab{animation:none;background:var(--emerald)}}
.bnav .fab .ic{width:26px;height:26px}
.bnav .fab:hover{filter:brightness(1.06)}
.bnav .fab:active{transform:translate(-50%,-50%) scale(.94)}

.hero-full{position:relative;width:100vw;max-width:100%;margin-left:calc(50% - 50vw);min-height:calc(100dvh - var(--header-h));display:flex;align-items:center;overflow:hidden;color:#fff;background:var(--ink)}
.hero-full .hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-full .hero-bg img{width:100%;height:100%;object-fit:cover;animation:heroKen 24s ease-in-out infinite alternate;transform-origin:center}
@keyframes heroKen{from{transform:scale(1)}to{transform:scale(1.1)}}
.hero-full .hero-blob{position:absolute;border-radius:50%;filter:blur(80px);z-index:1;animation:blobMove 18s ease-in-out infinite alternate;pointer-events:none}
.hero-full .hb1{width:420px;height:420px;background:var(--brass);opacity:.3;top:-100px;right:-80px}
.hero-full .hb2{width:340px;height:340px;background:#3B6FD9;opacity:.28;bottom:-80px;left:-60px;animation-delay:-9s}
@keyframes blobMove{from{transform:translate(0,0) scale(1)}to{transform:translate(40px,-30px) scale(1.18)}}
.hero-full .hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,18,32,.35) 0%,rgba(8,18,32,.45) 45%,rgba(8,18,32,.82) 100%)}
.hero-full .hero-content{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:40px 20px;width:100%;isolation:isolate}
/* The headline sits on whatever photograph the owner uploads that week, so
   it cannot rely on the picture being dark. This is a soft wash under the
   words only, on the content rather than on the scrim, because the aurora
   layer restyles the scrim at a specificity a plain rule cannot reach. */
.hero-full .hero-content::before{content:"";position:absolute;z-index:-1;
  left:-6vw;right:-6vw;top:-4%;bottom:-8%;pointer-events:none;
  background:radial-gradient(70% 62% at 26% 52%, rgba(5,10,22,.68) 0%, rgba(5,10,22,.34) 52%, rgba(5,10,22,0) 78%)}
@media(max-width:760px){
  .hero-full .hero-content::before{left:-12vw;right:-12vw;
    background:radial-gradient(86% 66% at 46% 50%, rgba(5,10,22,.76) 0%, rgba(5,10,22,.44) 56%, rgba(5,10,22,0) 82%)}
}
.hero-full .eyebrow{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.32);color:#fff;backdrop-filter:blur(6px);opacity:0;animation:heroUp .7s var(--ease) .05s forwards}
.hero-full .eyebrow .ic{color:var(--brass)}
.hero-full h1{color:#fff;font-size:clamp(2.4rem,7vw,4.4rem);margin:20px 0 0;max-width:16ch;text-shadow:0 2px 24px rgba(0,0,0,.3)}
.hero-full h1 .hl{display:inline-block;opacity:0;transform:translateY(22px);animation:heroUp .8s var(--ease) forwards}
.hero-full h1 .hl2{animation-delay:.16s}
.hero-full h1 em{font-style:italic;color:#FF6B73}
.type-swap{font-style:italic;color:#FF6B73}
.type-caret{display:inline-block;width:3px;height:.9em;margin-left:2px;background:#FF6B73;vertical-align:-2px;animation:caretBlink .9s step-end infinite;border-radius:2px}
@keyframes caretBlink{0%,100%{opacity:1}50%{opacity:0}}
.hero-full p.lede{color:rgba(255,255,255,.92);font-size:clamp(1.05rem,2.4vw,1.3rem);max-width:54ch;margin:18px 0 0;line-height:1.55;opacity:0;animation:heroUp .8s var(--ease) .34s forwards}
.hero-full .hero-cta{margin-top:30px;opacity:0;animation:heroUp .8s var(--ease) .48s forwards}
@keyframes heroUp{to{opacity:1;transform:none}}
.hero-full .btn-ghost{background:var(--brass);color:#fff;border-color:var(--brass)}
.hero-full .btn-ghost:hover{filter:brightness(1.1)}
.hero-full .btn-primary,.cta-band .btn-primary,.search-hero .btn-primary{border-color:rgba(255,255,255,.34);box-shadow:0 10px 26px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.08)}
.hero-full .btn-primary:hover,.cta-band .btn-primary:hover{border-color:rgba(255,255,255,.55)}
.hero-scroll-cue{position:absolute;left:50%;transform:translateX(-50%);bottom:22px;z-index:3;color:rgba(255,255,255,.75);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-family:var(--mono);animation:cueBob 1.8s ease-in-out infinite}
.hero-scroll-cue .ic{width:20px;height:20px;transform:rotate(180deg)}
@keyframes cueBob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,7px)}}
@media(max-width:760px){.hero-full{min-height:calc(100dvh - var(--header-h))}.hero-full .hero-content{padding:24px 18px}}
@media (prefers-reduced-motion:reduce){.hero-full .hero-bg img,.hero-full .hero-blob{animation:none}.hero-full .eyebrow,.hero-full h1 .hl,.hero-full p.lede,.hero-full .hero-cta{animation:none;opacity:1;transform:none}}
.eyebrow{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:var(--emerald-ink);padding:6px 12px;border:1px solid color-mix(in srgb,var(--emerald) 30%,var(--line));border-radius:999px}
.eyebrow .ic{width:14px;height:14px;color:var(--brass-ink)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-cta .btn{flex:1 1 auto;min-width:200px;justify-content:center;height:52px;border-radius:0}
@media(max-width:560px){.hero-cta{flex-direction:column}.hero-cta .btn{width:100%;min-width:0}}
.btn{display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 22px;border-radius:4px;font-weight:600;font-size:1rem;cursor:pointer;border:1px solid transparent;transition:transform .12s var(--ease),filter .18s,background .18s}
.btn-primary{background:var(--emerald);color:#fff;border:1px solid color-mix(in srgb,#6E93FF 45%,var(--emerald));box-shadow:0 6px 18px rgba(11,37,69,.28)}
.btn-primary:hover{filter:brightness(1.15);border-color:color-mix(in srgb,#6E93FF 70%,var(--emerald))}
.btn-primary[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}
.btn-ghost{background:var(--brass);color:#fff;border-color:var(--brass);box-shadow:0 6px 18px rgb(var(--rb-red-solid) / .28)}
.btn-ghost:hover{filter:brightness(1.08)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn.full{width:100%;justify-content:center}

.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:36px 0 6px}
.stats .stat{min-width:0}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 18px;box-shadow:var(--raise)}
.stat .v{font-size:clamp(1.9rem,4.4vw,2.6rem);font-weight:600;line-height:1;color:var(--fg)}
.stat .v small{font-size:.5em;color:var(--brass-ink);margin-left:2px;vertical-align:.3em}
.stat .k{margin-top:8px;font-size:.82rem;color:var(--muted);font-weight:500}

section.block{padding:30px 0}
.s-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.s-head h2{font-size:clamp(1.4rem,3.4vw,2rem)}
.s-head a.more{font-size:.9rem;color:var(--emerald-ink);font-weight:600;white-space:nowrap}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:3/4;box-shadow:var(--raise);display:flex;align-items:flex-end;color:#fff;background:var(--mist);transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,37,69,.22)}
.card .card-img{position:absolute;inset:0;z-index:0;margin:0;width:100%;aspect-ratio:auto;background:#0B2545}
.card .card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.card:hover .card-img img{transform:scale(1.07)}
.card .card-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,18,32,0) 32%,rgba(8,18,32,.6) 72%,rgba(8,18,32,.93) 100%)}
.card .card-body{position:relative;z-index:2;padding:20px;width:100%}
.card h3{font-size:1.18rem;margin-bottom:6px;color:#fff}
.card p{color:rgba(255,255,255,.86);font-size:.92rem;margin:0}
.card .tag{display:inline-block;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:3px 10px;margin-bottom:10px;backdrop-filter:blur(4px)}
.card.alert .tag{background:color-mix(in srgb,var(--alert) 55%,transparent);border-color:var(--alert)}
.about-banner{width:100%;border-radius:var(--r-lg);overflow:hidden;margin-bottom:24px;aspect-ratio:16/6;box-shadow:var(--raise)}
.about-banner img{width:100%;height:100%;object-fit:cover;display:block}
.about-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);min-height:64vh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:var(--ink);margin-bottom:26px}
.about-hero .ah-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.about-hero .ah-bg img{width:100%;height:100%;object-fit:cover;animation:heroKen 26s ease-in-out infinite alternate;transform-origin:center}
.about-hero .ah-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,18,32,.28) 0%,rgba(8,18,32,.48) 48%,rgba(8,18,32,.94) 100%)}
.about-hero .ah-inner{position:relative;z-index:2;max-width:var(--content);width:100%;margin:0 auto;padding:120px 20px 54px}
.about-hero .ah-kicker{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:6px 13px;backdrop-filter:blur(6px);opacity:0;animation:ahUp .7s var(--ease) .05s forwards}
.about-hero .ah-kicker .ic{width:14px;height:14px;color:#FF6B73}
.about-hero .ah-title{font-size:clamp(2.3rem,7vw,4.4rem);line-height:1.03;margin:18px 0 0;text-shadow:0 2px 28px rgba(0,0,0,.34)}
.about-hero .ah-title span{display:block;opacity:0;transform:translateY(20px);animation:ahUp .8s var(--ease) forwards}
.about-hero .ah-title .ah-l1{animation-delay:.16s}
.about-hero .ah-title .ah-l2{color:#FF6B73;font-style:italic;animation-delay:.3s}
.about-hero .ah-lede{color:rgba(255,255,255,.92);font-size:clamp(1.02rem,2.3vw,1.24rem);max-width:60ch;margin:18px 0 0;line-height:1.55;opacity:0;animation:ahUp .8s var(--ease) .44s forwards}
@keyframes ahUp{to{opacity:1;transform:none}}
@media(max-width:760px){.about-hero{min-height:56vh}.about-hero .ah-inner{padding:96px 18px 40px}}
@media (prefers-reduced-motion:reduce){.about-hero .ah-bg img{animation:none}.about-hero .ah-kicker,.about-hero .ah-title span,.about-hero .ah-lede{animation:none;opacity:1;transform:none}}
/* ---- MY CONTRIBUTIONS ---- */
.dg-card{position:relative;border-radius:0;padding:22px 24px;margin:0 0 22px;color:var(--fg);
  background:linear-gradient(128deg,color-mix(in srgb,rgb(var(--rb-red-solid)) 9%,var(--card)) 0%,var(--card) 46%,color-mix(in srgb,#1D9BF0 11%,var(--card)) 100%);
  border:1px solid color-mix(in srgb,#1D9BF0 22%,var(--line));box-shadow:var(--raise)}
.dg-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,rgb(var(--rb-red-solid)),#7C5CFC 52%,#1D9BF0)}
.dg-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.dg-badge{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:rgb(var(--rb-blue-ink));background:color-mix(in srgb,rgb(var(--rb-blue-ink)) 14%,rgb(var(--rb-bg)));padding:4px 11px;border-radius:999px}
.dg-badge .ic{width:13px;height:13px}
.dg-sub{font-size:.85rem;color:var(--muted);font-style:italic}
.dg-date{margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--muted);white-space:nowrap}
.dg-lede{margin:0 0 14px;font-size:1.06rem;line-height:1.6;font-weight:600}
.dg-points{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.dg-points li{display:flex;gap:10px;align-items:baseline;font-size:.95rem;line-height:1.55}
.dg-points li b{flex:0 0 auto;min-width:104px;font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.dg-points li span{flex:1;min-width:0}
@media(max-width:560px){.dg-points li{flex-direction:column;gap:2px}.dg-points li b{min-width:0}.dg-date{margin-left:0;width:100%}}
.dg-foot{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted);line-height:1.55}
.au-search{position:relative;display:flex;align-items:center;max-width:520px;margin:14px 0 6px}
.au-search input{width:100%;height:50px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:inherit;padding:0 44px 0 46px;font:inherit;font-size:.98rem;transition:border-color .15s,box-shadow .15s}
.au-search input:focus{outline:0;border-color:color-mix(in srgb,var(--emerald) 46%,var(--line));box-shadow:0 0 0 4px color-mix(in srgb,var(--emerald) 12%,transparent)}
.au-search input::-webkit-search-cancel-button{display:none}
.au-si{position:absolute;left:15px;display:grid;place-items:center;color:var(--muted);pointer-events:none}
.au-si .ic{width:18px;height:18px}
.au-clear{position:absolute;right:12px;background:0;border:0;font-size:1.4rem;line-height:1;color:var(--muted);cursor:pointer;padding:4px 6px}
.au-count{font-size:.84rem;color:var(--muted);margin:0 0 4px;min-height:20px}
.au-empty{text-align:center;padding:32px 20px;color:var(--muted)}
.au-empty h3{margin:10px 0 6px;color:var(--fg)}
.author-tile.au-hidden{display:none}
.about-intro{max-width:760px}
.about-intro p{margin:14px 0;line-height:1.78;font-size:1.03rem}
.about-intro .sec-h{margin-bottom:6px}
.sec-h .ic{flex:none;width:19px;height:19px;color:var(--muted);position:relative;top:1px}
.about-faq .sec-h{margin-bottom:4px}
.about-faq{margin-top:34px;max-width:760px}
.faq-list{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.faq-item{border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden;box-shadow:0 1px 2px rgba(11,37,69,.04)}
.faq-item[open]{border-color:color-mix(in srgb,var(--emerald) 34%,var(--line))}
.faq-item summary{cursor:pointer;padding:15px 18px;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:1.3rem;color:var(--muted);transition:transform .2s}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-a{padding:0 18px 16px;color:var(--muted);line-height:1.65}
.art-index-hero{min-height:40vh!important}
.art-index-hero .ah-inner{padding:96px 20px 34px}
.inf-sentinel{display:flex;justify-content:center;padding:26px 0 8px;min-height:44px}
.inf-spin{width:26px;height:26px;border-radius:50%;border:3px solid color-mix(in srgb,var(--fg) 18%,transparent);border-top-color:var(--emerald);animation:spin 1s linear infinite;opacity:0;transition:opacity .2s}
.inf-sentinel.on .inf-spin{opacity:1}
.inf-new{opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.inf-new.inf-in{opacity:1;transform:none}
.mp-hero{min-height:40vh!important}
.mp-hero .ah-inner{padding:96px 20px 34px}
.mp-toolbar{display:flex;justify-content:flex-end;margin:18px 0 6px}
.mp-sec{margin-top:28px}
.mp-sec .sec-h{display:flex;align-items:center;gap:8px}
.mp-count{font-size:.8rem;background:color-mix(in srgb,var(--emerald) 12%,transparent);color:var(--emerald-ink);border-radius:999px;padding:2px 9px;font-weight:700}
.mp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px}
@media(max-width:560px){.mp-grid{grid-template-columns:1fr}}
.mp-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:0;overflow:hidden;box-shadow:var(--raise)}
.mp-card.mp-simple{padding:0}
.mp-thumb{aspect-ratio:16/9;background:color-mix(in srgb,var(--fg) 6%,transparent);position:relative;overflow:hidden;display:grid;place-items:center}
.mp-thumb img{width:100%;height:100%;object-fit:cover}
.mp-noimg .ic{width:30px;height:30px;color:var(--muted)}
.mp-body{padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.mp-top{display:flex;align-items:center;justify-content:space-between}
.mp-date{font-size:.74rem;color:var(--muted);font-family:var(--mono)}
.mp-title{font-size:1.02rem;margin:0;line-height:1.3}
.mp-dek{font-size:.86rem;color:var(--muted);margin:0;line-height:1.45}
.mp-meta{font-size:.76rem;color:var(--muted);display:flex;align-items:center;gap:4px}
.mp-meta .ic{width:13px;height:13px;vertical-align:-2px}
.mp-actions{display:flex;gap:8px;margin-top:6px}
.btn.sm{height:36px;padding:0 13px;font-size:.85rem;border-radius:4px}
.mp-note{font-size:.76rem;color:var(--muted);margin-top:4px;padding:7px 10px;border-radius:4px;background:color-mix(in srgb,var(--fg) 5%,transparent)}
.mp-note.warn{background:color-mix(in srgb,var(--brass) 12%,transparent);color:var(--brass-ink)}
.mp-empty{margin-top:20px}
.sp{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px}
.sp-live{background:color-mix(in srgb,#12B76A 16%,transparent);color:#0a7a47}
.sp-pending{background:color-mix(in srgb,#3B6FD9 16%,transparent);color:#2b52a8}
.sp-rej{background:color-mix(in srgb,var(--brass) 16%,transparent);color:var(--brass-ink)}
.mp-edit-modal{position:fixed;inset:0;z-index:420;background:rgba(6,10,20,.72);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:18px}
.mp-edit-modal.open{display:flex}
.mp-edit-sheet{background:var(--card);border-radius:0;max-width:520px;width:100%;padding:22px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.5);max-height:92vh;overflow:auto}
.mp-edit-sheet h3{margin:0 0 14px}
/* ---- BANKERPEDIA 30 ---- */
.b30-hero{position:relative;width:100vw;max-width:100%;margin-left:calc(50% - 50vw);overflow:hidden;background:#080F1F;color:#fff;text-align:center;min-height:calc(100dvh - var(--header-h));display:flex;align-items:center;justify-content:center}
.b30-hero-ol{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% -10%,#12305E 0%,#0B2545 42%,#080F1F 100%)}
.b30-mesh,.b30-rays{z-index:1}
.b30-hero-in{position:relative;z-index:2;text-shadow:0 2px 18px rgba(0,0,0,.45)}
.b30-mesh{position:absolute;inset:0;pointer-events:none}
.b30-mesh .bm{position:absolute;border-radius:50%;filter:blur(95px);opacity:.42;animation:blobMove 16s ease-in-out infinite alternate}
.b30-mesh .bm1{width:520px;height:520px;background:#2E5EFF;top:-160px;left:-120px}
.b30-mesh .bm2{width:440px;height:440px;background:rgb(var(--rb-red-solid));opacity:.2;bottom:-180px;right:-100px;animation-delay:-6s}
.b30-mesh .bm3{width:360px;height:360px;background:#5B8DEF;opacity:.18;top:32%;left:62%;animation-delay:-11s}
.b30-rays{position:absolute;inset:-40%;background:conic-gradient(from 180deg at 50% 30%,transparent 0deg,rgba(91,141,239,.08) 18deg,transparent 40deg,transparent 140deg,rgb(var(--rb-red-solid) / .07) 165deg,transparent 190deg,transparent 320deg,rgba(255,255,255,.05) 340deg,transparent 360deg);animation:b30spin 46s linear infinite;pointer-events:none}
@keyframes b30spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.b30-rays,.b30-mesh .bm{animation:none}}
.b30-hero-in{position:relative;z-index:1;max-width:880px;margin:auto;padding:56px 20px 48px;width:100%}
.b30-eyebrow{background:rgb(var(--rb-red-solid) / .12);border-color:rgba(255,107,115,.45);color:#FF8B92;letter-spacing:.14em}
.b30-eyebrow .ic{color:#FF6B73}
.b30-title{display:flex;align-items:center;justify-content:center;gap:clamp(10px,2.5vw,18px);margin:26px 0 0;flex-wrap:nowrap}
.b30-logo{width:clamp(180px,44vw,340px);height:auto;display:block;flex:0 1 auto;min-width:0;filter:drop-shadow(0 6px 24px rgba(0,0,0,.45))}
.b30-30{font-family:var(--serif);font-weight:700;font-size:clamp(1.7rem,5.2vw,3.1rem);line-height:1;color:rgb(var(--rb-red-solid));flex:0 0 auto;text-shadow:0 0 44px rgb(var(--rb-red-solid) / .5),0 4px 14px rgba(0,0,0,.4);opacity:0;transform:translateY(14px) scale(.92);animation:heroUp .7s var(--ease) .15s forwards}
.b30-type-line{min-height:1.6em;margin:16px auto 0;font-weight:700;font-size:clamp(.95rem,2.6vw,1.15rem);color:#FF6B73;opacity:0;animation:heroUp .7s var(--ease) .5s forwards}
.b30-caret{background:#FF6B73;height:1em;vertical-align:-2px}
.b30-sub{font-size:clamp(1.05rem,3vw,1.5rem);font-weight:600;color:rgba(255,255,255,.95);margin:16px 0 0;opacity:0;animation:heroUp .7s var(--ease) .3s forwards}
.b30-trust{color:rgba(255,255,255,.74);max-width:52ch;margin:14px auto 0;line-height:1.6;opacity:0;animation:heroUp .7s var(--ease) .42s forwards}
.b30-counters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:660px;margin:30px auto 0;opacity:0;animation:heroUp .7s var(--ease) .54s forwards}
.b30-counter{position:relative;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);border-radius:0;padding:18px 10px;backdrop-filter:blur(10px);overflow:hidden}
.b30-counter::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,rgb(var(--rb-red-solid)),transparent);opacity:.7}
.bc-num{font-family:var(--mono);font-weight:700;font-size:clamp(1.35rem,4vw,2.1rem);color:#FF6B73}
.bc-lbl{font-size:.72rem;color:rgba(255,255,255,.66);margin-top:5px;letter-spacing:.06em;text-transform:uppercase}
.b30-fine{font-size:.73rem;color:rgba(255,255,255,.5);margin:22px auto 0;max-width:62ch;font-family:var(--mono);opacity:0;animation:heroUp .7s var(--ease) .66s forwards}
.b30-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
@media(max-width:1023px){.b30-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.b30-grid{grid-template-columns:1fr}}
.b30-card{position:relative;overflow:hidden;background:linear-gradient(128deg,color-mix(in srgb,rgb(var(--rb-red-solid)) 9%,var(--card)) 0%,var(--card) 46%,color-mix(in srgb,#1D9BF0 11%,var(--card)) 100%);border:1px solid color-mix(in srgb,#1D9BF0 22%,var(--line));border-radius:0;padding:20px;display:flex;flex-direction:column;gap:14px;color:var(--fg);box-shadow:var(--raise);transition:transform .2s var(--ease),box-shadow .22s,border-color .2s}
.b30-card::after{content:"";position:absolute;top:-70%;left:-30%;width:60%;height:240%;background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.18) 45%,rgba(255,255,255,.42) 50%,rgba(255,255,255,.18) 55%,transparent 100%);transform:rotate(8deg) translateX(-140%);transition:transform .8s var(--ease);pointer-events:none}
.b30-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(11,37,69,.16);border-color:color-mix(in srgb,#1D9BF0 40%,var(--line))}
.b30-card:hover::after{transform:rotate(8deg) translateX(420%)}
.b30-card::before{content:"";position:absolute;top:-90px;right:-90px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(29,155,240,.16) 0%,transparent 68%);pointer-events:none}
.b30-card.b30-gold{border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 46%,var(--line));box-shadow:0 14px 34px rgb(var(--rb-red-solid) / .14)}
.b30-card.b30-gold::before{background:radial-gradient(circle,rgb(var(--rb-red-solid) / .2) 0%,transparent 68%)}
.b30-card.b30-silver{border-color:color-mix(in srgb,#8FA3BF 46%,var(--line))}
.b30-card.b30-bronze{border-color:color-mix(in srgb,#C08A3E 46%,var(--line))}
.b30c-top{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:14px;align-items:center;position:relative;z-index:1}
.b30c-rank{grid-row:1/3;font-family:var(--mono);font-weight:700;font-size:1.3rem;color:rgb(var(--rb-red-solid));display:flex;flex-direction:column;align-items:center;line-height:1.1}
.b30c-crown{font-size:.95rem}
.b30c-logo-wrap{grid-row:1/3;grid-column:3;width:54px;height:54px;border-radius:0;background:#fff;display:grid;place-items:center;box-shadow:0 2px 8px rgba(11,37,69,.14);border:1px solid var(--line);overflow:hidden}
.b30c-logo{width:44px;height:44px;object-fit:contain}
.b30c-name{grid-column:2;font-size:1.05rem;margin:0;line-height:1.25;color:var(--fg);font-weight:700}
.b30c-sector{grid-column:2;font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-family:var(--mono)}
.b30c-votes{display:flex;gap:9px;position:relative;z-index:1}
.b30c-pill{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:4px;padding:9px 10px;font-weight:700;font-family:var(--mono);font-size:.92rem;background:color-mix(in srgb,var(--fg) 5%,transparent);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(4px)}
.b30c-pill.pos{color:#1D5FD9}
.b30c-pill.neg{color:#D1102A}
.b30c-conf-wrap{display:flex;align-items:center;gap:10px;position:relative;z-index:1}
.b30c-conf-lbl{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-family:var(--mono);flex:0 0 auto}
.b30c-conf{flex:1;height:6px;border-radius:6px;background:color-mix(in srgb,var(--fg) 10%,transparent);overflow:hidden}
.b30c-conf i{display:block;height:100%;background:linear-gradient(90deg,#3B6FD9 0%,#7A8CFF 55%,rgb(var(--rb-red-solid)) 100%);border-radius:6px;transition:width .8s var(--ease)}
.b30c-vote{width:100%;justify-content:center;position:relative;z-index:1;background:linear-gradient(135deg,rgb(var(--rb-red-solid)),rgb(var(--rb-red-solid-2)));border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 20px rgb(var(--rb-red-solid) / .3)}
.b30c-vote:hover{filter:brightness(1.08)}
.b30c-report{display:block;text-align:center;font-size:.78rem;font-weight:700;color:var(--muted);text-decoration:none;padding:2px 0 2px;position:relative;z-index:1;transition:color .15s}
.b30c-report:hover{color:#1D9BF0}
.b30-rate{margin-top:16px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:color-mix(in srgb,var(--fg) 3%,transparent)}
.b30-rate-h{font-size:.82rem;font-weight:700;margin-bottom:8px}
.b30-rate-h span{display:block;font-weight:400;font-size:.74rem;color:var(--muted);margin-top:2px}
.b30-rrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;font-size:.88rem}
.b30-stars{display:flex;gap:2px;flex:0 0 auto}
.b30-st{background:0;border:0;cursor:pointer;font-size:1.15rem;line-height:1;color:var(--line);padding:2px;transition:color .12s,transform .12s}
.b30-st:hover{transform:scale(1.14)}
.b30-st.on,.b30-st.hov{color:#F5A623}
.b30c-vote:disabled{opacity:.55;cursor:default;background:color-mix(in srgb,var(--fg) 10%,transparent);color:var(--muted);box-shadow:none}
html[data-theme="light"] .b30-card{background:linear-gradient(128deg,color-mix(in srgb,rgb(var(--rb-red-solid)) 9%,var(--card)) 0%,var(--card) 46%,color-mix(in srgb,#1D9BF0 11%,var(--card)) 100%);border:1px solid color-mix(in srgb,#1D9BF0 22%,var(--line));color:var(--fg);box-shadow:var(--raise)}
html[data-theme="light"] .b30-card:hover{box-shadow:0 22px 46px rgba(11,37,69,.16);border-color:#B9CBEB}
html[data-theme="light"] .b30-card::before{background:radial-gradient(circle,rgba(59,111,217,.16) 0%,transparent 68%)}
html[data-theme="light"] .b30-card::after{background:linear-gradient(105deg,transparent 0%,rgba(11,37,69,.03) 45%,rgba(11,37,69,.07) 50%,rgba(11,37,69,.03) 55%,transparent 100%)}
html[data-theme="light"] .b30-card.b30-gold{border-color:rgb(var(--rb-red-solid) / .45);box-shadow:0 16px 40px rgb(var(--rb-red-solid) / .14)}
html[data-theme="light"] .b30-card.b30-gold::before{background:radial-gradient(circle,rgb(var(--rb-red-solid) / .14) 0%,transparent 68%)}
html[data-theme="light"] .b30-card.b30-silver{border-color:#AEBDD4}
html[data-theme="light"] .b30-card.b30-bronze{border-color:#D9A96B}
html[data-theme="light"] .b30c-rank{color:#E60017}
html[data-theme="light"] .b30c-name{color:#0B2545}
html[data-theme="light"] .b30c-sector{color:#5D6E8C}
html[data-theme="light"] .b30c-logo-wrap{border:1px solid #E3EAF6;box-shadow:0 4px 12px rgba(11,37,69,.10)}
html[data-theme="light"] .b30c-pill{background:color-mix(in srgb,var(--fg) 4%,#fff);border:1px solid var(--line)}
html[data-theme="light"] .b30c-pill.pos{color:#2B5FD9}
html[data-theme="light"] .b30c-pill.neg{color:#E60017}
html[data-theme="light"] .b30c-conf{background:color-mix(in srgb,var(--fg) 10%,transparent)}
html[data-theme="light"] .b30c-conf-lbl{color:#7285A3}
html[data-theme="light"] .b30c-vote:disabled{background:#E9EEF7;color:#7285A3}
.b30-addbank{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:26px;padding:18px;border:1px dashed var(--line);border-radius:0}
.b30-addbank p{margin:0;color:var(--muted);font-weight:600}
.b30-how{margin-top:30px}
.b30-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:760px){.b30-how-grid{grid-template-columns:1fr}}
.b30-how-cell h4{margin:10px 0 6px}
.b30-how-cell p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.6}
.bh-ic{width:40px;height:40px;border-radius:4px;display:grid;place-items:center;background:color-mix(in srgb,var(--emerald) 12%,transparent);color:var(--emerald-ink)}
.b30-modal,.b30-share{position:fixed;left:0;right:0;top:var(--header-h);bottom:0;z-index:59;background:rgba(6,10,20,.78);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:16px}
@media(max-width:1023px){.b30-modal,.b30-share{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}}
.b30-modal.open,.b30-share.open{display:flex}
.b30-sheet,.b30-share-sheet{position:relative;background:var(--card);border-radius:0;max-width:480px;width:100%;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.5);max-height:calc(100% - 8px);overflow:auto;overscroll-behavior:contain}
.b30-share-sheet .ach-x,.b30-sheet .ach-x{position:absolute;top:14px;right:14px;z-index:2}
.b30-bank-pin{display:flex;align-items:center;gap:10px;font-weight:700;margin-bottom:6px;padding-right:40px}
.b30-bank-pin img{width:34px;height:34px;border-radius:4px;background:#fff;object-fit:contain;padding:3px;border:1px solid var(--line)}
.b30-steps{font-family:var(--mono);font-size:.72rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
.b30q{margin:0 0 14px;font-size:1.2rem}
.b30-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.b30-big{padding:20px 12px;border-radius:0;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-weight:700;font-size:1rem;cursor:pointer;font-family:inherit;transition:border-color .15s,transform .12s var(--ease),background .15s}
.b30-big:active{transform:scale(.97)}
.b30-big.on{border-color:var(--emerald);background:color-mix(in srgb,var(--emerald) 9%,transparent)}
.b30-big.pos.on{border-color:#3B6FD9;background:color-mix(in srgb,#3B6FD9 10%,transparent)}
.b30-big.neg.on{border-color:rgb(var(--rb-red-solid));background:color-mix(in srgb,rgb(var(--rb-red-solid)) 8%,transparent)}
.b30-cc{text-align:right;font-family:var(--mono);font-size:.72rem;color:var(--muted);margin-top:4px}
.b30-note{color:var(--muted);font-size:.88rem;line-height:1.55;margin:0}
.b30-verified{margin-top:12px;padding:12px;border-radius:4px;background:color-mix(in srgb,var(--emerald) 9%,transparent);color:var(--emerald-ink);font-weight:700;text-align:center;border:1px solid color-mix(in srgb,var(--emerald) 24%,transparent)}
.b30-summary{border:1px solid var(--line);border-radius:0;padding:14px;display:flex;flex-direction:column;gap:9px;background:var(--bg)}
.b30s-row{display:flex;align-items:center;gap:9px;font-size:.94rem}
.b30s-row img{border-radius:7px;background:#fff;object-fit:contain;padding:2px;border:1px solid var(--line)}
.b30-posT{color:var(--emerald-ink)}
.b30-negT{color:var(--brass-ink)}
#b30Canvas{width:100%;height:auto;border-radius:0;border:1px solid var(--line);display:block;box-shadow:0 10px 30px rgba(11,37,69,.18)}
.b30-share .ach-share-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:14px}
@media(max-width:480px){.b30-share .ach-share-row{grid-template-columns:repeat(3,1fr)}}
.b30-sh{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;cursor:pointer;padding:4px 2px;color:var(--muted);font-family:inherit}
.b30-sh svg{width:22px;height:22px;color:#fff;padding:12px;border-radius:50%;box-sizing:content-box;background:var(--sc,#25D366);box-shadow:0 4px 12px color-mix(in srgb,var(--sc,#25D366) 40%,transparent);transition:transform .14s var(--ease)}
.b30-sh:hover svg{transform:translateY(-3px) scale(1.06)}
.b30-sh span{font-size:.68rem;font-weight:600}
/* ---- BANKERPEDIA ACADEMY ---- */
.ac-hero{position:relative;width:100vw;max-width:100%;margin-left:calc(50% - 50vw);overflow:hidden;background:#080F1F;color:#fff;text-align:center;min-height:calc(100dvh - var(--header-h));display:flex;align-items:center;justify-content:center}
.ac-hero-bg{position:absolute;inset:0}
.ac-hero-bg img{width:100%;height:100%;object-fit:cover}
.ac-hero-grad{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% -10%,rgba(18,48,94,.92) 0%,rgba(11,37,69,.88) 46%,rgba(8,15,31,.94) 100%)}
.ac-3d{position:absolute;inset:0;pointer-events:none;perspective:900px}
.ac-fl{position:absolute;display:block;transition:transform .25s ease-out;will-change:transform}
.ac-orb{border-radius:50%;filter:blur(60px);opacity:.4}
.ac-orb.o1{width:380px;height:380px;background:#2E5EFF;top:-120px;left:-90px;animation:blobMove 15s ease-in-out infinite alternate}
.ac-orb.o2{width:320px;height:320px;background:rgb(var(--rb-red-solid));opacity:.18;bottom:-130px;right:-70px;animation:blobMove 17s ease-in-out infinite alternate;animation-delay:-7s}
@keyframes acFloat{from{margin-top:0}to{margin-top:-26px}}
@keyframes acSpin{to{transform:rotate(360deg)}}
.ac-particles{position:absolute;inset:0}
.ac-particles i{position:absolute;bottom:-12px;width:5px;height:5px;border-radius:50%;background:linear-gradient(180deg,#FF6B73,#3B6FD9);animation:acRise 10s linear infinite}
@keyframes acRise{to{transform:translateY(-110vh)}}
@media (prefers-reduced-motion:reduce){.ac-fl,.ac-particles i{animation:none}}
.ac-hero-in{position:relative;z-index:1;max-width:900px;margin:auto;padding:60px 20px 52px;width:100%}
.ac-eyebrow{background:rgba(255,107,115,.1);border-color:rgba(255,107,115,.4);color:#FF6B73}
.ac-eyebrow .ic{color:#FF6B73}
.ac-title{font-family:var(--serif);font-size:clamp(2.2rem,6.5vw,4rem);margin:22px 0 0;letter-spacing:-.01em}
.ac-title em{font-style:italic;color:#FF6B73}
.ac-sub{font-weight:700;font-size:clamp(1rem,2.8vw,1.3rem);color:#FF6B73;margin:14px 0 0}
.ac-lede{color:rgba(255,255,255,.78);max-width:62ch;margin:12px auto 0;line-height:1.65}
.ac-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:640px;margin:28px auto 0}
.ac-stat{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);border-radius:0;padding:16px 10px;backdrop-filter:blur(10px)}
.acs-n{font-family:var(--mono);font-weight:700;font-size:clamp(1.3rem,4vw,2rem);color:#FFFFFF}
.acs-l{font-size:.72rem;color:rgba(255,255,255,.66);margin-top:5px;letter-spacing:.06em;text-transform:uppercase}
.ac-cta{display:flex;gap:12px;justify-content:center;margin-top:26px;flex-wrap:wrap}
.ac-cta-main{background:linear-gradient(135deg,rgb(var(--rb-red-solid)),rgb(var(--rb-red-solid-2)));border:0;box-shadow:0 10px 26px rgb(var(--rb-red-solid) / .35)}
.ac-cta-alt{border-color:rgba(255,255,255,.35);color:#fff}
.acx-strip{display:flex;gap:8px;overflow-x:auto;padding:22px 16px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.acx-strip>:first-child{margin-left:auto}
.acx-strip>:last-child{margin-right:auto}
.acx-strip::-webkit-scrollbar{display:none}
.acx-pill{flex:0 0 auto;padding:8px 15px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.05);color:rgba(255,255,255,.85);font-weight:600;font-size:.84rem;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s;white-space:nowrap}
.acx-pill:hover{border-color:rgba(255,255,255,.5)}
.acx-pill.on{background:rgb(var(--rb-red-solid));border-color:rgb(var(--rb-red-solid));color:#fff}
.wrap .acx-pill,.ac-sheet .acx-pill,#acTeacher .acx-pill{border-color:var(--line);background:var(--card);color:var(--fg)}
#acTeacher .acx-pill.on{background:var(--emerald);border-color:var(--emerald);color:#fff}
.ac-trustbar{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:20px;font-size:.82rem;color:rgba(255,255,255,.72)}
.ac-trustbar span{display:flex;align-items:center;gap:6px}
.ac-trustbar .ic{width:15px;height:15px;color:#FF6B73}
.ac-sechead{margin-top:44px;max-width:640px}
.ac-sechead.center{text-align:center;margin-left:auto;margin-right:auto}
.ac-kicker{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-ink);font-weight:700}
.ac-kicker .ic{width:14px;height:14px}
.ac-kicker.light{color:#FF8B92}
.ac-h2{font-family:var(--serif);font-size:clamp(1.5rem,3.6vw,2.1rem);margin:10px 0 8px;letter-spacing:-.01em}
.ac-subhead{color:var(--muted);margin:0;line-height:1.6}
.ac-toolbar{display:flex;align-items:center;gap:12px;margin-top:20px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:0;box-shadow:var(--raise);flex-wrap:wrap}
.ac-searchwrap{flex:1 1 240px;display:flex;align-items:center;gap:10px;padding:0 14px;height:46px;border:1.5px solid var(--line);border-radius:4px;background:var(--bg);transition:border-color .15s,box-shadow .15s}
.ac-searchwrap:focus-within{border-color:var(--emerald);box-shadow:0 0 0 3px color-mix(in srgb,var(--emerald) 14%,transparent)}
.ac-searchwrap .ic{width:17px;height:17px;color:var(--muted);flex:0 0 auto}
.ac-search{flex:1;height:100%;border:0;background:none;color:var(--fg);font-family:inherit;font-size:.95rem;outline:none;min-width:0}
.ac-count{font-family:var(--mono);font-size:.76rem;color:var(--muted);white-space:nowrap;padding:0 4px}
.ac-sort{height:46px;border:1.5px solid var(--line);border-radius:4px;background:var(--bg);color:var(--fg);font-family:inherit;font-weight:600;font-size:.88rem;padding:0 12px;cursor:pointer}
.ac-sort:focus{border-color:var(--emerald);outline:none}
.ac-why{margin-top:50px;padding:50px 0 54px;background:color-mix(in srgb,var(--emerald) 4%,var(--bg));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ac-why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
@media(max-width:820px){.ac-why-grid{grid-template-columns:1fr}}
.ac-why-cell{background:var(--card);border:1px solid var(--line);border-radius:0;padding:24px;box-shadow:var(--raise);transition:transform .2s var(--ease),box-shadow .22s}
.ac-why-cell:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(11,37,69,.14)}
.ac-why-cell:hover .acw-ic{transform:rotate(-6deg) scale(1.08)}
.acw-ic{width:48px;height:48px;border-radius:0;display:grid;place-items:center;background:linear-gradient(135deg,#0B2545,#12305E);color:#FF6B73;margin-bottom:14px;box-shadow:0 8px 20px rgba(11,37,69,.3);transition:transform .25s var(--ease)}
.acw-ic .ic{width:22px;height:22px}
.ac-why-cell h3{margin:0 0 8px;font-size:1.05rem}
.ac-why-cell p{margin:0;color:var(--muted);line-height:1.65;font-size:.9rem}
.ac-mentor-band{position:relative;overflow:hidden;margin-top:44px;border-radius:0;background:radial-gradient(110% 140% at 85% 0%,#12305E 0%,#0B2545 50%,#080F1F 100%);color:#fff;padding:44px 28px;text-align:center;box-shadow:0 24px 56px rgba(6,14,30,.35)}
.acmb-in{position:relative;z-index:1;max-width:560px;margin:0 auto}
.acmb-h{font-family:var(--serif);font-size:clamp(1.5rem,4vw,2.2rem);margin:10px 0 10px}
.acmb-p{color:rgba(255,255,255,.78);line-height:1.65;margin:0 0 20px}
.acmb-orb{position:absolute;right:-90px;top:-90px;width:280px;height:280px;border-radius:50%;background:rgb(var(--rb-red-solid));opacity:.16;filter:blur(70px)}
.ac-toolrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:30px;flex-wrap:wrap}
.ac-tools{display:flex;gap:8px;flex-wrap:wrap}
.ac-search{max-width:220px}
.ac-sort{max-width:170px}
.ac-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
@media(max-width:1023px){.ac-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.ac-grid{grid-template-columns:1fr}}
.ac-skel{height:300px;border-radius:0;background:linear-gradient(100deg,color-mix(in srgb,var(--fg) 6%,transparent) 30%,color-mix(in srgb,var(--fg) 12%,transparent) 50%,color-mix(in srgb,var(--fg) 6%,transparent) 70%);background-size:200% 100%;animation:acShimmer 1.4s linear infinite}
.ac-skel.shelf{height:220px}
.ac-skel-line{display:inline-block;height:1em;border-radius:6px;background:color-mix(in srgb,var(--fg) 10%,transparent)}
@keyframes acShimmer{to{background-position:-200% 0}}
.acg-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:0;overflow:hidden;text-decoration:none;color:var(--fg);box-shadow:var(--raise);transition:transform .2s var(--ease),box-shadow .22s;opacity:0;transform:translateY(16px)}
.acg-card.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease),box-shadow .22s}
.acg-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(11,37,69,.18)}
.acg-thumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden}
.acg-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.acg-card:hover .acg-thumb img{transform:scale(1.06)}
.acg-grad{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,15,31,.75))}
.acg-cat{position:absolute;top:10px;left:10px;background:rgba(11,37,69,.85);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.05em;padding:5px 10px;border-radius:999px;backdrop-filter:blur(4px)}
.acg-free{position:absolute;top:10px;right:10px;background:#12B76A;color:#fff;font-size:.68rem;font-weight:800;padding:5px 10px;border-radius:999px}
.acg-paid{position:absolute;top:10px;right:10px;background:rgb(var(--rb-red-solid));color:#fff;font-size:.7rem;font-weight:800;padding:5px 10px;border-radius:999px}
.acg-view{position:absolute;left:50%;bottom:-40px;transform:translateX(-50%);background:rgba(255,255,255,.95);color:#0B2545;font-weight:700;font-size:.8rem;padding:8px 16px;border-radius:999px;transition:bottom .25s var(--ease)}
.acg-card:hover .acg-view{bottom:14px}
.acg-ring{position:absolute;right:10px;bottom:10px;width:44px;height:44px}
.acg-ring .ring-bg{fill:rgba(8,15,31,.6);stroke:rgba(255,255,255,.25);stroke-width:4}
.acg-ring .ring-fg{fill:none;stroke:#FF6B73;stroke-width:4;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center}
.acg-ring text{fill:#fff;font-size:10px;font-weight:700}
.acg-body{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px}
.acg-wrap{display:flex;flex-direction:column;min-width:0}
.acg-wrap .acg-card{flex:1 1 auto}
.acg-receipt{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:.78rem;font-weight:600;color:var(--emerald-ink);border:1px solid var(--line);padding:8px 12px;background:var(--card);align-self:flex-start;text-decoration:none}
.acg-receipt:hover{border-color:var(--emerald-ink)}
.acg-teacher{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted)}
.acg-teacher img{width:24px;height:24px;border-radius:50%;object-fit:cover}
.acg-title{margin:0;font-size:1.02rem;line-height:1.3}
.acg-stats{font-size:.76rem;color:var(--muted);font-family:var(--mono)}
.acg-btn{margin-top:4px;justify-content:center}
.ac-empty{text-align:center;padding:40px 20px}
.ac-empty-art{position:relative;width:120px;height:110px;margin:0 auto 14px}
.ea-book{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);width:64px;height:86px;border-radius:8px 12px 12px 8px;background:linear-gradient(135deg,#2E5EFF,#16368F);box-shadow:inset 7px 0 0 rgba(255,255,255,.18),0 16px 34px rgba(11,37,69,.3)}
.ea-spark{position:absolute;right:8px;top:2px;color:#FF6B73;animation:acFloat 3s ease-in-out infinite alternate}
.ea-spark .ic{width:22px;height:22px}
.ac-shelf{margin-top:22px}
.ac-shelf-lbl{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.ac-shelf-row{display:flex;gap:16px;overflow-x:auto;padding:6px 4px 18px;scrollbar-width:thin}
.acb{flex:0 0 130px;background:none;border:0;cursor:pointer;text-align:left;font-family:inherit;color:var(--fg);perspective:600px}
.acb-cover{position:relative;display:block;width:130px;height:180px;border-radius:0;overflow:hidden;box-shadow:6px 10px 24px rgba(11,37,69,.28);transition:transform .3s var(--ease),box-shadow .3s}
.acb:hover .acb-cover{transform:rotateY(-14deg) translateY(-6px);box-shadow:16px 18px 36px rgba(11,37,69,.35)}
.acb-cover img{width:100%;height:100%;object-fit:cover}
.acb-spine{display:none}
.acb-title{display:block;margin-top:9px;font-size:.84rem;font-weight:700;line-height:1.3;max-height:2.6em;overflow:hidden}
.acb-dl{display:block;font-size:.72rem;color:var(--muted);font-family:var(--mono);margin-top:3px}
.ac-modal{position:fixed;left:0;right:0;top:var(--header-h);bottom:0;z-index:59;background:rgba(6,10,20,.78);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:16px}
@media(max-width:1023px){.ac-modal{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}}
.ac-modal.open{display:flex}
.ac-sheet{position:relative;background:var(--card);border-radius:0;max-width:440px;width:100%;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.5);max-height:calc(100% - 8px);overflow:auto;overscroll-behavior:contain}
.ac-sheet.wide{max-width:680px}
.ac-sheet .ach-x{position:absolute;top:14px;right:14px;z-index:2}
.acn-cover{display:block;width:100%;height:auto;max-height:46vh;object-fit:contain;background:#0B1220;border-radius:0;margin:0 auto 12px}
.acn-cat{display:inline-block;background:color-mix(in srgb,var(--emerald) 12%,transparent);color:var(--emerald-ink);font-size:.68rem;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:999px;text-transform:uppercase}
.acn-dl{font-family:var(--mono);font-weight:700;color:var(--emerald-ink);margin:0 0 12px}
.acc-hero{position:relative;width:100vw;max-width:100%;margin-left:calc(50% - 50vw);min-height:300px;display:flex;align-items:flex-end}
.acc-hero-img{position:absolute;inset:0;background-size:cover;background-position:center}
.acc-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,15,31,.35),rgba(8,15,31,.88))}
.acc-hero-in{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:80px 20px 26px;width:100%;color:#fff}
.acc-title{font-family:var(--serif);font-size:clamp(1.6rem,4.6vw,2.6rem);margin:10px 0 8px}
.acc-teacher{display:flex;align-items:center;gap:9px;font-size:.9rem;color:rgba(255,255,255,.85)}
.acc-teacher img{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(255,255,255,.5)}
.acc-cols{display:grid;grid-template-columns:1fr 320px;gap:24px;padding-top:24px;padding-bottom:60px;align-items:start}
@media(max-width:900px){.acc-cols{grid-template-columns:1fr}}
.acc-progress{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.acc-ring{width:80px;height:80px}
.acc-ring .ring-bg{fill:none;stroke:color-mix(in srgb,var(--fg) 10%,transparent);stroke-width:7}
.acc-ring .ring-fg{fill:none;stroke:var(--emerald-ink);stroke-width:7;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset .8s var(--ease)}
.accp-n{font-family:var(--mono);font-weight:700;font-size:1.4rem}
.accp-l{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.acc-desc{color:var(--muted);line-height:1.7;margin:0 0 18px}
.acm{border:1px solid var(--line);border-radius:0;background:var(--card);margin-bottom:12px;overflow:hidden}
.acm summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;cursor:pointer;font-weight:700;list-style:none}
.acm summary::-webkit-details-marker{display:none}
.acm-n{font-size:.74rem;color:var(--muted);font-family:var(--mono);flex:0 0 auto}
.acm-lessons{padding:4px 10px 12px;display:flex;flex-direction:column;gap:6px}
.acl-row{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:4px;border:1px solid transparent;background:none;cursor:pointer;font-family:inherit;color:var(--fg);text-align:left;font-size:.92rem;transition:background .15s,border-color .15s}
.acl-row:hover{background:color-mix(in srgb,var(--fg) 4%,transparent);border-color:var(--line)}
.acl-row.locked{opacity:.55}
.acl-row.done .aclr-ic{background:#12B76A;color:#fff}
.aclr-ic{width:30px;height:30px;border-radius:4px;display:grid;place-items:center;background:color-mix(in srgb,var(--emerald) 10%,transparent);color:var(--emerald-ink);font-size:.82rem;flex:0 0 auto}
.aclr-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aclr-d{font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.acc-side{position:sticky;top:calc(var(--header-h) + 16px)}
@media(max-width:900px){.acc-side{display:none}}
.acc-card{background:var(--card);border:1px solid var(--line);border-radius:0;padding:20px;box-shadow:var(--raise);backdrop-filter:blur(8px)}
.accc-price{font-size:1.7rem;font-weight:800;margin-bottom:6px}
.accc-price .free{color:#12B76A}
.accc-meta{color:var(--muted);font-size:.84rem;margin-bottom:14px}
.accc-note{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:.76rem;margin:10px 0 0}
.accc-note .ic{width:14px;height:14px;color:#12B76A}
.acc-sticky{display:none;position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));z-index:40;background:var(--card);border-top:1px solid var(--line);padding:10px 16px;align-items:center;justify-content:space-between;gap:12px}
@media(max-width:900px){.acc-sticky{display:flex}}
.accs-price{font-weight:800;font-size:1.1rem}
.acl-video{position:relative;aspect-ratio:16/9;border-radius:0;overflow:hidden;background:#000}
.acl-video iframe{position:absolute;inset:0;width:100%;height:100%}
.acl-pdf iframe{width:100%;height:min(62vh,520px);border-radius:0;border:1px solid var(--line);background:#fff}
.acl-notes{color:var(--muted);line-height:1.65;margin:12px 0 0}
.acl-actions{margin-top:14px;display:flex;justify-content:flex-end}
.acl-done{color:#12B76A;font-weight:800}
.ac-tick{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:90px;height:90px;border-radius:50%;background:#12B76A;color:#fff;display:grid;place-items:center;font-size:2.4rem;z-index:620;animation:acTick .9s var(--ease) forwards;box-shadow:0 20px 50px rgba(18,183,106,.5)}
@keyframes acTick{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}30%{transform:translate(-50%,-50%) scale(1.1);opacity:1}70%{transform:translate(-50%,-50%) scale(1)}100%{transform:translate(-50%,-50%) scale(.9);opacity:0}}
.acq-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-right:38px}
.acq-title{font-weight:800}
.acq-timer{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-weight:700}
.acq-timer svg{width:40px;height:40px}
.tring-bg{fill:none;stroke:color-mix(in srgb,var(--fg) 10%,transparent);stroke-width:4}
.tring-fg{fill:none;stroke:#3B6FD9;stroke-width:4;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset 1s linear,stroke .3s}
.acq-progress{height:6px;border-radius:6px;background:color-mix(in srgb,var(--fg) 9%,transparent);overflow:hidden;margin:12px 0 16px}
.acq-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--emerald),#3B6FD9);border-radius:6px;transition:width .4s var(--ease)}
.acq-card{opacity:0;transform:translateX(26px) rotateY(6deg)}
.acq-card.in{opacity:1;transform:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.acq-n{font-family:var(--mono);font-size:.74rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.acq-q{font-size:1.08rem;font-weight:700;line-height:1.5;margin-bottom:16px}
.acq-opts{display:flex;flex-direction:column;gap:9px}
.acq-opt{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:0;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-family:inherit;font-size:.95rem;cursor:pointer;text-align:left;transition:border-color .12s,transform .1s var(--ease),background .12s}
.acq-opt:active{transform:scale(.985)}
.acq-opt.sel{border-color:var(--emerald);background:color-mix(in srgb,var(--emerald) 8%,transparent)}
.acq-opt:disabled{cursor:default;opacity:.85}
.acq-key{width:28px;height:28px;border-radius:4px;display:grid;place-items:center;background:color-mix(in srgb,var(--emerald) 10%,transparent);color:var(--emerald-ink);font-weight:800;font-size:.8rem;flex:0 0 auto}
.acq-foot{display:flex;justify-content:flex-end;margin-top:16px}
.acq-grading{text-align:center;padding:40px 0;color:var(--muted)}
.acq-result{text-align:center;opacity:0;transform:translateY(14px)}
.acq-result.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.acqr-donut{width:130px;height:130px;margin:6px auto}
.acqr-donut .ring-bg{fill:none;stroke:color-mix(in srgb,var(--fg) 9%,transparent);stroke-width:10}
.acqr-donut .ring-fg{fill:none;stroke:#3B6FD9;stroke-width:10;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center}
.acqr-donut text{fill:var(--fg);font-size:24px;font-weight:800;font-family:var(--mono)}
.acqr-badge{display:inline-block;padding:7px 18px;border-radius:999px;font-weight:800;letter-spacing:.08em;font-size:.8rem;margin:8px 0}
.acqr-badge.pass{background:color-mix(in srgb,#12B76A 14%,transparent);color:#0a7a47}
[data-theme="dark"] .acqr-badge.pass{color:#3ddc97}
.acqr-badge.fail{background:color-mix(in srgb,rgb(var(--rb-red-solid)) 10%,transparent);color:var(--brass-ink)}
.acqr-score{font-weight:800;font-size:1.15rem}
.acqr-msg{color:var(--muted);max-width:44ch;margin:8px auto 14px;line-height:1.6}
.acqr-acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:12px}
.acqr-row{text-align:left;border:1px solid var(--line);border-left-width:4px;border-radius:4px;padding:11px 13px;margin-bottom:9px}
.acqr-row.ok{border-left-color:#12B76A}
.acqr-row.no{border-left-color:rgb(var(--rb-red-solid))}
.acqrr-q{font-weight:700;font-size:.9rem}
.acqrr-a{font-size:.82rem;color:var(--muted);margin-top:3px}
.acqrr-e{font-size:.82rem;margin-top:5px;padding:8px 10px;background:color-mix(in srgb,var(--emerald) 6%,transparent);border-radius:4px;line-height:1.55}
#acCanvas{width:100%;height:auto;border-radius:0;border:1px solid var(--line);display:block;box-shadow:0 10px 30px rgba(11,37,69,.18)}
.ac-modal .ach-share-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:14px}
@media(max-width:480px){.ac-modal .ach-share-row{grid-template-columns:repeat(3,1fr)}}
.acl-hero{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);border-radius:0;background:var(--card);box-shadow:var(--raise);flex-wrap:wrap}
.aclh-dp img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--line)}
.aclh-hi{font-size:.8rem;color:var(--muted)}
.aclh-name{margin:0;font-size:1.4rem}
.aclh-exam{font-size:.82rem;color:var(--emerald-ink);font-weight:600}
.acl-continue{display:flex;align-items:center;gap:16px;margin-top:18px;padding:16px;border-radius:0;background:linear-gradient(140deg,#13223F,#0B1B36);color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.1);box-shadow:0 16px 36px rgba(6,14,30,.3);opacity:0;transform:translateY(12px)}
.acl-continue.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.aclc-thumb img{width:110px;height:72px;object-fit:cover;border-radius:4px}
.aclc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.aclc-k{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#FF6B73;font-family:var(--mono)}
.aclc-t{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aclc-bar{height:6px;border-radius:6px;background:rgba(255,255,255,.15);overflow:hidden}
.aclc-bar i{display:block;height:100%;background:linear-gradient(90deg,#3B6FD9,#FF6B73);border-radius:6px}
.aclc-p{font-size:.74rem;color:rgba(255,255,255,.7);font-family:var(--mono)}
.acl-continue .acg-ring{position:static;width:52px;height:52px;flex:0 0 auto}
.acl-certs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:12px}
.acl-cert{display:block;border:2px solid #FF3B47;border-radius:0;padding:4px;text-decoration:none;color:var(--fg);background:linear-gradient(140deg,color-mix(in srgb,#FF6B73 10%,var(--card)),var(--card));transition:transform .16s var(--ease),box-shadow .2s}
.acl-cert:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(199,154,42,.25)}
.aclce-in{display:flex;flex-direction:column;gap:4px;border:1px dashed color-mix(in srgb,#FF3B47 55%,transparent);border-radius:4px;padding:14px}
.aclce-k{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#FF3B47;font-family:var(--mono);font-weight:700}
.aclce-t{font-weight:800}
.aclce-d{font-size:.74rem;color:var(--muted);font-family:var(--mono)}
.acl-tl{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.acl-tli{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:0;background:var(--card)}
.acl-dot{width:12px;height:12px;border-radius:50%;background:var(--muted);margin-top:5px;flex:0 0 auto}
.acl-dot.ok{background:#12B76A;box-shadow:0 0 0 4px color-mix(in srgb,#12B76A 18%,transparent)}
.acl-type{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;background:color-mix(in srgb,var(--emerald) 10%,transparent);color:var(--emerald-ink);padding:2px 7px;border-radius:999px;margin-left:6px}
.acl-sub{font-size:.78rem;color:var(--muted);font-family:var(--mono);margin-top:2px}
.act-apply,.act-form,.act-build{max-width:640px;background:var(--card);border:1px solid var(--line);border-radius:0;padding:22px;box-shadow:var(--raise);opacity:0;transform:translateY(14px)}
.act-apply.in,.act-form.in,.act-build.in,.act-hold.in,.act-dash .actd-stat.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.acta-head h1{margin:0 0 6px;font-size:1.5rem}
.acta-head p{color:var(--muted);margin:0 0 16px}
.act-note.bad{background:color-mix(in srgb,rgb(var(--rb-red-solid)) 8%,transparent);color:var(--brass-ink);padding:10px 14px;border-radius:4px;font-size:.86rem;margin-bottom:12px}
.acta-subjects{display:flex;gap:8px;flex-wrap:wrap}
.act-hold{text-align:center;max-width:520px;margin:30px auto;opacity:0;transform:translateY(14px)}
.acth-art{position:relative;width:110px;height:110px;margin:0 auto 14px}
.acth-art .ea-book{width:58px;height:80px}
.acth-art .ea-spark{position:absolute;right:6px;top:0;color:#FF6B73;font-size:1.4rem;animation:acFloat 3s ease-in-out infinite alternate}
.actd-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.actd-head h1{margin:0;font-size:1.5rem}
.actd-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}
.actd-stat{background:var(--card);border:1px solid var(--line);border-radius:0;padding:16px;box-shadow:var(--raise);opacity:0;transform:translateY(10px)}
.actd-stat.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.actds-n{font-family:var(--mono);font-weight:800;font-size:1.5rem;color:var(--emerald-ink)}
.actds-l{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}
.actc-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:0;padding:10px 12px;margin-bottom:10px;background:var(--card)}
.actc-th{width:84px;height:52px;object-fit:cover;border-radius:4px}
.actc-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.actc-meta span{font-size:.76rem;color:var(--muted);font-family:var(--mono)}
.actc-acts{display:flex;gap:8px;flex:0 0 auto;flex-wrap:wrap}
.ab-mod{border:1px solid var(--line);border-radius:0;margin-bottom:12px;overflow:hidden;background:var(--bg)}
.ab-mod-h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;background:color-mix(in srgb,var(--fg) 3%,transparent);flex-wrap:wrap}
.ab-lessons{padding:8px 12px}
.ab-les{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px}
.ab-les:hover{background:color-mix(in srgb,var(--fg) 4%,transparent)}
.ab-les-t{flex:1;min-width:0;font-size:.9rem}
.ab-les-t em{font-style:normal;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-left:6px}
.ab-addmod{display:flex;gap:10px;margin-top:12px}
.alf-types{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:14px}
@media(max-width:520px){.alf-types{grid-template-columns:repeat(2,1fr)}}
.alf-type{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:0;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;transition:border-color .14s,background .14s}
.alf-type.on{border-color:var(--emerald);background:color-mix(in srgb,var(--emerald) 8%,transparent)}
.alft-ic{font-size:1.3rem}
.lf-prev{width:180px;border-radius:4px;margin-top:8px;display:block}
.ab-excel{margin-top:18px}
.abx-drop{display:flex;flex-direction:column;gap:5px;align-items:center;text-align:center;padding:24px 16px;border:2px dashed color-mix(in srgb,var(--emerald) 40%,var(--line));border-radius:0;cursor:pointer;background:color-mix(in srgb,var(--fg) 2%,transparent);animation:abxPulse 2.6s ease-in-out infinite}
@keyframes abxPulse{0%,100%{border-color:color-mix(in srgb,var(--emerald) 40%,var(--line))}50%{border-color:var(--emerald)}}
.abx-drop span{font-size:.8rem;color:var(--muted)}
.abx-table{margin-top:12px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:4px}
.abx-row{display:grid;grid-template-columns:34px 1fr auto;gap:8px;padding:8px 12px;font-size:.82rem;border-bottom:1px solid var(--line)}
.abx-row.ok{background:color-mix(in srgb,#12B76A 6%,transparent)}
.abx-row.bad{background:color-mix(in srgb,rgb(var(--rb-red-solid)) 6%,transparent);color:var(--brass-ink)}
.ac-cert-card{margin-top:10px}
.ac-cert-in{border:3px solid #FF3B47;border-radius:0;padding:8px;background:linear-gradient(150deg,#13223F,#0B1B36);color:#fff;text-align:center;opacity:0;transform:translateY(14px);box-shadow:0 24px 60px rgba(6,14,30,.4)}
.ac-cert-in.in{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.ac-cert-in>*{position:relative}
.ac-cert-in{position:relative}
.ac-cert-in::before{content:"";position:absolute;inset:14px;border:1px dashed rgba(255,107,115,.45);border-radius:0;pointer-events:none}
.acc-logo{display:block;height:auto;max-height:44px;width:auto;max-width:min(72%,300px);object-fit:contain;margin:30px auto 10px}
.acci-k{font-family:var(--mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#FF6B73}
.acci-name{font-family:var(--serif);font-size:clamp(1.6rem,5vw,2.4rem);font-weight:700;margin:16px 0 4px}
.acci-sub{color:rgba(255,255,255,.65);font-size:.9rem}
.acci-course{font-size:clamp(1.05rem,4.5vw,1.4rem);font-weight:800;color:#8FB0FF;margin:10px 8px;overflow-wrap:anywhere}
.acci-meta{font-family:var(--mono);font-size:clamp(.58rem,2.4vw,.74rem);color:rgba(255,255,255,.55);margin:18px 12px 8px;line-height:1.7;overflow-wrap:anywhere}
.acci-verified{display:inline-block;background:rgba(18,183,106,.16);color:#3ddc97;font-weight:800;font-size:.8rem;padding:7px 16px;border-radius:999px;margin-bottom:30px}
.acad-form{border:1.5px dashed color-mix(in srgb,var(--emerald) 40%,var(--line));border-radius:0;padding:16px;margin-bottom:14px;background:color-mix(in srgb,var(--emerald) 3%,transparent)}
.acad-form-h{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}
.acad-form-h span{font-size:.8rem;color:var(--muted)}
.acad-edit{width:100%;margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:4px;background:var(--bg)}
.acad-crow,.md-row{flex-wrap:wrap}
.acad-ncov{width:56px;height:78px;flex:0 0 auto;border-radius:0;overflow:hidden;position:relative;box-shadow:3px 5px 12px rgba(11,37,69,.25)}
.acad-ncov img{width:100%;height:100%;object-fit:cover}
.acad-nprev{display:flex;align-items:center;gap:10px;margin-top:10px}
.acad-hero-set{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:start}
@media(max-width:640px){.acad-hero-set{grid-template-columns:1fr}}
.acad-hero-prev{aspect-ratio:16/10;border-radius:4px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(120% 90% at 50% -10%,#12305E,#080F1F);display:grid;place-items:center}
.acad-hero-prev img{width:100%;height:100%;object-fit:cover}
.ahp-none{color:rgba(255,255,255,.7);font-size:.78rem;font-family:var(--mono)}
.amp-hero{position:relative;width:100vw;max-width:100%;margin-left:calc(50% - 50vw);overflow:hidden;background:#080F1F;color:#fff;text-align:center}
.amp-in{position:relative;z-index:2;max-width:760px;margin:0 auto;padding:100px 20px 48px;display:flex;flex-direction:column;align-items:center}
.amp-dpwrap{display:block;padding:4px;border-radius:50%;background:linear-gradient(135deg,#FF3B47,#3B6FD9);box-shadow:0 18px 44px rgba(0,0,0,.45)}
.amp-dp{display:block;width:118px;height:118px;border-radius:50%;object-fit:cover;border:3px solid #080F1F}
.amp-badge{display:inline-flex;align-items:center;gap:7px;margin-top:16px;background:rgba(18,183,106,.14);border:1px solid rgba(18,183,106,.4);color:#3ddc97;font-weight:700;font-size:.78rem;padding:6px 14px;border-radius:999px}
.amp-badge .ic{width:14px;height:14px}
.amp-name{font-family:var(--serif);font-size:clamp(1.8rem,5vw,2.8rem);margin:18px 0 4px}
.amp-role{color:rgba(255,255,255,.82);font-weight:600;margin:0}
.amp-qual{color:rgba(255,255,255,.6);font-size:.88rem;margin:6px 0 0}
.amp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:620px;margin:24px auto 0}
@media(max-width:560px){.amp-stats{grid-template-columns:repeat(2,1fr)}}
.amp-stat{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);border-radius:0;padding:14px 8px;backdrop-filter:blur(8px)}
.amp-stat b{display:block;font-family:var(--mono);font-size:1.15rem;color:#fff}
.amp-stat span{font-size:.68rem;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.06em}
.amp-stars{color:#FF6B73;letter-spacing:1px}
.amp-subjects{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:18px}
.amp-bio{color:rgba(255,255,255,.78);max-width:58ch;margin:16px auto 0;line-height:1.65}
.amp-li{margin-top:14px;border-color:rgba(255,255,255,.35);color:#fff}
.actd-id{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(140deg,#13223F,#0B1B36);border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:0;padding:18px;margin-bottom:18px;box-shadow:0 16px 36px rgba(6,14,30,.3);opacity:0;transform:translateY(10px)}
.actd-id.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.actdi-dp{width:62px;height:62px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.4)}
.actdi-meta{flex:1;min-width:0}
.actdi-name{font-weight:800;font-size:1.2rem;display:flex;align-items:center;gap:8px}
.verified-tick-sm{display:inline-flex;vertical-align:middle;color:#1D9BF0}.verified-tick-sm svg{width:15px;height:15px;display:block}
.actdi-role{font-size:.84rem;color:rgba(255,255,255,.7);margin-top:3px}
.actdi-tier{color:var(--tc,#FF6B73);font-weight:800}
.actdi-acts{display:flex;gap:8px;flex-wrap:wrap}
.actdi-acts .btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.actd-ms{border:1px solid var(--line);border-radius:0;background:var(--card);padding:16px;margin-bottom:18px;box-shadow:var(--raise);opacity:0;transform:translateY(10px)}
.actd-ms.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.actdm-head{display:flex;justify-content:space-between;gap:10px;font-size:.92rem}
.actdm-head span{font-family:var(--mono);color:var(--muted);font-size:.8rem}
.actdm-bar{height:9px;border-radius:4px;background:color-mix(in srgb,var(--fg) 8%,transparent);overflow:hidden;margin:10px 0}
.actdm-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--emerald),#FF6B73);border-radius:4px;transition:width 1s var(--ease)}
.actdm-p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.55}
.actd-earn{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;border:1px solid var(--line);border-radius:0;background:var(--card);padding:18px;margin-bottom:18px;box-shadow:var(--raise);opacity:0;transform:translateY(10px)}
.actd-earn.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
@media(max-width:760px){.actd-earn{grid-template-columns:1fr}}
.actde-k{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.actde-k.light{color:#FF8B92}
.actde-big{font-size:2rem;font-weight:800;margin:6px 0 2px;color:var(--emerald-ink)}
.actde-eta{font-size:.84rem;color:var(--brass-ink);font-weight:700}
.actde-rows{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:.86rem;color:var(--muted)}
.actde-rows b{color:var(--fg)}
.acch{display:flex;gap:10px;align-items:flex-end;height:150px;margin-top:12px}
.acch-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.acch-col b{font-size:.68rem;color:var(--muted);font-family:var(--mono);font-weight:600}
.acch-bar{position:relative;width:100%;max-width:44px;height:var(--h,4%);border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#3B6FD9,#0B2545);transition:height .9s var(--ease);min-height:4px}
.acch-bar span{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:.6rem;font-family:var(--mono);color:var(--muted);white-space:nowrap}
.actd-rev{border:1px solid var(--line);border-radius:0;background:var(--card);padding:16px;margin-bottom:18px;box-shadow:var(--raise);opacity:0;transform:translateY(10px)}
.actd-rev.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.actdr-row{padding:10px 0;border-bottom:1px solid var(--line)}
.actdr-row:last-child{border-bottom:0}
.actdr-row p{margin:4px 0;font-size:.92rem;line-height:1.5}
.actdr-by{font-size:.76rem;color:var(--muted);font-family:var(--mono)}
.actd-promo{position:relative;overflow:hidden;border-radius:0;background:radial-gradient(110% 140% at 85% 0%,#12305E 0%,#0B2545 55%,#080F1F 100%);color:#fff;padding:22px;margin-bottom:8px;opacity:0;transform:translateY(10px)}
.actd-promo.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.actd-promo h3{margin:8px 0 6px;font-family:var(--serif);font-size:1.35rem}
.actd-promo p{margin:0 0 14px;color:rgba(255,255,255,.78);font-size:.9rem;line-height:1.6;max-width:60ch}
.actdp-row{display:flex;gap:8px;flex-wrap:wrap}
.actdp-row .btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.acfee{border:1px solid var(--line);border-radius:0;background:var(--bg);padding:14px;margin:12px 0 4px}
.acfee.free{color:var(--emerald-ink);font-weight:600;font-size:.9rem;line-height:1.55}
.acfee-h{font-weight:800;margin-bottom:10px}
.acfee-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-top:1px dashed var(--line)}
.acfee-l b{display:block;font-size:.9rem}
.acfee-l span{display:block;font-size:.76rem;color:var(--muted);line-height:1.45;margin-top:2px}
.acfee-a{font-family:var(--mono);font-weight:700;white-space:nowrap;color:var(--muted)}
.acfee-row.you{background:color-mix(in srgb,var(--emerald) 7%,transparent);border-radius:4px;padding:11px 12px;border-top:0;margin-top:6px}
.acfee-row.you .acfee-a{color:var(--emerald-ink);font-size:1.05rem}
.acfee-f{font-size:.74rem;color:var(--muted);margin-top:10px;font-family:var(--mono)}
.acc-empty-note{border:1.5px dashed color-mix(in srgb,var(--emerald) 45%,var(--line));background:color-mix(in srgb,var(--emerald) 5%,transparent);border-radius:0;padding:14px 16px;font-size:.9rem;line-height:1.55;color:var(--fg);margin-bottom:12px}
.acr-form{border:1px solid var(--line);border-radius:0;background:var(--card);padding:14px;margin-bottom:14px}
.acr-form-h{font-weight:800;margin-bottom:8px}
.acr-stars{display:flex;gap:4px;margin-bottom:10px}
.acr-star{background:none;border:0;font-size:1.6rem;color:color-mix(in srgb,var(--fg) 20%,transparent);cursor:pointer;padding:2px;transition:transform .12s var(--ease),color .12s}
.acr-star:hover{transform:scale(1.15)}
.acr-star.on{color:#FF6B73}
.acr-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.acr-row:last-child{border-bottom:0}
.acr-row img{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.acr-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.9rem}
.acr-at{font-size:.72rem;color:var(--muted);font-family:var(--mono)}
.acr-row p{margin:4px 0 0;font-size:.9rem;line-height:1.55}
.actde-upi{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);font-size:.84rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.actdeu-ok{color:var(--emerald-ink)}
.actdeu-warn{color:var(--brass-ink);font-weight:600}
.lib-hero{position:relative;width:100vw;max-width:100%;margin-left:calc(50% - 50vw);overflow:hidden;background:#080F1F;color:#fff;text-align:center;min-height:calc(100dvh - var(--header-h));display:flex;align-items:center;justify-content:center}
.lib-hero-in{position:relative;z-index:2;max-width:760px;margin:0 auto;padding:110px 20px 60px;width:100%}
.lib-title{font-family:var(--serif);font-size:clamp(2rem,6vw,3.4rem);margin:18px 0 26px;letter-spacing:-.01em}
.lib-title em{font-style:italic;color:#FF6B73}
.lib-searchwrap{position:relative;max-width:560px;margin:0 auto}
.lib-search{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.97);border-radius:999px;padding:0 20px;height:58px;box-shadow:0 18px 50px rgba(0,0,0,.35);transition:box-shadow .2s}
.lib-search:focus-within{box-shadow:0 18px 50px rgba(0,0,0,.45),0 0 0 4px rgba(255,59,71,.25)}
.lib-search .ic{width:19px;height:19px;color:#0B2545;flex:0 0 auto}
.lib-search input{flex:1;min-width:0;height:100%;border:0;background:none;outline:none;font-family:inherit;font-size:1.05rem;color:#0B1220}
.lib-search button{background:none;border:0;cursor:pointer;color:#5B6B82;display:grid;place-items:center}
.lib-search button[hidden]{display:none}
.lib-search button .ic{width:16px;height:16px;color:#5B6B82}
.lib-suggest{position:absolute;left:12px;right:12px;top:64px;background:#fff;border-radius:0;box-shadow:0 22px 54px rgba(0,0,0,.4);overflow:hidden;z-index:5;text-align:left}
.lib-sug{display:flex;align-items:center;gap:11px;width:100%;padding:12px 18px;background:none;border:0;cursor:pointer;font-family:inherit;font-size:.95rem;color:#0B1220;text-align:left}
.lib-sug:hover{background:#F2F5FA}
.ls-k{color:#8A97AB;font-size:.9rem;flex:0 0 auto}
.lib-sub{color:rgba(255,255,255,.72);margin:18px 0 0;font-size:.9rem}
.certv-card{background:var(--card);border:1px solid var(--line);border-radius:0;padding:30px;text-align:center;box-shadow:var(--raise);opacity:0;transform:translateY(12px)}
.certv-card.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.certv-seal{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:linear-gradient(135deg,#0B2545,#12305E);color:#FF6B73;box-shadow:0 12px 28px rgba(11,37,69,.3)}
.certv-seal .ic{width:28px;height:28px}
.certv-card h1{font-family:var(--serif);margin:0 0 8px;font-size:1.6rem}
.certv-card p{color:var(--muted);margin:0 0 18px;line-height:1.6}
.certv-row{display:flex;gap:10px;max-width:420px;margin:0 auto}
.certv-row .inp{text-transform:uppercase;font-family:var(--mono);letter-spacing:.04em}
.certv-hint{font-size:.78rem!important;margin-top:12px!important;font-family:var(--mono)}
.ac-more-wrap{display:flex;justify-content:center;margin-top:26px}
.ac-morebtn{border:1.5px solid var(--line);background:var(--card);color:var(--fg);font-weight:700;padding:12px 34px;border-radius:999px;box-shadow:var(--raise);transition:transform .15s var(--ease),border-color .15s}
.ac-morebtn:hover{transform:translateY(-2px);border-color:var(--emerald)}
.ac-libcta{text-align:center;margin-top:26px}
.ac-libbtn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#0B2545,#12305E);color:#fff;font-weight:800;padding:15px 34px;border-radius:999px;box-shadow:0 16px 38px rgba(11,37,69,.35);border:1px solid rgba(255,255,255,.12);transition:transform .18s var(--ease),box-shadow .2s}
.ac-libbtn:hover{transform:translateY(-3px);box-shadow:0 22px 48px rgba(11,37,69,.45)}
.ac-libbtn .ic{width:17px;height:17px;color:#FF6B73}
.ac-libarrow{transition:transform .18s var(--ease)}
.ac-libbtn:hover .ac-libarrow{transform:translateX(4px)}
.ac-libcta p{color:var(--muted);font-size:.8rem;margin:10px 0 0;font-family:var(--mono)}
.acfee-note{font-size:.76rem;color:var(--muted);line-height:1.5;margin-bottom:8px}
.actd-page{border:1px solid var(--line);border-radius:0;background:var(--card);padding:16px;margin-bottom:18px;box-shadow:var(--raise);opacity:0;transform:translateY(10px)}
.actd-page.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.actdp-pre{align-self:center;font-family:var(--mono);font-size:.78rem;color:var(--muted);white-space:nowrap}
.acad-shelfgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.acad-shelfcat{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:4px;padding:9px 12px;font-size:.86rem;cursor:pointer;background:var(--bg)}
.acad-shelfcat i{color:var(--emerald-ink);font-style:normal;font-size:.6rem}
.acci-foot{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:12px;align-items:end;margin:26px clamp(10px,4vw,26px) 10px;padding-top:18px;border-top:1px dashed rgba(255,107,115,.35)}
@media(max-width:560px){.acci-foot{grid-template-columns:1fr;gap:18px;align-items:center}.accf-cell{min-height:0}}
.accf-cell{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:64px;justify-content:flex-end}
.accf-seal{max-height:84px;max-width:120px;object-fit:contain}
.accf-code b{font-family:var(--mono);letter-spacing:.02em;color:#8FB0FF;font-size:clamp(.68rem,2.9vw,.95rem);white-space:nowrap;max-width:100%}
.accf-code span,.accf-sign span{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.accf-sign img{max-height:52px;max-width:150px;object-fit:contain;filter:brightness(1.1)}
.accf-sign b{font-size:.84rem}
.acad-updrow{display:flex;gap:8px}
.acad-updrow .inp{flex:1;min-width:0}
.acad-ev{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:.84rem}
.acad-ev span{color:var(--muted);font-family:var(--mono);font-size:.76rem}
/* ---- SHARP EDITORIAL INK ---- */
.btn{border-radius:4px;border:1.5px solid var(--inkb);box-shadow:none}
.btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.btn:active{transform:scale(.98)}
.acx-pill,.lib-search,.acg-cat,.acg-free,.acg-paid,.amp-badge,.acn-cat,.acl-type,.acqr-badge,.acci-verified,.eyebrow,.acg-view,.actdi-tier,.acad-shelfcat{border-radius:999px!important}
.ach-x{border-radius:50%!important}
.acg-card,.actd-stat,.ac-why-cell,.ac-toolbar,.actc-row,.acad-form,.actd-ms,.actd-earn,.actd-rev,.actd-page,.certv-card,.acr-form,.acl-tli,.actd-id,.acfee,.acc-card,.acl-hero,.md-row{border-width:1.5px;border-color:color-mix(in srgb,var(--inkb) 45%,var(--line))}
.actd-stat,.ac-why-cell{transition:transform .18s var(--ease),box-shadow .18s}
.actd-stat:hover,.ac-why-cell:hover{transform:translateY(-3px)}
.ac-h2{letter-spacing:-.02em}
.ac-morebtn,.ac-libbtn{border-radius:4px}
.lib-suggest{border-radius:0;border:1.5px solid var(--inkb)}
.ac-hero::after,.b30-hero::after,.lib-hero::after,.amp-hero::after,.ac-mentor-band::after,.actd-promo::after,.acl-continue::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
.ac-hero-in,.acmb-in,.lib-hero-in,.amp-in,.actd-promo>*{position:relative;z-index:2}
.ac-marquee{position:relative;z-index:2;margin-top:26px;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);overflow:hidden;padding:10px 0}
.acm-track{display:inline-block;white-space:nowrap;font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55);animation:acmScroll 30s linear infinite}
@keyframes acmScroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.acm-track{animation:none}}
/* ---- EXAM ROOM ---- */
.ac-modal.exam{top:0;bottom:0!important;z-index:400;background:var(--bg);backdrop-filter:none;padding:0;align-items:stretch;justify-content:stretch}
.ac-modal.exam .ac-sheet{max-width:none;width:100%;max-height:none;height:100%;border-radius:0;box-shadow:none;background:var(--bg);padding:0;display:flex;flex-direction:column;overflow:auto}
.ac-modal.exam .ach-x{position:fixed;top:14px;right:16px;z-index:6;background:var(--card);border:1.5px solid var(--line)}
.ac-modal.exam .acq-head{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1.5px solid var(--inkb);padding:16px clamp(16px,4vw,30px);padding-right:74px;margin:0}
.ac-modal.exam .acq-title{font-family:var(--serif);font-size:clamp(1.1rem,2.6vw,1.5rem);letter-spacing:-.01em}
.ac-modal.exam .acq-progress{margin:0;height:5px;border-radius:0;background:color-mix(in srgb,var(--fg) 7%,transparent)}
.ac-modal.exam .acq-progress i{border-radius:0;background:linear-gradient(90deg,rgb(var(--rb-red-solid)),#FF6B73)}
.ac-modal.exam #acqStage{flex:1;width:100%}
.ac-modal.exam .acq-card,.ac-modal.exam .acq-grading,.ac-modal.exam .acq-result{max-width:780px;margin:0 auto;padding:clamp(22px,5vh,48px) clamp(16px,4vw,30px) 40px}
.ac-modal.exam .acq-n{color:var(--brass-ink);font-weight:700}
.ac-modal.exam .acq-q{font-family:var(--serif);font-size:clamp(1.35rem,3.4vw,1.9rem);line-height:1.4;letter-spacing:-.01em;margin:10px 0 26px}
.ac-modal.exam .acq-opt{border:1.5px solid color-mix(in srgb,var(--inkb) 45%,var(--line));border-radius:4px;background:var(--card);padding:16px;font-size:1.02rem;transition:transform .12s var(--ease),border-color .12s,background .12s}
.ac-modal.exam .acq-opt:hover{border-color:var(--inkb);background:color-mix(in srgb,var(--fg) 3%,var(--card))}
.ac-modal.exam .acq-opt.sel{border-color:rgb(var(--rb-red-solid));background:color-mix(in srgb,rgb(var(--rb-red-solid)) 6%,var(--card))}
.ac-modal.exam .acq-opt.sel .acq-key{background:rgb(var(--rb-red-solid));color:#fff}
.ac-modal.exam .acq-key{border-radius:4px;font-family:var(--mono)}
.ac-modal.exam .acq-foot{max-width:780px;margin:0 auto;padding:0 clamp(16px,4vw,30px) 44px;justify-content:flex-end;width:100%;box-sizing:border-box}
.ac-modal.exam .acq-timer{background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:5px 12px 5px 6px}
.ac-modal.exam .acqr-donut{width:170px;height:170px}
.ac-modal.exam .acqr-row{background:var(--card)}
/* ---- BOOK PAGE ---- */
.bk-wrap{display:grid;grid-template-columns:300px 1fr;gap:clamp(22px,5vw,54px);align-items:start;max-width:960px;margin:0 auto;padding:clamp(26px,6vh,60px) 20px 70px}
@media(max-width:720px){.bk-wrap{grid-template-columns:1fr;justify-items:center;text-align:center}}
.bk-coverwrap{position:relative;opacity:0;transform:translateY(12px)}
.bk-coverwrap.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.bk-wrap>div[data-reveal]:last-child{opacity:0;transform:translateY(12px)}
.bk-wrap>div[data-reveal]:last-child.in{opacity:1;transform:none;transition:opacity .5s var(--ease) .08s,transform .5s var(--ease) .08s}
.bk-cover{display:block;width:100%;max-width:300px;border:1.5px solid var(--inkb);box-shadow:var(--raise)}
.bk-free{position:absolute;top:-13px;right:-13px;background:rgb(var(--rb-red-solid));color:#fff;font-weight:800;font-size:.72rem;letter-spacing:.08em;padding:7px 13px;border:1.5px solid var(--inkb);transform:rotate(3deg)}
.bk-crumb{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.bk-crumb a{color:var(--brass-ink)}
.bk-cat{display:inline-block;background:var(--emerald);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;margin-bottom:14px}
.bk-title{font-family:var(--serif);font-size:clamp(1.7rem,4.6vw,2.7rem);letter-spacing:-.02em;margin:0 0 12px;line-height:1.15}
.bk-desc{color:var(--muted);line-height:1.7;margin:0 0 18px;max-width:56ch}
.bk-dl{font-family:var(--mono);font-weight:700;color:var(--emerald-ink);margin-bottom:22px}
.bk-note{font-size:.78rem;color:var(--muted);font-family:var(--mono);margin-top:12px}
.ac-notes-hero{min-height:38vh!important}
.ac-notes-hero .ah-inner{padding:96px 20px 34px}

/* ---- STATUS / STORIES ---- */
.vu-intro{display:flex;gap:9px;font-size:.86rem;line-height:1.5;color:var(--fg);background:linear-gradient(135deg,color-mix(in srgb,var(--emerald) 8%,transparent),color-mix(in srgb,var(--brass) 8%,transparent));border:1px solid color-mix(in srgb,var(--emerald) 20%,var(--line));border-radius:4px;padding:12px 14px;margin-bottom:16px}
.vu-intro .ic{width:18px;height:18px;color:var(--brass);flex:0 0 auto;margin-top:2px}
.vu-drop{display:block;border:2px dashed color-mix(in srgb,var(--emerald) 40%,var(--line));border-radius:0;padding:26px 16px;text-align:center;cursor:pointer;transition:border-color .18s,background .18s;background:color-mix(in srgb,var(--fg) 2%,transparent)}
.vu-drop:hover{border-color:var(--emerald)}
.vu-drop.has{border-style:solid;border-color:var(--emerald);background:color-mix(in srgb,var(--emerald) 6%,transparent)}
.vu-drop-in{display:flex;flex-direction:column;align-items:center;gap:6px}
.vu-ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--emerald);color:#fff}
.vu-ic .ic{width:22px;height:22px;fill:#fff;stroke:none}
.vu-txt{font-weight:700}
.vu-sub{font-size:.78rem;color:var(--muted)}
.vu-progress{height:6px;border-radius:6px;background:color-mix(in srgb,var(--fg) 10%,transparent);margin-top:12px;overflow:hidden;display:none}
.vu-progress.on{display:block}
.vu-bar{height:100%;width:0;background:linear-gradient(90deg,var(--emerald),var(--brass));border-radius:6px;transition:width .2s}
.vs-row{display:grid;grid-template-columns:180px 1fr;gap:14px;background:var(--bg);border:1px solid var(--line);border-radius:0;padding:12px;margin-bottom:10px}
@media(max-width:620px){.vs-row{grid-template-columns:1fr}}
.vs-video{width:100%;border-radius:4px;background:#000;max-height:220px}
.vs-meta{display:flex;flex-direction:column;gap:6px;min-width:0}
.vs-title{font-weight:700}
.vs-kind{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;background:color-mix(in srgb,var(--emerald) 14%,transparent);color:var(--emerald-ink);padding:2px 7px;border-radius:999px;margin-left:6px}
.vs-by{font-size:.85rem;color:var(--muted)}
.vs-handles{font-family:var(--mono);font-size:.74rem;color:var(--muted)}
.vs-link{width:100%}
.vs-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
/* ---- STATUS / STORIES ---- */
.status-strip{border-bottom:1px solid var(--line);background:var(--bg)}
.status-scroll{display:flex;gap:14px;overflow-x:auto;padding:14px 16px;max-width:var(--maxw);margin:0 auto;scrollbar-width:none}
.status-scroll::-webkit-scrollbar{display:none}
.st-item{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;width:72px;background:none;border:0;cursor:pointer;padding:0;text-decoration:none;color:var(--fg)}
.st-ring{width:66px;height:66px;border-radius:50%;padding:3px;display:grid;place-items:center;background:linear-gradient(135deg,#3B6FD9,#8A2BE2 45%,rgb(var(--rb-red-solid)));position:relative}
.st-item.seen .st-ring{background:color-mix(in srgb,var(--fg) 22%,transparent)}
.st-ring-add{background:color-mix(in srgb,var(--fg) 18%,transparent)}
.st-thumb,.st-dp{width:100%;height:100%;border-radius:50%;overflow:hidden;background:var(--card);display:grid;place-items:center;border:2px solid var(--bg)}
.st-thumb img,.st-dp img{width:100%;height:100%;object-fit:cover}
.st-dp .ic{width:24px;height:24px;color:var(--muted)}
.st-plus{position:absolute;right:-1px;bottom:-1px;width:22px;height:22px;border-radius:50%;background:var(--emerald);border:2px solid var(--bg);display:grid;place-items:center}
.st-plus .ic{width:13px;height:13px;color:#fff}
.st-name{font-size:.72rem;color:var(--muted);max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.story-viewer{position:fixed;inset:0;z-index:420;background:#08101c;display:none;flex-direction:column}
.story-viewer.open{display:flex}
.sv-bars{display:flex;gap:5px;padding:12px 14px 4px;position:relative;z-index:3}
.sv-bar{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.28);overflow:hidden}
.sv-bar i{display:block;height:100%;width:0;background:#fff;border-radius:3px}
.sv-top{display:flex;align-items:center;gap:10px;padding:6px 14px 10px;position:relative;z-index:3}
.sv-brand{height:22px;display:flex;align-items:center}
.sv-brand img{height:22px;width:auto}
.sv-time{color:rgba(255,255,255,.8);font-size:.82rem}
.sv-close{margin-left:auto;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;display:grid;place-items:center}
.sv-close .ic{width:22px;height:22px}
.sv-stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#08101c}
.sv-img-el{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;display:block}
.sv-loader{position:absolute;width:38px;height:38px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;animation:spin 1s linear infinite;z-index:1}
.sv-yt{position:absolute;inset:0}
.sv-yt iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;aspect-ratio:9/16;min-height:100%;border:0}
.sv-cap{position:absolute;left:0;right:0;bottom:96px;z-index:2;text-align:center;color:#fff;font-size:1.05rem;font-weight:600;padding:0 24px;text-shadow:0 2px 14px rgba(0,0,0,.7)}
.sv-nav{position:absolute;top:64px;bottom:90px;width:35%;background:transparent;border:0;cursor:pointer;z-index:2}
.sv-prev{left:0}.sv-next{right:0}
.sv-cta{position:absolute;left:0;right:0;bottom:26px;z-index:3;text-align:center;display:none}
.sv-cta-btn{display:inline-block;padding:12px 22px;border-radius:999px;background:linear-gradient(135deg,#0B2545,#3B6FD9 70%,rgb(var(--rb-red-solid)));color:#fff;font-weight:700;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.sv-cta-btn.ghost{background:rgba(255,255,255,.16);backdrop-filter:blur(6px)}
@media (min-width:1024px){
  .story-viewer{align-items:center}
  .story-viewer .sv-stage,.story-viewer .sv-bars,.story-viewer .sv-top,.story-viewer .sv-cta{max-width:440px;width:100%;margin-left:auto;margin-right:auto}
  .story-viewer{display:none}
  .story-viewer.open{display:flex}
}
/* ---- SHORTS (vertical YouTube clone) ---- */
.shorts-stage{position:relative;height:calc(100dvh - var(--header-h) - var(--nav-h));overflow-y:scroll;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#000;margin-bottom:calc(var(--nav-h) * -1)}
.shorts-stage::-webkit-scrollbar{display:none}
@media (min-width:1024px){.shorts-stage{height:calc(100dvh - var(--header-h))}}
.short-slide{scroll-snap-align:start;scroll-snap-stop:always;height:calc(100dvh - var(--header-h) - var(--nav-h));position:relative;background:#000;overflow:hidden}
@media (min-width:1024px){.short-slide{height:calc(100dvh - var(--header-h))}}
.short-frame{position:absolute;inset:0;overflow:hidden;background:#000}
.short-frame .short-mount{position:absolute;inset:0}
.short-frame iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(1.35);width:100%;height:auto;aspect-ratio:9/16;min-height:100%;border:0;pointer-events:none}
.short-tap{position:absolute;inset:0;z-index:3;border:0;background:transparent;cursor:pointer;padding:0;touch-action:pan-y;-webkit-tap-highlight-color:transparent}
@media (min-width:1024px){
  .short-slide{display:flex;align-items:center;justify-content:center}
  .short-frame{position:relative;inset:auto;width:auto;height:100%;aspect-ratio:9/16;max-height:100%;border-radius:0;box-shadow:0 20px 60px rgba(0,0,0,.6)}
  .short-frame iframe{width:100%;height:100%;aspect-ratio:auto;min-height:0;transform:translate(-50%,-50%) scale(1.32)}
}
.short-rail{position:fixed;right:10px;bottom:calc(var(--nav-h) + 18px);z-index:40;display:flex;flex-direction:column;gap:14px;align-items:center}
@media (min-width:1024px){.short-rail{bottom:28px;right:max(18px,calc(50vw - 190px - 70px))}}
.short-rail .sr-nav,.short-rail .sr-soc{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:0;cursor:pointer;color:#fff;background:rgba(20,20,26,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 14px rgba(0,0,0,.35);transition:transform .12s var(--ease),background .18s}
.short-rail .sr-nav:hover,.short-rail .sr-soc:hover{transform:scale(1.08);background:rgba(20,20,26,.78)}
.short-rail .sr-nav:active{transform:scale(.94)}
.short-rail .sr-nav .ic{width:24px;height:24px}
.short-rail .sr-nav[data-dir="down"] .ic{transform:rotate(180deg)}
.short-rail .sr-soc .ic{width:22px;height:22px}
.short-rail .sr-soc{margin-top:0}
.short-rail .wa{background:rgba(37,211,102,.92)}
.short-rail .tg{background:rgba(42,171,238,.92)}
.short-rail .fb{background:rgba(24,119,242,.92)}
.short-rail .li{background:rgba(10,102,194,.92)}
.short-rail .x{background:rgba(20,20,26,.9)}
.short-rail .sr-soc.wa:hover{background:rgba(37,211,102,1)}
.short-rail .sr-soc.tg:hover{background:rgba(42,171,238,1)}
.short-rail .sr-soc.fb:hover{background:rgba(24,119,242,1)}
.short-rail .sr-soc.li:hover{background:rgba(10,102,194,1)}
.short-rail .sr-soc.x:hover{background:#000}
/* ---- VIDEOS ---- */
.vid-hero{min-height:44vh!important}
.vid-hero .ah-inner{padding:96px 20px 40px}
.vid-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:8px}
@media (max-width:560px){.vid-grid{grid-template-columns:1fr}}
.vid-card{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:0;overflow:hidden;cursor:pointer;padding:0;box-shadow:var(--raise);transition:transform .16s var(--ease),box-shadow .18s;display:flex;flex-direction:column}
.vid-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(11,37,69,.16)}
.vc-thumb{position:relative;display:block;aspect-ratio:16/9;background:#000;overflow:hidden}
.vc-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.vc-play{position:absolute;inset:0;margin:auto;width:58px;height:58px;border-radius:50%;background:rgb(var(--rb-red-solid) / .92);display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.4);transition:transform .16s var(--ease)}
.vid-card:hover .vc-play{transform:scale(1.08)}
.vc-play .ic{width:26px;height:26px;fill:#fff;stroke:none;margin-left:3px}
.vc-title{padding:13px 15px 15px;font-weight:600;font-size:.98rem;line-height:1.35;color:var(--fg)}
.vid-player{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center}
.vid-player.open{display:flex}
.vid-player:fullscreen{background:#000}
.vid-player:-webkit-full-screen{background:#000}
.vid-player .vp-frame{width:100%;max-width:min(96vw,calc((100vh - 20px) * 16 / 9));aspect-ratio:16/9}
.vid-player:fullscreen .vp-rotate{width:100%;height:100%}
.vid-player:fullscreen .vp-frame{width:100%;height:100%;max-width:100vw;aspect-ratio:auto}
.vid-player .vp-frame iframe{width:100%;height:100%;border:0;border-radius:4px}
.vid-player:fullscreen .vp-frame iframe{border-radius:0}
.vid-player .vp-rotate{width:100%;display:flex;align-items:center;justify-content:center;padding:10px}
.vp-close{position:absolute;top:14px;right:14px;z-index:5;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;display:grid;place-items:center}
.vp-close:hover{background:rgba(255,255,255,.26)}
.vp-close .ic{width:24px;height:24px}
@media (max-width:820px) and (orientation:portrait){
  .vid-player .vp-rotate{transform:rotate(90deg);transform-origin:center}
  .vid-player .vp-frame{width:calc(100vh - 20px);max-width:none}
}

.cta-band{background:var(--ink);color:#F2EFE9;border-radius:var(--r-lg);padding:clamp(28px,5vw,52px);margin:28px 0;text-align:center}
html[data-theme="dark"] .cta-band{border:1px solid var(--line)}
.cta-band h2{font-size:clamp(1.6rem,4vw,2.4rem);color:#fff}
.cta-band p{color:#B7C0CF;max-width:46ch;margin:12px auto 0}
.cta-band .hero-cta{justify-content:center}
.cta-band .btn-ghost{background:var(--brass);color:#fff;border-color:var(--brass)}
.cta-band .btn-ghost:hover{filter:brightness(1.1)}

.page-head{padding:34px 0 8px}
.page-head .kicker{font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.page-head h1{font-size:clamp(1.9rem,5vw,3rem);margin-top:10px}
.page-head p{color:var(--muted);max-width:56ch;margin:12px 0 0;font-size:1.05rem}
.empty{background:var(--card);border:1px dashed color-mix(in srgb,var(--emerald) 32%,var(--line));border-radius:var(--r-lg);padding:clamp(26px,5vw,48px);text-align:center;margin:24px 0}
.empty .em-ic{width:46px;height:46px;border-radius:0;display:grid;place-items:center;margin:0 auto 14px;background:color-mix(in srgb,var(--emerald) 12%,transparent);color:var(--emerald-ink)}
.empty .em-ic .ic{width:24px;height:24px}
.empty h3{font-size:1.35rem}
.empty p{color:var(--muted);max-width:44ch;margin:10px auto 18px}

.foot{border-top:1px solid var(--line);margin-top:30px;padding:28px 0 40px}
.foot .foot-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.foot .row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between}
.foot .links{display:flex;flex-wrap:wrap;gap:8px}
.foot .links a{font-size:.86rem;color:var(--muted);padding:6px 10px;border:1px solid var(--line);border-radius:999px}
.foot .meta{font-size:.82rem;color:var(--muted)}
.foot .meta b{color:var(--emerald-ink)}
.crafted{display:inline-flex;align-items:center;gap:5px;font-size:.86rem;color:var(--muted);font-weight:500}
.cwl-heart{display:inline-block;color:rgb(var(--rb-red-solid));font-size:1.05em;animation:heartbeat 1.1s ease-in-out infinite}
.socials{display:flex;gap:8px;flex-wrap:wrap}
.social-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line);color:var(--muted);transition:all .16s var(--ease)}
.social-btn:hover{border-color:var(--emerald);color:var(--emerald-ink);transform:translateY(-2px)}
.social-btn .ic{width:17px;height:17px}

[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* ---- CALCULATORS ---- */
.calc-shell{padding:8px 20px 10px}
.calc-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 14px;scrollbar-width:none}
.calc-tabs::-webkit-scrollbar{display:none}
.calc-tab{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:11px 16px;border-radius:4px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .14s var(--ease),border-color .18s,color .18s,background .18s}
.calc-tab .ic{width:18px;height:18px}
.calc-tab:hover{transform:translateY(-2px)}
.calc-tab[aria-selected="true"]{color:#fff;background:var(--emerald);border-color:var(--emerald);box-shadow:0 6px 16px rgba(11,37,69,.28)}
.calc-panel{display:none}
.calc-panel.active{display:grid;grid-template-columns:1fr 1fr;gap:18px;animation:cfade .4s var(--ease)}
@keyframes cfade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (max-width:880px){.calc-panel.active{grid-template-columns:1fr}}
.calc-controls{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--raise)}
.field{margin-bottom:20px}.field:last-child{margin-bottom:0}
.field .flabel{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.field .flabel span{font-size:.92rem;font-weight:600;color:var(--fg)}
.field .vchip{font-family:var(--mono);font-size:.92rem;font-weight:600;color:var(--emerald-ink);background:color-mix(in srgb,var(--emerald) 10%,transparent);border:1px solid color-mix(in srgb,var(--emerald) 22%,var(--line));border-radius:4px;padding:5px 10px;min-width:96px;text-align:right}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--emerald) 0%,var(--emerald) var(--fill,40%),var(--line) var(--fill,40%));outline-offset:4px;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--card);border:3px solid var(--emerald);box-shadow:0 2px 8px rgba(11,37,69,.35);transition:transform .12s var(--ease)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.18)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--card);border:3px solid var(--emerald);box-shadow:0 2px 8px rgba(11,37,69,.35)}
.field .ticks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.7rem;color:var(--muted);margin-top:7px}
.calc-result{background:var(--ink);color:#F2EFE9;border-radius:var(--r-lg);padding:24px;box-shadow:var(--raise);display:flex;flex-direction:column;position:relative;overflow:hidden}
html[data-theme="dark"] .calc-result{border:1px solid var(--line)}
.calc-result::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 100% 0,rgba(59,111,217,.34),transparent 60%),radial-gradient(80% 70% at 0 100%,rgb(var(--rb-red-solid) / .20),transparent 55%);pointer-events:none}
.calc-result .rlabel{position:relative;font-size:.84rem;color:#B7C0CF;font-weight:600}
.calc-result .rbig{position:relative;font-size:clamp(2.3rem,7vw,3.4rem);font-weight:600;line-height:1.04;margin:6px 0 2px;color:#fff;transition:transform .18s var(--ease)}
.calc-result .rbig.pulse{transform:scale(1.03)}
.calc-result .rsub{position:relative;font-size:.92rem;color:#cdd5e1}
.donut-wrap{position:relative;display:grid;place-items:center;margin:18px auto 6px}
.donut{transform:rotate(-90deg)}
.donut circle{fill:none;stroke-linecap:round;transition:stroke-dashoffset .7s var(--ease)}
.donut .track{stroke:rgba(255,255,255,.12)}
.donut .arc1{stroke:var(--emerald)}.donut .arc2{stroke:var(--brass)}
.donut-mid{position:absolute;text-align:center}
.donut-mid .dm-v{font-family:var(--mono);font-weight:600;font-size:1.1rem;color:#fff}
.donut-mid .dm-k{font-size:.66rem;color:#B7C0CF;text-transform:uppercase;letter-spacing:.1em}
.legend{position:relative;display:flex;gap:16px;flex-wrap:wrap;margin-top:6px}
.legend .lg{display:flex;align-items:center;gap:8px;font-size:.86rem;color:#cdd5e1}
.legend .dot{width:11px;height:11px;border-radius:3px}
.legend .dot.e{background:var(--emerald)}.legend .dot.b{background:var(--brass)}
.legend .v{font-family:var(--mono);color:#fff;font-weight:600;margin-left:2px}
.share-row{position:relative;margin-top:auto;padding-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.share-row .btn-wa{flex:1 1 auto;justify-content:center}
.share-row .btn-copy{flex:0 0 auto;min-width:96px;justify-content:center}
.btn-wa{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 18px;border-radius:4px;background:#25D366;color:#06351b;font-weight:700;font-size:.96rem;border:0;cursor:pointer;transition:transform .12s var(--ease),filter .18s}
.btn-wa:hover{filter:brightness(1.04)}.btn-wa:active{transform:translateY(1px) scale(.99)}.btn-wa .ic{width:19px;height:19px}
.btn-copy{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 16px;border-radius:4px;background:rgba(255,255,255,.08);color:#fff;font-weight:600;border:1px solid rgba(255,255,255,.18);cursor:pointer;transition:background .18s}
.btn-copy:hover{background:rgba(255,255,255,.14)}
.assume{font-size:.78rem;color:var(--muted);margin-top:14px;line-height:1.5}

/* ---- AUTH ---- */
.auth-wrap{min-height:calc(100vh - var(--header-h) - 80px);display:grid;place-items:center;padding:28px 18px}
.auth-card{width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--raise);padding:30px 26px;position:relative;overflow:hidden}
.auth-card .badge-spark{display:none}
.progress{display:flex;gap:6px;margin-bottom:22px}
.progress i{height:5px;flex:1;border-radius:999px;background:var(--line);transition:background .3s var(--ease)}
.progress i.on{background:var(--emerald)}
.auth-h{font-size:1.7rem;margin-bottom:6px}
.auth-sub{color:var(--muted);font-size:.96rem;margin-bottom:22px}
.step{display:none}.step.active{display:block;animation:sfade .35s var(--ease)}
@keyframes sfade{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.lbl{display:block;font-size:.86rem;font-weight:600;margin:0 0 8px}
.inp{width:100%;height:52px;padding:0 14px;border-radius:4px;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-size:1.05rem;font-family:var(--sans);transition:border-color .18s,box-shadow .18s}
.inp:focus{outline:none;border-color:var(--emerald);box-shadow:0 0 0 4px color-mix(in srgb,var(--emerald) 14%,transparent)}
textarea.inp{height:auto;padding:12px 14px;resize:vertical;min-height:84px;line-height:1.5}
.phone-row{display:flex;gap:10px}
.cc{display:flex;align-items:center;gap:6px;height:52px;padding:0 14px;border-radius:4px;border:1.5px solid var(--line);background:var(--bg);font-weight:600;color:var(--muted);white-space:nowrap}
.handle-row{position:relative}
.handle-row .at{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-family:var(--mono)}
.handle-row .inp{padding-left:30px;font-family:var(--mono)}
.avail{font-size:.82rem;margin-top:8px;font-weight:600;min-height:1.2em}
.avail.ok{color:var(--emerald-ink)}.avail.no{color:var(--alert)}.avail.idle{color:var(--muted)}
.consent{display:flex;gap:11px;align-items:flex-start;margin:18px 0 4px;font-size:.9rem;color:var(--muted);line-height:1.45;cursor:pointer}
.feature-toggle{display:flex;gap:12px;align-items:flex-start;margin:14px 0 4px;padding:14px 16px;border-radius:0;cursor:pointer;background:linear-gradient(135deg,color-mix(in srgb,var(--emerald) 8%,transparent),color-mix(in srgb,var(--brass) 8%,transparent));border:1px solid color-mix(in srgb,var(--emerald) 22%,var(--line))}
.feature-toggle input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--brass)}
.feature-toggle .ft-title{display:flex;align-items:center;gap:7px;font-weight:700;color:var(--fg);font-size:.94rem}
.feature-toggle .ft-title .ic{width:16px;height:16px;color:var(--brass)}
.feature-toggle .ft-sub{display:block;margin-top:4px;font-size:.82rem;color:var(--muted);line-height:1.45}
.consent input{width:22px;height:22px;margin-top:1px;accent-color:var(--emerald);flex:0 0 auto;cursor:pointer}
.field-gap{margin-bottom:16px}
.otp-row{display:flex;gap:9px;justify-content:space-between;margin:4px 0 6px}
.otp-box{width:100%;aspect-ratio:1/1.15;max-width:54px;text-align:center;font-family:var(--mono);font-size:1.5rem;font-weight:600;border-radius:4px;border:1.5px solid var(--line);background:var(--bg);color:var(--fg)}
.otp-box:focus{outline:none;border-color:var(--emerald);box-shadow:0 0 0 4px color-mix(in srgb,var(--emerald) 14%,transparent)}
.otp-box.filled{border-color:var(--emerald)}
.err{color:var(--alert);font-size:.86rem;font-weight:600;margin:10px 0 0;min-height:1.1em}
.muted-row{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:.88rem;color:var(--muted)}
.linkbtn{background:0;border:0;color:var(--emerald-ink);font:inherit;font-weight:600;cursor:pointer;padding:0}
.linkbtn[disabled]{color:var(--muted);cursor:default}
.dev-banner{margin:0 0 18px;padding:11px 14px;border-radius:4px;background:color-mix(in srgb,var(--brass) 16%,transparent);border:1px solid color-mix(in srgb,var(--brass) 40%,var(--line));font-size:.86rem;color:var(--brass-ink);font-weight:600}
.dev-banner b{font-family:var(--mono);font-size:1.05rem}
.spin{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.success{text-align:center;padding:10px 0}
.success .seal{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:linear-gradient(135deg,var(--emerald),#0a4d39);color:#fff;box-shadow:0 14px 36px rgba(11,37,69,.42);animation:seal .5s var(--ease) both}
.success .seal .ic{width:46px;height:46px;stroke-width:2.4}
@keyframes seal{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
.success h2{font-size:1.7rem;margin-bottom:8px}
.success p{color:var(--muted);margin-bottom:10px}
.badge-pop{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;background:color-mix(in srgb,var(--brass) 16%,transparent);border:1px solid color-mix(in srgb,var(--brass) 42%,var(--line));color:var(--brass-ink);font-weight:700;font-size:.9rem;margin:6px 0 20px;animation:seal .5s .25s var(--ease) both}
.badge-pop .ic{width:18px;height:18px}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:300}
/* ---- my contributions engagement ---- */
.mp-impact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}
.mp-imp{background:var(--card);border:1px solid var(--line);padding:16px 14px;text-align:center;box-shadow:var(--raise);position:relative;overflow:hidden}
.mp-imp::before{content:'';position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#0B2545,rgb(var(--rb-red-solid)))}
.mp-imp .v{font-family:var(--serif,Georgia);font-weight:800;font-size:1.7rem;color:var(--fg)}
.mp-imp .k{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.mp-delta{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:.7rem;font-weight:700;color:#0A7D4F;background:rgba(6,214,160,.14);padding:3px 8px;animation:mpGlow 2.2s ease-in-out infinite}
@keyframes mpGlow{0%,100%{box-shadow:0 0 0 0 rgba(6,214,160,.35)}50%{box-shadow:0 0 0 5px rgba(6,214,160,0)}}
.mp-proof{display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--emerald) 7%,var(--card));border:1px solid var(--line);border-left:3px solid var(--emerald-ink);padding:12px 14px;font-size:.86rem;margin:0 0 16px}
.mp-proof .ic{width:18px;height:18px;color:var(--emerald-ink);flex:0 0 auto}
.mp-frame{display:block;font-size:.76rem;color:var(--muted);margin-top:8px;text-align:center;background:color-mix(in srgb,var(--emerald) 5%,transparent);padding:7px 10px}
.mp-frame b{color:var(--emerald-ink)}
.mp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);margin:6px 0 2px;background:color-mix(in srgb,var(--fg) 2%,transparent)}
.mps{display:flex;flex-direction:column;align-items:center;gap:3px;padding:11px 6px;border-right:1px solid var(--line);min-width:0}
.mps:last-child{border-right:0}
.mps .ic{width:15px;height:15px;color:var(--muted)}
.mps b{font-family:var(--serif,Georgia);font-weight:800;font-size:1.06rem;color:var(--fg);line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mps span{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.mp-deltarow{margin-top:8px}
.mp-actions-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.mp-actions-row .btn{flex:1 1 0;justify-content:center;min-width:88px;white-space:nowrap}
.mp-graph{background:var(--card);border:1px solid var(--line);box-shadow:var(--raise);padding:16px 16px 12px;margin:0 0 16px;color:var(--fg)}
.mpg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.mpg-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.mpg-t b{display:inline-flex;align-items:center;gap:7px;font-family:var(--serif,Georgia);font-size:1.05rem}
.mpg-t b .ic{width:17px;height:17px;color:var(--brass)}
.mpg-t span{font-size:.74rem;color:var(--muted)}
.mpg-chips{display:flex;gap:6px;flex-wrap:wrap}
.mpg-chip{border:1px solid var(--line);background:none;color:var(--muted);font-size:.72rem;font-weight:700;padding:6px 11px;cursor:pointer;font-family:inherit;transition:all .15s var(--ease)}
.mpg-chip:hover{color:var(--fg);border-color:var(--fg)}
.mpg-chip.on{background:var(--emerald);border-color:var(--emerald);color:#fff}
.mpg-stage{position:relative;margin:8px 0 4px}
.mpg-stage svg{display:block;width:100%;height:clamp(160px,28vw,250px)}
.mpg-end{position:absolute;top:2px;right:0}
.mpg-endchip{display:inline-block;border:1.5px solid;font-size:.72rem;font-weight:800;padding:4px 9px;background:var(--card)}
.mpg-ranges{margin-top:8px;justify-content:center}
@media(max-width:560px){.mpg-chip{padding:5px 8px;font-size:.66rem}.mp-graph{padding:12px 10px 10px}}
.mp-boost{display:inline-flex;align-items:center;gap:6px;margin-top:8px;border:1px dashed #E58A00;color:#B36B00;background:rgba(255,166,0,.09);font-size:.74rem;font-weight:700;padding:6px 10px;cursor:pointer;font-family:inherit}
.mp-boost .ic{width:14px;height:14px}
.mp-boost:hover{background:rgba(255,166,0,.18)}
.mp-pop{display:inline-block;animation:mpPop .6s var(--ease)}
@keyframes mpPop{0%{transform:scale(1)}40%{transform:scale(1.45);color:#0A7D4F}100%{transform:scale(1)}}
.mp-trygrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.mp-try{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);padding:16px;text-decoration:none;color:var(--fg);box-shadow:var(--raise);transition:transform .16s var(--ease),box-shadow .2s}
.mp-try:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(11,37,69,.16)}
.mp-try-ic .ic{width:22px;height:22px;color:var(--brass)}
.mp-try b{font-size:.95rem}
.mp-try>span:not(.mp-try-ic):not(.mp-try-go){font-size:.8rem;color:var(--muted)}
.mp-try-go{font-size:.8rem;font-weight:700;color:var(--brass);margin-top:2px}
.mp-academy{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:26px;padding:20px;background:linear-gradient(135deg,#0B2545,#12305E 60%,#31166b);color:#fff;box-shadow:0 16px 38px rgba(11,37,69,.35)}
.mp-acad-txt{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 260px}
.mp-acad-k{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.mp-acad-k .ic{width:15px;height:15px}
.mp-academy b{font-size:1.05rem}
.mp-acad-txt>span:last-child{font-size:.84rem;color:rgba(255,255,255,.82)}
.mp-mile{position:fixed;inset:0;z-index:220;display:grid;place-items:center;background:rgba(8,15,31,.72);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}
.mp-mile.open{opacity:1;pointer-events:auto}
.mp-mile-sheet{position:relative;width:min(420px,calc(100vw - 32px));background:var(--card);padding:34px 26px 22px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.5);transform:translateY(14px) scale(.97);transition:transform .3s var(--ease)}
.mp-mile.open .mp-mile-sheet{transform:none}
.mp-mile-burst{font-size:3rem;animation:mpBounce 1s var(--ease)}
@keyframes mpBounce{0%{transform:scale(.2) rotate(-16deg)}55%{transform:scale(1.25)}100%{transform:scale(1)}}
.mp-mile-big{font-family:var(--serif,Georgia);font-weight:800;font-size:1.9rem;margin-top:8px;background:linear-gradient(90deg,#0B2545,rgb(var(--rb-red-solid)));-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme=dark] .mp-mile-big{background:linear-gradient(90deg,#7FA5FF,#FF6B75);-webkit-background-clip:text;background-clip:text}
.mp-mile-sub{font-size:.9rem;color:var(--muted);margin:8px 0 18px}
.mp-mile-actions{display:flex;flex-direction:column;gap:8px}
.mp-sheet{position:fixed;inset:0;z-index:230;display:grid;place-items:end center;background:rgba(8,15,31,.55);opacity:0;pointer-events:none;transition:opacity .22s}
.mp-sheet.open{opacity:1;pointer-events:auto}
.mp-sheet-in{width:min(460px,100vw);background:var(--card);padding:20px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -18px 50px rgba(0,0,0,.4)}
.mp-sheet-t{font-weight:700;margin-bottom:12px}
.mp-sheet-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px;margin-bottom:12px}
.mp-sh{display:grid;place-items:center;padding:12px 6px;font-size:.78rem;font-weight:700;text-decoration:none;color:#fff;border:0;cursor:pointer;font-family:inherit}
.mp-sh.wa{background:#25D366}.mp-sh.x{background:#0f1419}.mp-sh.li{background:#0A66C2}.mp-sh.tg{background:#229ED9}.mp-sh.cp{background:var(--emerald)}
.um-bar{display:grid;grid-template-columns:1fr 200px;gap:10px}
@media(max-width:560px){.um-bar{grid-template-columns:1fr}}
.um-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 0 2px}
.um-dp{width:42px;height:42px;flex:0 0 auto;border-radius:50%;overflow:hidden;background:var(--emerald);color:#fff;display:grid;place-items:center;font-family:var(--serif,Georgia)}
.um-dp img{width:100%;height:100%;object-fit:cover}
/* ---- profile trophy-case additions ---- */
.pbadge.locked{opacity:.55;filter:grayscale(.6);border-style:dashed}
.pbadge.locked i{font-style:normal;font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;background:var(--mist);padding:1px 5px;margin-left:4px}
.prof-impact{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0;padding:16px 18px;background:linear-gradient(120deg,color-mix(in srgb,var(--emerald) 8%,var(--card)),var(--card));border:1px solid var(--line);border-left:4px solid var(--brass);text-decoration:none;color:var(--fg);box-shadow:var(--raise);transition:transform .16s var(--ease),box-shadow .2s}
.prof-impact:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(11,37,69,.16)}
.prof-impact .pi-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.prof-impact .pi-txt b{font-size:.98rem}
.prof-impact .pi-txt>span:last-child{font-size:.8rem;color:var(--muted)}
.prof-impact .pi-arrow{font-size:1.4rem;color:var(--brass);flex:0 0 auto;transition:transform .16s var(--ease)}
.prof-impact:hover .pi-arrow{transform:translateX(4px)}
.prof-grow{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:0 0 16px}
.pg-card{display:flex;flex-direction:column;gap:8px;background:var(--card);border:1px dashed var(--line);padding:16px}
.pg-card b{display:inline-flex;align-items:center;gap:7px;font-size:.92rem}
.pg-card b .ic{width:17px;height:17px;color:var(--emerald-ink)}
.pg-card>span{font-size:.8rem;color:var(--muted)}
.pg-card .btn{align-self:flex-start}
.prof-academy{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 18px;padding:18px 20px;background:linear-gradient(135deg,#0B2545,#12305E 60%,#31166b);color:#fff;box-shadow:0 14px 34px rgba(11,37,69,.3)}
.prof-academy .pa-txt{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 260px}
.prof-academy .pa-k{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.prof-academy .pa-k .ic{width:14px;height:14px}
.prof-academy b{font-size:1.02rem}
.prof-academy .pa-txt>span:last-child{font-size:.82rem;color:rgba(255,255,255,.82)}
.prof-academy .pa-btns{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.prof-academy .pa-ghost{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.4);color:#fff}
.prof-academy .pa-ghost:hover{background:rgba(255,255,255,.2)}
@media(max-width:520px){.prof-academy .pa-btns{width:100%}.prof-academy .pa-btns .btn{flex:1 1 100%;justify-content:center}}
@media(max-width:560px){.mp-impact{gap:8px}.mp-imp{padding:12px 8px}.mp-imp .v{font-size:1.3rem}.mp-imp .k{font-size:.62rem}}

/* ---- PROFILE ---- */
.prof-cover{height:210px;width:100%;background:linear-gradient(120deg,var(--emerald),#0a4d39 60%,#0E1726);position:relative;overflow:hidden}
@media (max-width:760px){.prof-cover{height:148px}}
.prof-cover img{width:100%;height:100%;object-fit:cover}
.prof-cover::after{content:"";position:absolute;inset:0;background:radial-gradient(90% 120% at 90% 0,rgb(var(--rb-red-solid) / .24),transparent 60%)}
.prof-head{display:flex;align-items:flex-end;gap:16px;padding:0 2px;position:relative;z-index:1}
.prof-dp-wrap{position:relative;width:112px;margin-top:-46px;flex:0 0 auto}
.prof-dp{width:112px;height:112px;border-radius:30px;border:4px solid var(--bg);background:linear-gradient(135deg,var(--emerald),#0a4d39);display:grid;place-items:center;color:#fff;font-size:2.5rem;font-weight:700;box-shadow:var(--raise);overflow:hidden}
.prof-dp img{width:100%;height:100%;object-fit:cover}
.prof-id{min-width:0;padding-bottom:6px}
.prof-meta-line{color:var(--muted);font-size:.9rem;margin:14px 2px 0}
.prof-id h1{font-size:1.5rem;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.verified-tick{display:inline-flex;vertical-align:middle;color:#1D9BF0}
.verified-tick svg{width:19px;height:19px;display:block}
.role-pill{font-size:.72rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.role-pill.expert{color:var(--brass-ink);border-color:color-mix(in srgb,var(--brass) 46%,var(--line));background:color-mix(in srgb,var(--brass) 12%,transparent)}
.role-pill.admin{color:#fff;background:var(--ink);border-color:var(--ink)}
.prof-hd{font-family:var(--mono);color:var(--emerald-ink);font-size:.95rem;margin-top:2px}
.prof-meta{color:var(--muted);font-size:.9rem;margin-top:6px}
.prof-bio{margin:16px 2px 0;color:var(--fg);font-size:1.02rem;line-height:1.55}
.prof-actions{display:flex;gap:10px;margin:18px 2px 0;flex-wrap:wrap}
.prof-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.prof-actions-grid .btn{justify-content:center;width:100%}
@media (min-width:720px){.prof-actions-grid{grid-template-columns:repeat(3,1fr)}}
.prof-signout{margin:26px 2px 0;display:flex;justify-content:center}
.prof-signout .btn{min-width:220px;justify-content:center}
.prof-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:22px 0 0}
@media (max-width:620px){.prof-stats{grid-template-columns:repeat(3,1fr)}}
.pstat{background:var(--card);border:1px solid var(--line);border-radius:0;padding:15px 10px;text-align:center}
.pstat .v{font-family:var(--mono);font-weight:600;font-size:1.4rem}
.pstat .k{font-size:.72rem;color:var(--muted);margin-top:3px}
.pbadges{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 0}
/* ---- Achievement shareable cards ---- */
.ach-wrap{margin:30px 0 0}
.ach-head{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}
.ach-head .ach-sub{color:var(--muted);font-size:.86rem}
.ach-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.ach-card{position:relative;overflow:hidden;border:0;cursor:pointer;border-radius:0;padding:18px 16px 16px;min-height:210px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;color:#fff;text-align:left;box-shadow:var(--raise);transition:transform .16s var(--ease),box-shadow .2s}
.ach-card::before{content:"";position:absolute;inset:0 0 auto 0;height:70px;background:linear-gradient(180deg,rgba(6,12,24,.5),rgba(6,12,24,0));pointer-events:none}
.ach-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(11,37,69,.28)}
.ach-card.level{background:linear-gradient(160deg,#0A1526 0%,#0B1D3A 26%,#3B6FD9 78%,#0C1E3C 100%)}
.ach-card.rank{background:linear-gradient(160deg,#0A1526 0%,#0B1D3A 26%,rgb(var(--rb-red-solid)) 82%,#0C1E3C 100%)}
.ach-card.points{background:linear-gradient(160deg,#0A1526 0%,#0B1D3A 26%,#5B8DEF 80%,#0C1E3C 100%)}
.ach-card.followers{background:linear-gradient(160deg,#0A1526 0%,#0B1D3A 26%,#3B6FD9 80%,#0C1E3C 100%)}
.ach-card.streak{background:linear-gradient(160deg,#0A1526 0%,#0B1D3A 26%,#FF7A18 80%,#0C1E3C 100%)}
.ach-card.articles{background:linear-gradient(160deg,#0A1526 0%,#0B1D3A 26%,#7C5CFC 80%,#0C1E3C 100%)}
.ach-card.verified{background:linear-gradient(160deg,#0A1526 0%,#0B1D3A 26%,#12B76A 80%,#0C1E3C 100%)}
.ach-card.expert{background:linear-gradient(160deg,#0A1526 0%,#0B1D3A 26%,#E11D74 80%,#0C1E3C 100%)}
.ach-card .ac-emoji{position:absolute;top:12px;right:14px;font-size:1.5rem;opacity:.95;z-index:1}
.ach-card .ac-label{position:relative;z-index:1;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;opacity:.9;margin-bottom:4px}
.ach-card .ac-big{position:relative;z-index:1;font-family:var(--serif);font-weight:700;font-size:1.75rem;line-height:1.05}
.ach-card .ac-share-tag{position:relative;z-index:1;display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:.74rem;font-weight:700;background:rgba(255,255,255,.2);padding:5px 11px;border-radius:999px}
.ach-card .ac-share-tag .ic{width:13px;height:13px}
.ach-card .ac-hint{position:relative;z-index:1;margin-top:8px;font-size:.68rem;line-height:1.35;opacity:.85}
.ach-card.locked{filter:grayscale(.55) brightness(.72);cursor:default}
.ach-card.locked:hover{transform:none;box-shadow:var(--raise)}
.ach-card .ac-lock{position:absolute;top:12px;left:14px;z-index:2;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.4);display:grid;place-items:center}
.ach-card .ac-lock .ic{width:16px;height:16px;color:#fff}
.ach-modal{position:fixed;inset:0;z-index:420;background:rgba(6,10,20,.82);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:18px}
.ach-modal.open{display:flex}
.ach-sheet{background:var(--card);border-radius:0;max-width:400px;width:100%;padding:16px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.5);max-height:94vh;overflow:auto}
.ach-x{position:absolute;top:12px;right:12px;z-index:2;width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.35);color:#fff;cursor:pointer;display:grid;place-items:center}
.ach-x .ic{width:20px;height:20px}
.ach-preview{position:relative;border-radius:0;overflow:hidden;background:#0B1220;aspect-ratio:1080/1350}
.ach-preview canvas{width:100%;height:100%;display:block}
.ach-busy{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(11,18,32,.6);color:#fff}
.ach-busy.on{display:flex}
.ach-busy .ic{width:34px;height:34px;animation:spin 1s linear infinite}
.ach-share-lbl{font-weight:700;font-size:.9rem;margin:14px 2px 8px}
.ach-share-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px;scrollbar-width:none}
.ach-share-row::-webkit-scrollbar{display:none}
.ach-sh{position:relative;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:transparent;cursor:pointer;font-size:.72rem;font-weight:600;width:66px}
.ach-sh span{color:var(--muted)}
.ach-sh .ic{width:24px;height:24px;color:#fff;padding:12px;border-radius:0;box-sizing:content-box;background:var(--sc,#25D366)}
.ach-sh.loading .ic{opacity:.6;animation:spin 1s linear infinite}
.pbadge{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:4px;border:1px solid var(--line);background:var(--card);font-weight:600;font-size:.88rem}
.pbadge.brass{color:var(--brass-ink);border-color:color-mix(in srgb,var(--brass) 40%,var(--line))}
.pbadge .ic{width:17px;height:17px;color:var(--emerald-ink)}
.editbox{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;margin:18px 0 0;display:none}
.editbox.open{display:block;animation:cfade .3s var(--ease)}

.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 18px);transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 18px;border-radius:4px;font-size:.9rem;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease);z-index:200}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media (min-width:1024px){.toast{bottom:24px}}

/* ---- PUBLISH COMPOSER ---- */
.pub-types{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
@media (max-width:680px){.pub-types{grid-template-columns:1fr}}
.ptype{text-align:left;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:22px;cursor:pointer;transition:transform .16s var(--ease),border-color .18s,box-shadow .18s;box-shadow:var(--raise);color:var(--fg);font-family:inherit}
.ptype:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--emerald) 40%,var(--line));box-shadow:0 16px 36px rgba(14,23,38,.12)}
.ptype .pic{width:46px;height:46px;border-radius:0;display:grid;place-items:center;margin-bottom:14px;background:color-mix(in srgb,var(--emerald) 14%,transparent);color:var(--emerald-ink)}
.ptype.alert .pic{background:color-mix(in srgb,var(--alert) 14%,transparent);color:var(--alert)}
.ptype.vid .pic{background:color-mix(in srgb,var(--emerald) 14%,transparent);color:var(--emerald-ink)}
.ptype h3{font-size:1.2rem;margin-bottom:6px;color:var(--fg)}
.ptype p{color:var(--muted);font-size:.92rem;margin:0}
.pub-form{display:none;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--raise);margin-top:6px}
.pub-form.active{display:block;animation:cfade .35s var(--ease)}
.pf-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.pf-head .pic{width:40px;height:40px;border-radius:4px;display:grid;place-items:center;background:color-mix(in srgb,var(--emerald) 12%,transparent);color:var(--emerald-ink);flex:0 0 auto}
.pf-head.alert .pic{background:color-mix(in srgb,var(--alert) 12%,transparent);color:var(--alert)}
.pf-head h2{font-size:1.35rem}
.pf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.pf-grid{grid-template-columns:1fr}}
.selectwrap{position:relative}
.selectwrap select{appearance:none;width:100%;height:52px;padding:0 40px 0 14px;border-radius:4px;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-size:1rem;font-family:var(--sans);cursor:pointer}
.selectwrap select:focus{outline:none;border-color:var(--emerald);box-shadow:0 0 0 4px color-mix(in srgb,var(--emerald) 14%,transparent)}
.selectwrap::after{content:"";position:absolute;right:16px;top:50%;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.pf-foot{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.pf-foot .btn{flex:1 1 0;min-width:140px;justify-content:center}
.pub-success{text-align:center;padding:26px 0;display:none}
.pub-success.active{display:block;animation:cfade .4s var(--ease)}
.pub-success .seal{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:linear-gradient(135deg,var(--emerald),#0a4d39);color:#fff;box-shadow:0 14px 36px rgba(11,37,69,.42);animation:seal .5s var(--ease) both}
.pub-success .seal .ic{width:42px;height:42px;stroke-width:2.4}
.pub-success h2{font-size:1.6rem;margin-bottom:8px}
.pub-success p{color:var(--muted);max-width:42ch;margin:0 auto 18px}

/* ---- WALLS: shared ---- */
.wall-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:6px 0 18px}
.searchbar{position:relative;margin:6px 0 20px}
.searchbar input{width:100%;height:52px;padding:0 16px 0 46px;border-radius:0;border:1.5px solid var(--line);background:var(--card);color:var(--fg);font-size:1rem}
.searchbar input:focus{outline:none;border-color:var(--emerald);box-shadow:0 0 0 4px color-mix(in srgb,var(--emerald) 14%,transparent)}
.searchbar .si{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted)}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:14px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{white-space:nowrap;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-weight:600;font-size:.86rem;cursor:pointer;transition:all .16s var(--ease)}
.chip[aria-pressed="true"]{background:var(--emerald);border-color:var(--emerald);color:#fff}

/* rates */
.rate-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--raise);transition:transform .16s var(--ease),box-shadow .18s}
.rate-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(14,23,38,.1)}
.rate-card .rc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.rate-card .rc-prod{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--emerald-ink)}
.rate-card .rc-bank{font-size:1.15rem;font-weight:600;font-family:var(--serif);margin-top:2px}
.rate-card .rc-city{font-size:.86rem;color:var(--muted)}
.rate-card .rc-avg{font-family:var(--mono);font-weight:600;font-size:2rem;color:var(--fg);text-align:right;line-height:1}
.rate-card .rc-avg small{font-size:.5em;color:var(--brass-ink)}
.rate-card .rc-meta{display:flex;justify-content:space-between;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}
.rate-card .rc-meta b{font-family:var(--mono);color:var(--fg)}
.gatecard{background:var(--ink);color:#F2EFE9;border-radius:var(--r-lg);padding:clamp(28px,5vw,44px);text-align:center;margin:18px 0;position:relative;overflow:hidden}
.gatecard::before{content:"";position:absolute;inset:0;background:radial-gradient(100% 80% at 50% 0,rgb(var(--rb-red-solid) / .20),transparent 60%)}
.gatecard .lock{width:54px;height:54px;border-radius:0;display:grid;place-items:center;margin:0 auto 16px;background:rgba(255,255,255,.1);color:var(--brass)}
.gatecard h2{color:#fff;font-size:1.6rem;position:relative}
.gatecard p{color:#B7C0CF;max-width:44ch;margin:10px auto 20px;position:relative}
html[data-theme="light"] .gatecard{background:linear-gradient(150deg,#ffffff 0%,#F2F6FF 45%,#E9F0FF 80%,#F6F9FF 100%);border:1px solid #DCE5F5;color:#0B2545;box-shadow:0 12px 30px rgba(11,37,69,.10)}
html[data-theme="light"] .gatecard::before{background:radial-gradient(100% 80% at 50% 0,rgb(var(--rb-red-solid) / .09),transparent 60%)}
html[data-theme="light"] .gatecard h2{color:#0B2545}
html[data-theme="light"] .gatecard p{color:#4A5A74}
html[data-theme="light"] .gatecard .lock{background:rgba(11,37,69,.07)}

/* confession */
.confess-card{position:relative;background:linear-gradient(150deg,color-mix(in srgb,var(--tone) 9%,var(--card)),var(--card) 62%);border:1px solid color-mix(in srgb,var(--tone) 26%,var(--line));border-radius:18px;padding:22px;box-shadow:var(--raise);overflow:hidden;--tone:#3B6FD9}
.confess-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--tone),transparent 78%)}
.confess-card:nth-child(6n+1){--tone:#3B6FD9}.confess-card:nth-child(6n+2){--tone:#E11D74}.confess-card:nth-child(6n+3){--tone:#0E9F6E}
.confess-card:nth-child(6n+4){--tone:#7C5CFC}.confess-card:nth-child(6n+5){--tone:#E8730B}.confess-card:nth-child(6n+6){--tone:#0891B2}
.confess-card .cc-cat{display:inline-block;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--tone);background:color-mix(in srgb,var(--tone) 10%,transparent);border:1px solid color-mix(in srgb,var(--tone) 32%,var(--line));border-radius:999px;padding:3px 10px;margin-bottom:12px}
.confess-card .cc-body{font-size:1.05rem;line-height:1.6;color:var(--fg)}
.confess-card .cc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:.82rem;color:var(--muted)}

/* scam */
.scam-card{position:relative;background:linear-gradient(150deg,color-mix(in srgb,var(--tone) 9%,var(--card)),var(--card) 62%);border:1px solid color-mix(in srgb,var(--tone) 26%,var(--line));border-radius:18px;padding:22px;box-shadow:var(--raise);overflow:hidden;--tone:rgb(var(--rb-red-solid))}
.scam-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--tone),transparent 78%)}
.scam-card:nth-child(6n+1){--tone:rgb(var(--rb-red-solid))}.scam-card:nth-child(6n+2){--tone:#3B6FD9}.scam-card:nth-child(6n+3){--tone:#7C5CFC}
.scam-card:nth-child(6n+4){--tone:#0E9F6E}.scam-card:nth-child(6n+5){--tone:#E8730B}.scam-card:nth-child(6n+6){--tone:#E11D74}
.scam-card .sc-tag.amt{color:var(--tone);border-color:color-mix(in srgb,var(--tone) 40%,var(--line))}
.scam-card .sc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.scam-card .sc-type{font-size:1.2rem;font-weight:600;font-family:var(--serif)}
.scam-card .sc-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.scam-card .sc-tag{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 9px}
.scam-card .sc-tag.amt{color:var(--alert);border-color:color-mix(in srgb,var(--alert) 36%,var(--line))}
.scam-card h4{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 5px}
.scam-card p{margin:0;color:var(--fg);font-size:.96rem;line-height:1.55}
.scam-card .sc-share{margin-top:16px;display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 15px;border-radius:4px;background:#25D366;color:#06351b;font-weight:700;font-size:.9rem;border:0;cursor:pointer}
.scam-card .sc-share .ic{width:17px;height:17px}
.sc-share{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:10px;background:#25D366;color:#06351b;font-weight:700;font-size:.86rem;border:0;cursor:pointer;white-space:nowrap;transition:filter .15s var(--ease),transform .15s var(--ease)}
.sc-share:hover{filter:brightness(.95);transform:translateY(-1px)}
.sc-share .ic{width:16px;height:16px}
.fc-foot .sc-share{height:36px;padding:0 15px;font-size:.82rem;border-radius:9px}
.fc-has-img .fc-foot .sc-share{background:rgba(255,255,255,.92);color:#08131f}
.scw-modal{position:fixed;inset:0;z-index:120;background:rgba(6,12,24,.72);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:20px}
.scw-modal.on{display:flex}
.scw-inner{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;max-width:390px;width:100%;position:relative;max-height:92vh;overflow:auto}
.scw-x{position:absolute;top:10px;right:12px;background:0;border:0;font-size:1.7rem;line-height:1;color:var(--muted);cursor:pointer}
.scw-prev{position:relative;border-radius:14px;overflow:hidden;background:#0B1220;aspect-ratio:1080/1920}
.scw-prev canvas{width:100%;height:100%;display:block}
.scw-busy{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(11,18,32,.6);color:#fff}
.scw-busy.on{display:flex}
.scw-acts{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.scw-acts .btn{flex:1;min-width:150px;justify-content:center}
.scw-note{font-size:.8rem;color:var(--muted);margin:10px 0 0;line-height:1.55}

/* ---- ADMIN ---- */
.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:6px 0 22px}
.admin-stats .adm-wrap2{--admbar:var(--card)}
.adm-topbar{position:sticky;top:0;z-index:30;background:var(--admbar);border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(11,37,69,.04)}
.adm-topbar-in{max-width:var(--maxw);margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.adm-brand{display:flex;flex-direction:column;line-height:1.1;flex:none}
.adm-brand-k{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.adm-brand-n{font-family:var(--serif);font-size:1.05rem;font-weight:700}
.adm-tools{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}
.adm-find{position:relative;flex:1;min-width:190px}
.adm-find input{width:100%;height:36px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:inherit;padding:0 12px 0 34px;font-size:.85rem}
.adm-find input:focus{outline:0;border-color:color-mix(in srgb,var(--emerald) 45%,var(--line))}
.adm-find-ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);display:grid}
.adm-find-ic .ic{width:15px;height:15px}
.adm-ext{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);text-decoration:none;font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap}
.adm-ext:hover{border-color:color-mix(in srgb,var(--fg) 22%,var(--line))}
.adm-ext .ic{width:15px;height:15px}
.adm-ext-ai{border-color:color-mix(in srgb,rgb(var(--rb-blue-ink)) 45%,var(--line));color:rgb(var(--rb-blue-ink))}
.adm-ext-out{color:rgb(var(--rb-red-ink));border-color:color-mix(in srgb,rgb(var(--rb-red-ink)) 34%,var(--line))}
.adm-chips{max-width:var(--maxw);margin:0 auto;padding:0 20px 10px;display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.adm-chips::-webkit-scrollbar{height:4px}
.adm-chips::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.adm-chip{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--fg);font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap;flex:none;transition:background .12s,color .12s,border-color .12s}
.adm-chip:hover{border-color:color-mix(in srgb,var(--fg) 24%,var(--line))}
.adm-chip.on{background:var(--navy,#0B2545);border-color:var(--navy,#0B2545);color:#fff}
.adm-chip .ic{width:15px;height:15px;opacity:.85}
.adm-chip.hide{display:none}
.adm-body{padding-top:16px;padding-bottom:40px}
.adm-sec{display:none}
.adm-sec.on{display:block;animation:admFade .18s var(--ease)}
@keyframes admFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:760px){
  .adm-topbar-in{padding:9px 14px;gap:10px}
  .adm-brand{flex:1 0 auto}
  .adm-tools{width:100%;margin-left:0}
  .adm-find{min-width:0;flex:1 1 100%;order:-1}
  .adm-ext span{display:none}
  .adm-ext{padding:0 11px}
  .adm-chips{padding:0 14px 9px}
}
.astat{min-width:0}
@media (max-width:680px){.admin-stats{grid-template-columns:repeat(2,1fr)}}
.astat{background:var(--card);border:1px solid var(--line);border-radius:0;padding:16px}
.astat .v{font-family:var(--mono);font-weight:600;font-size:1.7rem;line-height:1}
.astat .k{font-size:.78rem;color:var(--muted);margin-top:5px}
.astat.warn{border-color:color-mix(in srgb,var(--brass) 40%,var(--line))}
.astat.warn .v{color:var(--brass-ink)}
.mod-row{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-bottom:12px}
.mod-row .mr-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.mod-row .mr-type{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--emerald) 12%,transparent);color:var(--emerald-ink)}
.mod-row .mr-type.scam{background:color-mix(in srgb,var(--alert) 12%,transparent);color:var(--alert)}
.mod-row .mr-who{font-size:.82rem;color:var(--muted)}
.mod-row .mr-body{font-size:.96rem;color:var(--fg);line-height:1.55;white-space:pre-wrap}
.mod-row .mr-body b{font-family:var(--mono);color:var(--emerald-ink)}
.mod-row .mr-act{display:flex;gap:10px;margin-top:14px;align-items:center;flex-wrap:wrap}
.mod-row .mr-note{flex:1;min-width:160px;height:42px;padding:0 12px;border-radius:4px;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-size:.9rem}
.btn-approve{height:42px;padding:0 16px;border-radius:4px;border:0;background:var(--emerald);color:#fff;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.btn-reject{height:42px;padding:0 16px;border-radius:4px;border:1.5px solid color-mix(in srgb,var(--alert) 50%,var(--line));background:transparent;color:var(--alert);font-weight:600;cursor:pointer}
.btn-approve .ic{width:16px;height:16px}
/* ---- ADMIN USER MANAGEMENT ---- */
.usr-search-wrap{background:var(--card);border:1px dashed color-mix(in srgb,var(--emerald) 32%,var(--line));border-radius:var(--r-lg);padding:20px 22px;margin-bottom:18px}
.usr-search-wrap h3{font-size:1.1rem;margin-bottom:12px}
.usr-card-wrap{margin-bottom:8px}
.usr-edit-form{display:flex;flex-direction:column;gap:8px;padding:12px 14px;margin-top:6px;background:var(--bg);border:1px solid var(--line);border-radius:4px}
.usr-edit-form .inp.sm{height:38px;font-size:.86rem}
/* ---- CONTENT LIBRARY ---- */
.cl-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.cl-tab{padding:7px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--fg);font-size:.84rem;font-weight:600;cursor:pointer}
.cl-tab.active{background:var(--emerald);border-color:var(--emerald);color:#fff}
.md-add{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.md-add .inp{flex:1;min-width:180px}
.md-add #mdTitle{flex:0 1 200px}
.md-list{display:flex;flex-direction:column;gap:8px}
.md-empty{color:var(--muted);font-size:.88rem;padding:10px 2px}
.md-row{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:0;padding:10px 12px}
.md-row .md-meta{min-width:0}
@media(max-width:620px){.md-row{flex-wrap:wrap}.md-row .vs-acts{flex-basis:100%;justify-content:flex-start}}
.md-row.dragging{opacity:.5;border-style:dashed}
.md-row.expired{opacity:.55}
.md-t2{font-weight:600;font-size:.9rem;color:var(--fg)}
.md-grip{cursor:grab;color:var(--muted);font-size:1.05rem;user-select:none;flex:0 0 auto}
.md-thumb{width:72px;height:44px;object-fit:cover;border-radius:8px;flex:0 0 auto;background:#000}
.md-meta{flex:1;min-width:0}
.md-t{width:100%;border:1px solid var(--line);border-radius:4px;padding:7px 10px;font-size:.86rem;background:var(--card);color:var(--fg)}
.md-id{font-family:var(--mono);font-size:.7rem;color:var(--muted);margin-top:3px}
.md-save,.md-del{flex:0 0 auto;border:0;border-radius:4px;padding:8px 12px;font-size:.8rem;font-weight:700;cursor:pointer}
.md-save{background:var(--emerald);color:#fff}
.md-del{background:color-mix(in srgb,var(--brass) 14%,transparent);color:var(--brass-ink)}
@media(max-width:560px){.md-thumb{display:none}}
.cl-item{background:var(--bg);border:1px solid var(--line);border-radius:0;padding:14px;margin-bottom:8px}
.cl-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px}
.cl-item-title{font-weight:600;font-size:.92rem;flex:1}
.cl-item-meta{font-size:.78rem;color:var(--muted);margin-bottom:8px}
.cl-item-acts{display:flex;gap:6px;flex-wrap:wrap}
.cl-edit-form{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:4px}
.cl-edit-form .inp.sm{height:38px;font-size:.86rem}
.usr-results{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.usr-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:0;flex-wrap:wrap}
.usr-card .ua{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--emerald),#0a4d39);display:grid;place-items:center;color:#fff;font-weight:700;font-size:.95rem;flex:0 0 auto;overflow:hidden}
.usr-card .ua img{width:100%;height:100%;object-fit:cover}
.usr-card .ui{flex:1;min-width:160px}
.usr-card .un{font-weight:600;font-size:.92rem}
.usr-card .um{font-size:.76rem;color:var(--muted);margin-top:2px}
.usr-card .uacts{display:flex;gap:6px;flex-wrap:wrap}
.usr-act-btn{padding:5px 11px;border-radius:8px;border:1.5px solid var(--line);background:var(--card);color:var(--fg);font-size:.76rem;font-weight:600;cursor:pointer;transition:all .14s var(--ease);white-space:nowrap}
.usr-act-btn:hover{border-color:var(--emerald);color:var(--emerald-ink)}
.usr-act-btn.active{background:var(--emerald);border-color:var(--emerald);color:#fff}
.usr-act-btn.danger{border-color:color-mix(in srgb,var(--alert) 40%,var(--line));color:var(--alert)}
.usr-act-btn.danger:hover,.usr-act-btn.danger.active{background:var(--alert);border-color:var(--alert);color:#fff}
.usr-act-btn:disabled{opacity:.5;cursor:default}
.export-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
/* ---- SEARCH PAGE ---- */
.search-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);min-height:340px;display:flex;align-items:center;overflow:hidden;color:#fff;background:var(--ink)}
.search-hero .sh-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.search-hero .sh-bg img{width:100%;height:100%;object-fit:cover;animation:heroKen 24s ease-in-out infinite alternate;transform-origin:center}
.search-hero .sh-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,18,32,.5) 0%,rgba(8,18,32,.62) 60%,rgba(8,18,32,.9) 100%)}
.search-hero .sh-inner{position:relative;z-index:2;max-width:760px;width:100%;margin:0 auto;padding:56px 20px}
.search-hero .kicker{font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:#FF6B73}
.search-hero h1{color:#fff;font-size:clamp(2rem,6vw,3.2rem);margin:10px 0 22px;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.search-hero .search-bar-big{margin-bottom:0}
.search-hero .search-bar-big input{height:62px;border-color:transparent;box-shadow:0 14px 40px rgba(0,0,0,.35)}
@media(max-width:760px){.search-hero{min-height:280px}.search-hero .sh-inner{padding:40px 18px}}
@media (prefers-reduced-motion:reduce){.search-hero .sh-bg img{animation:none}}
.search-wrap{max-width:760px;margin:0 auto;padding:28px 20px 48px}
.search-wrap #sResults{margin-top:4px}
.search-wrap .sr-group{margin-top:26px}
.search-wrap .sr-group:first-child{margin-top:0}
.search-bar-big{position:relative;margin-bottom:28px}
.search-bar-big input{width:100%;height:58px;padding:0 56px 0 52px;border-radius:0;border:2px solid var(--line);background:var(--card);color:var(--fg);font-size:1.1rem;font-family:var(--sans);transition:border-color .18s,box-shadow .18s;box-shadow:var(--raise)}
.search-bar-big input:focus{outline:none;border-color:var(--emerald);box-shadow:0 0 0 3px color-mix(in srgb,var(--emerald) 18%,transparent)}
.search-bar-big .si{position:absolute;left:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted)}
.search-bar-big .si .ic{width:22px;height:22px}
.search-bar-big .clr{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:transparent;color:var(--muted);cursor:pointer;display:grid;place-items:center;border-radius:8px;display:none}
.search-bar-big .clr:hover{background:var(--line);color:var(--fg)}
.sr-group{margin-bottom:26px}
.sr-group h3{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 10px;display:flex;align-items:center;gap:8px}
.sr-card{background:var(--card);border:1px solid var(--line);border-radius:0;padding:14px 16px;margin-bottom:8px;transition:transform .15s var(--ease),border-color .15s}
.sr-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--emerald) 30%,var(--line))}
.sr-card a{text-decoration:none;color:inherit;display:block}
.sr-title{font-weight:600;font-size:.98rem;line-height:1.3;margin-bottom:3px}
.sr-meta{font-size:.8rem;color:var(--muted)}
.sr-excerpt{font-size:.88rem;color:var(--muted);margin-top:4px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sr-type-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:color-mix(in srgb,var(--emerald) 12%,transparent);color:var(--emerald-ink);margin-bottom:6px}
.sr-type-pill.rate{background:color-mix(in srgb,var(--brass) 15%,transparent);color:var(--brass-ink)}
.sr-type-pill.scam{background:color-mix(in srgb,var(--alert) 10%,transparent);color:var(--alert)}
.sr-type-pill.confession{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--fg)}
.search-empty{text-align:center;padding:48px 20px;color:var(--muted)}
.search-empty .ic{width:40px;height:40px;opacity:.35;margin:0 auto 12px;display:block}
/* ---- SPLASH (brand logo animation) ---- */
#splash{position:fixed;inset:0;z-index:99999;background:#070B1F;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s,visibility .8s}
#splash.out{opacity:0;visibility:hidden;pointer-events:none}
#lottie-c{width:min(420px,90vw);height:min(745px,160vw);max-height:78vh}
@media(max-width:767px){#lottie-c{width:min(320px,84vw);height:min(568px,150vw)}}
#splash-tagline{position:absolute;bottom:32px;left:0;right:0;font-family:var(--sans);font-size:13px;font-weight:400;color:rgba(255,255,255,.6);letter-spacing:.06em;display:flex;align-items:center;justify-content:center;gap:6px}
#splash-tagline .heartbeat{display:inline-block;color:#E8282C;font-size:16px;animation:heartbeat 1s ease-in-out infinite}
@keyframes heartbeat{0%,100%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.2)}70%{transform:scale(1)}}
/* ---- SETTINGS ---- */
.settings-wrap{max-width:680px;margin:0 auto;padding:0 20px 48px}
.settings-section{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;margin-bottom:16px;box-shadow:var(--raise)}
.settings-section h2{font-family:var(--serif);font-size:1.15rem;margin:0 0 16px}
.danger-zone{background:var(--card);border:1px solid color-mix(in srgb,var(--alert) 35%,var(--line));border-radius:var(--r-lg);padding:22px;margin-bottom:16px}
.danger-zone h2{font-family:var(--serif);font-size:1.15rem;margin:0 0 10px;color:var(--alert)}
.delete-confirm{display:none;margin-top:14px;padding:14px;background:var(--bg);border-radius:4px;border:1px solid var(--line)}
/* ---- NOTIFICATIONS ---- */
.notif-list{display:flex;flex-direction:column}
.notif-item{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.notif-item:last-child{border-bottom:0}
.notif-ic-wrap{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:color-mix(in srgb,var(--emerald) 14%,transparent);display:grid;place-items:center}
.notif-ic-wrap .ic{width:17px;height:17px;color:var(--emerald-ink)}
.notif-ic-wrap.flwr{background:color-mix(in srgb,var(--brass) 14%,transparent)}
.notif-ic-wrap.flwr .ic{color:var(--brass-ink)}
.notif-ic-wrap.bdg{background:color-mix(in srgb,var(--brass) 18%,transparent)}
.notif-body{flex:1;min-width:0}
.notif-txt{font-size:.92rem;line-height:1.4}
.notif-ts{font-size:.77rem;color:var(--muted);margin-top:2px}
/* ---- ADMIN ANALYTICS ---- */
.analytics-wrap{background:var(--card);border:1px dashed color-mix(in srgb,var(--emerald) 32%,var(--line));border-radius:var(--r-lg);padding:20px 22px;margin-bottom:18px}
.analytics-wrap h3{font-size:1.05rem;margin:0 0 14px}
.top-art-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.top-art-row:last-child{border-bottom:0}
.top-art-row a{flex:1;font-size:.88rem;font-weight:500;color:var(--fg);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-art-row a:hover{color:var(--emerald-ink);text-decoration:underline}
.stat-chip{font-family:var(--mono);font-size:.75rem;padding:3px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);white-space:nowrap;flex:0 0 auto}
.admin-login{max-width:400px;margin:40px auto}

/* ---- LEADERBOARD ---- */
.podium{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);gap:10px;align-items:end;margin:10px 0 22px;width:100%;max-width:100%}
.lb-hero{min-height:38vh!important}
.lb-hero .ah-inner{padding:96px 20px 34px}
.pod{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;max-width:100%;min-height:198px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 12px;text-align:center;box-shadow:var(--raise);text-decoration:none;color:var(--fg);transition:transform .16s var(--ease),box-shadow .18s}
.pod:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(11,37,69,.18)}
.pod .pa{width:56px;height:56px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--emerald),#0a4d39);font-size:1.3rem;overflow:hidden}
.pod .pa img{width:100%;height:100%;object-fit:cover}
.pod.first{transform:translateY(-12px);border-color:color-mix(in srgb,var(--brass) 50%,var(--line))}
.pod.first .pa{width:64px;height:64px;background:linear-gradient(135deg,var(--brass),#a01018);box-shadow:0 8px 22px rgb(var(--rb-red-solid) / .4)}
.pod .medal{font-family:var(--mono);font-weight:700;font-size:.78rem;color:var(--brass-ink)}
.pod .pn{font-weight:600;margin-top:5px;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;width:100%}
.pod .pp{font-family:var(--mono);font-weight:600;color:var(--emerald-ink);margin-top:2px;font-size:.92rem}
@media(max-width:600px){.podium{gap:6px}.pod{padding:14px 6px;min-height:168px}.pod.first{transform:translateY(-8px)}.pod .pa{width:46px;height:46px;font-size:1.05rem}.pod.first .pa{width:54px;height:54px}.pod .pn{font-size:.78rem}.pod .pn .verified-tick{transform:scale(.8)}.pod .pp{font-size:.82rem}.pod .medal{font-size:.7rem}}
.rank-list{display:flex;flex-direction:column;gap:8px}
.rank-row{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:0;padding:11px 16px;min-height:68px;text-decoration:none;color:var(--fg);transition:transform .12s var(--ease),border-color .18s,box-shadow .18s}
.rank-row .rinfo{min-width:0;flex:1}
.rank-row .rn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-row .rh{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-row .rp{flex:0 0 auto;text-align:right}
.rank-row:hover{transform:translateX(3px);border-color:color-mix(in srgb,var(--emerald) 35%,var(--line));box-shadow:0 8px 20px rgba(11,37,69,.1)}
.rank-row.me{border-color:var(--emerald);background:color-mix(in srgb,var(--emerald) 7%,var(--card))}
.rank-row .rk{font-family:var(--mono);font-weight:600;color:var(--muted);width:30px;text-align:center;flex:0 0 auto}
.rank-row .ra{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,var(--emerald),#0a4d39);flex:0 0 auto;overflow:hidden}
.rank-row .ra img{width:100%;height:100%;object-fit:cover}
.rank-row .rinfo{flex:1;min-width:0}
.rank-row .rinfo .rn{font-weight:600;display:flex;align-items:center;gap:6px}
.rank-row .rinfo .rn .verified-tick svg{width:15px;height:15px}
.rank-row .rinfo .rh{font-family:var(--mono);font-size:.78rem;color:var(--muted)}
.rank-row .rp{font-family:var(--mono);font-weight:600;font-size:1.02rem;text-align:right}
.rank-row .rp small{display:block;color:var(--muted);font-weight:500;font-size:.66rem}
.lb-tabs{margin-bottom:8px}
.seg-panel{display:none}.seg-panel.active{display:block;animation:cfade .35s var(--ease)}

/* ---- LEVEL BAR ---- */
.lvl{margin:18px 2px 0;background:var(--card);border:1px solid var(--line);border-radius:0;padding:16px 18px}
.lvl-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:10px}
.lvl-top .lt{font-weight:600}.lvl-top .lt b{color:var(--brass-ink)}
.lvl-top .ln{font-size:.8rem;color:var(--muted);font-family:var(--mono);white-space:nowrap}
.bar{height:9px;border-radius:999px;background:var(--line);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--emerald),var(--brass));width:0;transition:width 1s var(--ease)}

/* ---- CHALLENGES ---- */
.chal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.chal-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--raise);display:flex;flex-direction:column}
.chal-card h3{font-size:1.25rem}
.chal-card .ch-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);margin:8px 0 12px}
.chal-card .ch-meta b{font-family:var(--mono);color:var(--fg)}
.chal-card p{color:var(--muted);margin:0;font-size:.95rem;line-height:1.5}
.chal-prog{margin:16px 0 2px}
.chal-prog .cp-top{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-bottom:6px}
.chal-prog .cp-top b{font-family:var(--mono);color:var(--emerald-ink)}
.chal-act{display:flex;gap:10px;margin-top:auto;padding-top:16px;flex-wrap:wrap}
.chal-done{display:inline-flex;align-items:center;gap:8px;color:var(--emerald-ink);font-weight:700;font-size:.92rem;padding-top:16px}
.chal-done .ic{width:18px;height:18px}
.btn.sm{height:42px;padding:0 16px;font-size:.92rem;border-radius:4px}
.btn-wa.sm{height:42px;padding:0 15px;font-size:.9rem}
.create-chal{background:var(--card);border:1px dashed color-mix(in srgb,var(--emerald) 32%,var(--line));border-radius:var(--r-lg);padding:20px 22px;margin-bottom:18px}
.create-chal h3{font-size:1.1rem;margin-bottom:14px}

/* ---- ARTICLE READING ---- */
.read-prog{position:fixed;top:var(--header-h);left:0;height:3px;background:linear-gradient(90deg,var(--emerald),var(--brass));z-index:55;width:0}
.art-hero-full{position:relative;width:100vw;margin-left:calc(50% - 50vw);min-height:54vh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:var(--ink)}
.art-hero-full .art-hero-bg{position:absolute;inset:0;z-index:0}
.art-hero-full .art-hero-bg img{width:100%;height:100%;object-fit:cover}
.art-hero-full .art-hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,18,32,.12) 0%,rgba(8,18,32,.5) 55%,rgba(8,18,32,.96) 100%)}
.art-hero-full .art-hero-content{position:relative;z-index:2;max-width:740px;margin:0 auto;padding:90px 20px 36px;width:100%}
@media(max-width:760px){.art-hero-full{min-height:40vh}.art-hero-full .art-hero-content{padding:76px 18px 28px}}
.art-wrap{max-width:740px;margin:0 auto;padding:28px 20px 0}
.art-eyebrow{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--emerald-ink);padding:5px 12px;border:1px solid color-mix(in srgb,var(--emerald) 30%,var(--line));border-radius:999px}
.art-hero-full .art-eyebrow{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35);color:#fff;backdrop-filter:blur(6px)}
.art-title{font-size:clamp(2rem,5.2vw,3.1rem);margin:16px 0 0;letter-spacing:-.02em}
.art-hero-full .art-title{color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.art-hero-cap{margin:14px 0 0;font-size:.82rem;line-height:1.5;color:rgba(255,255,255,.86);max-width:56ch}
.art-dek{color:var(--muted);font-size:clamp(1.1rem,2.4vw,1.3rem);margin-top:14px;line-height:1.5}
.art-tldr{margin:22px 0 8px;padding-left:16px;border-left:3px solid var(--emerald);color:var(--fg);font-weight:500;font-size:clamp(1.12rem,2.3vw,1.28rem);line-height:1.55}
.ai-tldr-card{background:linear-gradient(135deg,color-mix(in srgb,#1D9BF0 7%,var(--card)),var(--card));border:1px solid color-mix(in srgb,#1D9BF0 22%,var(--line));border-radius:16px;padding:18px 20px;margin:24px 0}
.ai-tldr-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.ai-tldr-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#1D9BF0;background:color-mix(in srgb,#1D9BF0 12%,transparent);padding:4px 11px;border-radius:999px}
.ai-tldr-badge svg{width:13px;height:13px}
.ai-tldr-sub{font-size:.82rem;color:var(--muted);font-style:italic}
.ai-tldr-text{margin:0;font-size:1.02rem;line-height:1.6;color:var(--fg)}
.rel-wrap{margin:30px 0 8px}
.rel-h{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.rel-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:680px){.rel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rel-card{position:relative;display:block;border-radius:16px;overflow:hidden;text-decoration:none;min-height:170px;box-shadow:var(--raise);transition:transform .16s var(--ease),box-shadow .2s}
.rel-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(8,18,32,.18)}
.rel-img{position:absolute;inset:0}.rel-img img{width:100%;height:100%;object-fit:cover}
.rel-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,32,0) 30%,rgba(8,18,32,.82) 100%)}
.rel-body{position:relative;z-index:2;height:100%;min-height:170px;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;color:#fff}
.rel-cat{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#FF6B73;margin-bottom:6px}
.rel-card h4{font-family:var(--serif);font-size:1.15rem;line-height:1.28;margin:0;color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.author-card{display:flex;align-items:flex-start;gap:14px;margin:24px 0;padding:16px 18px;border:1px solid var(--line);border-radius:0;background:var(--card);box-shadow:var(--raise)}
.author-card .aa{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:1.3rem;background:linear-gradient(135deg,var(--emerald),#0a4d39);flex:0 0 auto;overflow:hidden}
.author-card .aa img{width:100%;height:100%;object-fit:cover}
.author-card .ai{min-width:0;flex:1}
.author-card .an{font-weight:600;font-size:1.02rem;display:flex;align-items:center;flex-wrap:wrap;gap:8px;line-height:1.3}
.author-card .ac{font-size:.88rem;color:var(--muted);line-height:1.45;margin-top:4px}
.author-card .ad{font-size:.8rem;color:var(--muted);margin-top:6px;display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.author-card .ad-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.author-card .ad-item .ic{width:14px;height:14px;color:var(--emerald)}
.author-card .ad-dot{color:var(--line)}
@media(max-width:520px){.author-card{flex-wrap:wrap}.author-card .follow-btn{margin-left:auto}}
.art-body{font-size:1.12rem;line-height:1.85;margin-top:8px}
.art-body h2{font-family:var(--serif);font-size:1.7rem;margin:34px 0 12px;letter-spacing:-.01em}
.art-body h3{font-family:var(--serif);font-size:1.35rem;margin:26px 0 10px}
.art-body p{margin:0 0 18px}
.art-body ul,.art-body ol{margin:0 0 18px;padding-left:22px}
.art-body li{margin:6px 0}
.art-body blockquote{margin:22px 0;padding:14px 20px;border-left:3px solid var(--emerald);background:color-mix(in srgb,var(--emerald) 6%,transparent);border-radius:0 12px 12px 0;color:var(--fg)}
.art-body a{color:var(--emerald-ink);text-decoration:underline;text-underline-offset:2px}
.art-body table{width:100%;border-collapse:separate;border-spacing:0;margin:26px 0;font-size:.96rem;line-height:1.6;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--card);box-shadow:var(--raise);display:table}
.art-body table th,.art-body table td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.art-body table th:last-child,.art-body table td:last-child{border-right:0}
.art-body table tr:last-child td{border-bottom:0}
.art-body table th{background:var(--navy,#0B2545);color:#fff;font-weight:700;font-size:.85rem;letter-spacing:.02em;text-transform:uppercase;border-bottom:0;border-right-color:rgba(255,255,255,.16)}
.art-body table tr:nth-child(even) td{background:color-mix(in srgb,var(--emerald) 4%,transparent)}
.art-body table td:first-child{font-weight:600}
.art-body .tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:26px 0}
.art-body .tbl-scroll table{margin:0;min-width:520px}
.art-body h1{font-family:var(--serif);font-size:2rem;margin:36px 0 14px;letter-spacing:-.015em}
.art-body h4{font-family:var(--serif);font-size:1.15rem;margin:22px 0 8px}
.art-body code{font-family:var(--mono);font-size:.9em;background:color-mix(in srgb,var(--fg) 6%,transparent);padding:2px 6px;border-radius:5px}
.art-body pre{background:color-mix(in srgb,var(--fg) 5%,transparent);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;overflow-x:auto;margin:22px 0}
.art-body pre code{background:0;padding:0}
.art-body strong{font-weight:650}
.art-body code{font-family:var(--mono);font-size:.9em;background:color-mix(in srgb,var(--fg) 7%,transparent);padding:1px 6px;border-radius:6px}
.persona-table{margin:34px 0;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--card);box-shadow:var(--raise)}
.persona-table .pt-head{background:var(--ink);color:#fff;padding:16px 20px;display:flex;align-items:center;gap:10px}
.persona-table .pt-head .ic{width:20px;height:20px;color:var(--brass)}
.persona-table .pt-head b{font-family:var(--serif);font-size:1.2rem;font-weight:560}
.persona-row{display:flex;gap:14px;align-items:center;padding:15px 20px;border-top:1px solid var(--line)}
.persona-row .pe{font-size:1.5rem;flex:0 0 auto;width:30px;text-align:center}
.persona-row .pl{font-weight:600;width:120px;flex:0 0 auto;font-size:.95rem}
.persona-row .pv{color:var(--muted);font-size:.96rem}
@media (max-width:560px){.persona-row{flex-wrap:wrap}.persona-row .pl{width:auto}.persona-row .pv{flex-basis:100%}}
.useful-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:30px 0}
.btn-useful{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 18px;border-radius:4px;border:1.5px solid var(--line);background:var(--card);color:var(--fg);font-weight:600;cursor:pointer;transition:all .16s var(--ease)}
.btn-useful:hover{border-color:var(--emerald)}
.btn-useful.done{background:color-mix(in srgb,var(--emerald) 12%,transparent);border-color:var(--emerald);color:var(--emerald-ink)}
.btn-useful .ic{width:18px;height:18px}
.art-meta-row{display:flex;gap:14px;color:var(--muted);font-size:.85rem;font-family:var(--mono);margin-top:18px;flex-wrap:wrap}
.share-count{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.84rem;color:var(--muted)}
.share-count .sc-num{font-weight:700;color:var(--emerald-ink);transition:transform .25s var(--ease)}
.share-count .sc-num.pop{animation:scPop .4s var(--ease)}
@keyframes scPop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.art-sticky-share{position:fixed;left:0;right:0;bottom:0;z-index:58;display:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--card) 96%,transparent);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-top:1px solid var(--line);transform:translateZ(0);-webkit-transform:translate3d(0,0,0);backface-visibility:hidden}
@media(max-width:1023px){.art-sticky-share{display:flex;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}}
.ssb-count{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;flex:0 0 auto}
.ssb-count .num{font-size:1.2rem;font-weight:800;color:var(--emerald-ink);font-family:var(--mono)}
.ssb-count-lbl{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ssb-soc-row{display:flex;gap:8px}
.ssb-soc{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;border:0;cursor:pointer;color:#fff;transition:transform .12s var(--ease),filter .18s}
.ssb-soc:hover{filter:brightness(1.08);transform:translateY(-2px)}
.ssb-soc:active{transform:scale(.94)}
.ssb-soc .ic{width:19px;height:19px}
.ssb-whatsapp{background:#25D366}
.ssb-facebook{background:#1877F2}
.ssb-x{background:#000}
.ssb-linkedin{background:#0A66C2}
.ssb-instagram{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF)}
.share-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:8px 0 26px;padding:16px 18px;border-radius:0;background:var(--card);border:1px solid var(--line)}
.share-strip-lbl{font-weight:600;font-size:.92rem;color:var(--fg)}
.share-strip-btns{display:flex;gap:10px;flex-wrap:wrap}
.share-strip-btns .ssb-soc{width:44px;height:44px}
.eeat-strip{display:flex;align-items:center;gap:10px;margin:24px 0;padding:12px 16px;border-radius:0;background:color-mix(in srgb,var(--emerald) 8%,transparent);border:1px solid color-mix(in srgb,var(--emerald) 24%,var(--line));font-size:.86rem;color:var(--emerald-ink)}
.eeat-strip .ic{width:18px;height:18px;flex:0 0 auto}

/* ---- ARTICLES INDEX + AUTHORS ---- */
.art-card{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--raise);color:#fff;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.art-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,37,69,.22)}
.art-card .card-img{position:absolute;inset:0;z-index:0;margin:0;width:100%;aspect-ratio:auto;background:var(--mist)}
.art-card .card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.art-card:hover .card-img img{transform:scale(1.07)}
.art-card .card-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,18,32,0) 28%,rgba(8,18,32,.62) 68%,rgba(8,18,32,.95) 100%)}
.art-card .card-body{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:18px}
.art-card .ac-cat{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:#FF6B73}
.art-card h3{font-size:1.18rem;margin:6px 0 7px;line-height:1.25;color:#fff;font-family:var(--serif)}
.art-card p{color:rgba(255,255,255,.86);font-size:.86rem;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.art-card .ac-foot{display:flex;align-items:center;gap:9px;padding-top:10px;border-top:1px solid rgba(255,255,255,.25);font-size:.8rem;color:rgba(255,255,255,.85)}
.art-card .ac-foot .aa{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:.78rem;background:rgba(255,255,255,.22);overflow:hidden;flex:0 0 auto}
.art-card .ac-foot .aa img{width:100%;height:100%;object-fit:cover}
.about-intro{max-width:760px}
.about-intro h2{font-family:var(--serif);font-size:1.55rem;margin:0 0 12px;letter-spacing:-.01em}
.about-intro p{font-size:1.04rem;line-height:1.75;margin:0 0 14px}
.wrap .sec-h{max-width:760px;margin-left:0}
.faq-wrap{max-width:760px}
.author-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:14px;align-items:start}
@media(min-width:700px){.author-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.author-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.author-grid .empty{grid-column:1/-1}
.author-tile{display:flex;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--raise);height:100%}
.author-tile>div{min-width:0}
.author-tile .ta{width:64px;height:64px;border-radius:0;display:grid;place-items:center;color:#fff;font-weight:700;font-size:1.5rem;background:linear-gradient(135deg,var(--emerald),#0a4d39);flex:0 0 auto;overflow:hidden}
.author-tile .ta img{width:100%;height:100%;object-fit:cover}
.author-tile h3{font-size:1.2rem;display:flex;align-items:center;gap:7px}
.author-tile .th{font-family:var(--mono);font-size:.82rem;color:var(--emerald-ink)}
.author-tile{text-decoration:none;color:inherit;transition:transform .16s var(--ease),box-shadow .2s,border-color .2s}
.author-tile:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(11,37,69,.14);border-color:color-mix(in srgb,var(--emerald) 35%,var(--line))}
.author-tile .tcount .ic{width:13px;height:13px;vertical-align:-2px;margin-left:2px;opacity:.7}
.author-tile p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:4.1em;color:var(--muted);font-size:.92rem;margin:8px 0 0;line-height:1.5}
.author-tile .tcount{font-family:var(--mono);font-size:.78rem;color:var(--muted);margin-top:8px}

/* ---- ARTICLE EDITOR (EEAT) ---- */
.editor-wrap{max-width:1120px}
.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}
@media (max-width:920px){.editor-grid{grid-template-columns:1fr}}
.ed-main{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--raise)}
.ed-body{min-height:300px;line-height:1.7;font-size:1.05rem;font-family:var(--sans)}
.ed-personas{display:grid;gap:10px;margin-top:6px}
.ed-persona{display:flex;gap:10px;align-items:center}
.ed-persona .pe{font-size:1.3rem;width:28px;text-align:center;flex:0 0 auto}
.ed-persona input{flex:1}
.score-card{position:sticky;top:calc(var(--header-h) + 14px);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--raise)}
.score-ring{position:relative;width:120px;height:120px;margin:0 auto 10px}
.score-ring svg{transform:rotate(-90deg)}
.score-ring circle{fill:none;stroke-width:11;stroke-linecap:round}
.score-ring .sr-track{stroke:var(--line)}
.score-ring .sr-arc{stroke:var(--emerald);transition:stroke-dashoffset .5s var(--ease),stroke .3s}
.score-ring .sr-num{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:1.7rem}
.score-label{text-align:center;font-weight:600;margin-bottom:16px}
.check{display:flex;align-items:flex-start;gap:10px;padding:9px 0;font-size:.9rem;border-top:1px solid var(--line)}
.check:first-of-type{border-top:0}
.check .ck{width:22px;height:22px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;background:var(--line);color:var(--muted);transition:all .2s}
.check.on .ck{background:var(--emerald);color:#fff}
.check .ck .ic{width:13px;height:13px;stroke-width:3}
.check .ctxt{color:var(--muted)}
.check.on .ctxt{color:var(--fg)}
.check .req{font-family:var(--mono);font-size:.64rem;color:var(--brass-ink);text-transform:uppercase;letter-spacing:.08em}
.gate-note{font-size:.82rem;color:var(--muted);margin-top:14px;line-height:1.5}
.topic-chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 0}
.topic-chip{font-size:.82rem;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer}
.topic-chip:hover{border-color:var(--emerald);color:var(--emerald-ink)}

/* ---- PHOTO UPLOAD ---- */
.prof-dp-wrap{position:relative;flex:0 0 auto}
.cam-btn{position:absolute;width:34px;height:34px;border-radius:50%;border:none;background:rgba(14,23,38,.62);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .16s var(--ease),transform .16s var(--ease);z-index:3}
.cam-btn:hover{background:var(--emerald);transform:scale(1.06)}
.cam-btn .ic{width:17px;height:17px}
.cam-cover{top:12px;right:12px}
.cam-dp{bottom:-2px;right:-6px;width:32px;height:32px;border:3px solid var(--bg)}
.upbusy{position:absolute;inset:0;display:none;place-items:center;background:rgba(14,23,38,.45);z-index:4;border-radius:inherit}
.upbusy.on{display:grid}
.upbusy .ic{width:26px;height:26px;color:#fff;animation:spin .7s linear infinite}
.prof-cover .upbusy{border-radius:var(--r-lg)}
@keyframes spin{to{transform:rotate(360deg)}}
.up-hint{font-size:.82rem;color:var(--muted);margin:4px 2px 0}

/* ---- CROP MODAL ---- */
.cropper{position:fixed;inset:0;z-index:200;background:rgba(14,23,38,.74);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:none;place-items:center;padding:20px}
.cropper.on{display:grid;animation:cfade .2s var(--ease)}
.crop-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;width:min(440px,94vw);box-shadow:0 24px 60px rgba(14,23,38,.4)}
.crop-title{font-weight:600;font-size:1.06rem;margin-bottom:4px;text-align:center}
.crop-sub{font-size:.82rem;color:var(--muted);text-align:center;margin-bottom:16px}
.crop-stage{position:relative;overflow:hidden;margin:0 auto;background:#0b111c;border-radius:0;touch-action:none;cursor:grab;user-select:none}
.crop-stage.drag{cursor:grabbing}
.crop-stage.avatar{border-radius:50%}
.crop-stage canvas{display:block;width:100%;height:100%;touch-action:none;-webkit-user-drag:none;user-select:none}
.crop-zoom{display:flex;align-items:center;gap:12px;margin:18px 6px 4px}
.crop-zoom input{flex:1;accent-color:var(--emerald)}
.crop-zoom .zi{color:var(--muted);display:grid;place-items:center;width:20px;flex:0 0 auto}
.crop-zoom .zi .ic{width:18px;height:18px}
.crop-actions{display:flex;gap:10px;margin-top:16px}
.crop-actions .btn{flex:1}

/* ---- WYSIWYG EDITOR ---- */
.wz-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1px solid var(--line);border-bottom:0;border-radius:4px 4px 0 0;background:var(--bg);position:sticky;top:calc(var(--header-h) + 2px);z-index:5}
.wz-btn{height:34px;min-width:36px;padding:0 11px;border:1px solid var(--line);background:var(--card);border-radius:8px;font-size:.85rem;font-weight:600;color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .14s var(--ease)}
.wz-btn:hover{border-color:var(--emerald);color:var(--emerald-ink)}
.wz-btn.on{background:var(--emerald);color:#fff;border-color:var(--emerald)}
.wz-btn .ic{width:15px;height:15px}
.wz-sep{width:1px;background:var(--line);margin:3px 2px}
.wz-editor{border:1px solid var(--line);border-radius:0 0 12px 12px;padding:18px 20px;min-height:420px;line-height:1.75;font-size:1.06rem;overflow-y:auto;max-height:70vh;background:var(--card)}
.wz-editor:focus{outline:none;border-color:var(--emerald)}
.wz-editor:empty:before{content:attr(data-placeholder);color:var(--muted)}
.wz-editor h2{font-family:var(--serif);font-size:1.5rem;margin:20px 0 8px}
.wz-editor h3{font-family:var(--serif);font-size:1.25rem;margin:16px 0 6px}
.wz-editor p{margin:0 0 12px}
.wz-editor blockquote{border-left:3px solid var(--emerald);margin:14px 0;padding:8px 16px;color:var(--muted);background:color-mix(in srgb,var(--emerald) 5%,transparent);border-radius:0 10px 10px 0}
.wz-editor img{max-width:100%;border-radius:4px;margin:10px 0;display:block}
.wz-editor ul,.wz-editor ol{padding-left:24px;margin:10px 0}
.wz-editor li{margin:4px 0}
.wz-editor a{color:var(--emerald-ink);text-decoration:underline}
.counter{float:right;font-family:var(--mono);font-size:.76rem;color:var(--muted);font-weight:500}
.counter.good{color:var(--emerald-ink)}
.counter.over{color:var(--alert)}
.src-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.src-row{display:flex;gap:8px;align-items:center}
.src-row input.sn{flex:0 0 32%;min-width:110px}
.src-row input.su{flex:1;min-width:0}
.src-del{flex:0 0 auto;width:38px;height:46px;border:1px solid var(--line);background:var(--card);border-radius:4px;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer;transition:all .14s var(--ease)}
.src-del:hover{border-color:var(--alert);color:var(--alert)}

/* ---- FEED / EXPLORE / FOLLOW ---- */
.explore-media{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:640px;margin:0 auto 4px}
.explore-media .em-link{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:0;text-decoration:none;color:#fff;box-shadow:var(--raise);transition:transform .15s var(--ease),box-shadow .18s}
.explore-media .em-link:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(11,37,69,.22)}
.explore-media .shorts{background:linear-gradient(135deg,#0B2545 0%,#3B6FD9 55%,rgb(var(--rb-red-solid)) 130%)}
.explore-media .videos{background:linear-gradient(135deg,rgb(var(--rb-red-solid)) 0%,rgb(var(--rb-red-solid-2)) 55%,#0B2545 130%)}
.explore-media .em-ic-wrap{width:42px;height:42px;flex:0 0 auto;border-radius:4px;display:grid;place-items:center;background:rgba(255,255,255,.16)}
.explore-media .em-ic-wrap .ic{width:22px;height:22px;fill:#fff;stroke:none}
.explore-media .em-tx b{display:block;font-size:1.02rem;line-height:1.1}
.explore-media .em-tx small{opacity:.85;font-size:.78rem}
@media(max-width:420px){.explore-media .em-tx small{display:none}}
.feed-tabs{display:flex;gap:8px;margin:0 auto 16px;max-width:640px;position:sticky;top:var(--header-h);z-index:6;padding:10px 0;background:linear-gradient(var(--bg) 72%,transparent)}
.feed-tab{flex:0 0 auto;padding:9px 17px;border:1px solid var(--line);background:var(--card);border-radius:999px;font-weight:600;font-size:.9rem;color:var(--muted);cursor:pointer;transition:all .16s var(--ease)}
.feed-tab:hover{color:var(--fg);border-color:var(--emerald)}
.feed-tab.on{background:var(--emerald);color:#fff;border-color:var(--emerald)}
.feed-list{display:grid;grid-template-columns:1fr;gap:16px;max-width:100%;margin:0 auto;align-items:start}
@media(min-width:720px){.feed-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1060px){.feed-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.feed-list .empty{grid-column:1/-1}
.feed-card{height:100%;display:flex;flex-direction:column}
.feed-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 18px 14px;box-shadow:var(--raise)}
.fc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}
.fc-who{display:flex;align-items:center;gap:9px;color:var(--fg);min-width:0}
.fc-who.muted{color:var(--muted)}
.fc-dp{width:34px;height:34px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--emerald),#0a4d39);display:grid;place-items:center;color:#fff;font-weight:700;font-size:.92rem;flex:0 0 auto}
.fc-dp img{width:100%;height:100%;object-fit:cover}
.fc-dp.anon{background:var(--mist);color:var(--muted)}
.fc-name{font-weight:600;font-size:.94rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:5px}
.fc-name .verified-tick svg{width:14px;height:14px}
.fc-kind{display:inline-flex;align-items:center;gap:5px;font-size:.73rem;font-weight:600;color:var(--muted);background:var(--bg);border:1px solid var(--line);padding:4px 9px;border-radius:999px;white-space:nowrap;flex:0 0 auto}
.fc-kind .ic{width:13px;height:13px}
.fc-kind.alert{color:var(--alert);border-color:color-mix(in srgb,var(--alert) 35%,var(--line))}
.fc-art{display:block;color:var(--fg)}
.fc-art .ac-cat{font-size:.71rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--emerald-ink);margin-bottom:6px}
.fc-art h3{font-family:var(--serif);font-size:1.28rem;line-height:1.28;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fc-art p{color:var(--muted);margin:0}
.fc-foot{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:.8rem;color:var(--muted)}
.fc-has-img{position:relative;overflow:hidden;padding:0}
.fc-img{position:absolute;inset:0;z-index:0}
.fc-img img{width:100%;height:100%;object-fit:cover;display:block}
.fc-img-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,18,32,0) 0%,rgba(8,18,32,.15) 45%,rgba(8,18,32,.82) 100%)}
.fc-img-body{position:relative;z-index:2;min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;color:#fff}
.fc-has-img .fc-kind{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.32);color:#fff;backdrop-filter:blur(4px)}
.fc-has-img .fc-art{color:#fff}
.fc-has-img .fc-art .ac-cat{color:#FF6B73;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.fc-has-img .fc-art p{color:rgba(255,255,255,.86)}
.fc-has-img .fc-foot{color:rgba(255,255,255,.82);border-top:1px solid rgba(255,255,255,.22);padding-top:10px}
.fc-has-img .fc-who{color:#fff}
.fc-foot .follow-btn{margin-left:auto}
.fc-rate-body{display:flex;align-items:center;gap:16px}
.fr-num{font-family:var(--mono);font-size:2rem;font-weight:700;color:var(--emerald-ink);line-height:1}
.fr-num span{font-size:1rem;margin-left:1px}
.fr-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.fr-meta b{font-size:1rem}
.fr-meta span{font-size:.85rem;color:var(--muted)}
.fr-cs{font-family:var(--mono);font-size:.78rem!important}
.fc-scam-body .sc-type{font-weight:700;font-size:1.05rem;margin-bottom:6px}
.fc-scam-body .sc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.fc-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);margin:0 0 8px}
.fc-avoid{font-size:.9rem;background:color-mix(in srgb,var(--emerald) 7%,transparent);border-radius:4px;padding:8px 12px}
.fc-confess-body{font-size:1.02rem;line-height:1.6}
.fc-confess .cc-cat{display:inline-block;margin-bottom:8px}
.follow-btn{flex:0 0 auto;padding:7px 16px;border:1px solid var(--emerald);background:var(--emerald);color:#fff;border-radius:999px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .16s var(--ease);text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.follow-btn:hover{filter:brightness(1.06)}
.follow-btn.on{background:transparent;color:var(--emerald-ink);border-color:var(--line)}
.follow-btn.on:hover{border-color:var(--alert);color:var(--alert)}
.follow-btn:disabled{opacity:.6}
.author-card .follow-btn{margin-left:auto;align-self:flex-start;flex:0 0 auto}
.soc-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.soc-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--muted);background:var(--card);transition:transform .12s var(--ease),color .18s,border-color .18s}
.soc-ic:hover{transform:translateY(-2px);color:var(--emerald);border-color:color-mix(in srgb,var(--emerald) 40%,var(--line))}
.soc-ic .ic{width:17px;height:17px}
.soc-edit{margin:14px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:0;background:color-mix(in srgb,var(--fg) 3%,transparent)}
.soc-input{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.soc-input .ic{width:20px;height:20px;color:var(--muted);flex:0 0 auto}
.soc-input .inp{flex:1}
.prof-actions{margin-left:auto;padding-bottom:6px}
.prof-bio{margin:14px 2px 0;max-width:640px;color:var(--muted)}
.sec-h{font-family:var(--serif);font-size:1.3rem;margin:0 0 6px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}

/* ---- REPORT CARD ---- */
.rc-wrap{max-width:680px;margin:0 auto;padding:0 20px 48px}
.rc-hero{display:flex;align-items:center;gap:24px;padding:22px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--raise);margin-bottom:18px}
.rc-grade-ring{flex:0 0 auto;width:104px;height:104px;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:3rem;font-weight:700;color:#fff;position:relative;transition:background .5s var(--ease)}
.rc-grade-ring.anim{animation:gradeIn .55s var(--ease) both}
@keyframes gradeIn{from{transform:scale(.55);opacity:0}to{transform:scale(1);opacity:1}}
.rc-grade-label{font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.rc-grade-title{font-family:var(--serif);font-size:1.45rem;font-weight:700;line-height:1.15;margin-bottom:6px}
.rc-grade-meta{font-size:.88rem;color:var(--muted);display:flex;flex-direction:column;gap:3px}
.streak-row{display:flex;align-items:center;gap:10px;margin-top:10px}
.streak-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:linear-gradient(120deg,var(--emerald),#0a4d39);color:#fff;border-radius:999px;font-weight:700;font-size:.9rem}
.streak-pill .ic{width:16px;height:16px}
.rc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.rc-stat{background:var(--card);border:1px solid var(--line);border-radius:0;padding:14px 12px;text-align:center}
.rc-stat .v{font-family:var(--mono);font-size:1.35rem;font-weight:700;line-height:1}
.rc-stat .k{font-size:.75rem;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}
.rc-goals{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-bottom:14px}
.rc-goals h3{font-size:1rem;font-weight:700;margin:0 0 12px}
.goal-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.goal-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--emerald);cursor:pointer;flex:0 0 auto}
.goal-row input[type=text]{flex:1;height:44px;padding:0 12px;border-radius:4px;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-size:.95rem;font-family:var(--sans)}
.goal-row input[type=text]:focus{outline:none;border-color:var(--emerald)}
.goal-del{flex:0 0 auto;width:36px;height:44px;border:1px solid var(--line);background:var(--card);border-radius:4px;color:var(--muted);font-size:1.2rem;cursor:pointer;transition:all .14s var(--ease)}
.goal-del:hover{border-color:var(--alert);color:var(--alert)}
.rc-history{margin-top:24px}
.rc-history h2{font-family:var(--serif);font-size:1.2rem;margin:0 0 12px}
.month-grid{display:flex;flex-wrap:wrap;gap:8px}
.month-chip{display:flex;flex-direction:column;align-items:center;padding:10px 14px;border-radius:0;border:1px solid var(--line);background:var(--card);min-width:64px;gap:4px;cursor:default;transition:transform .14s var(--ease)}
.month-chip:hover{transform:translateY(-2px)}
.month-chip .mc-grade{font-family:var(--serif);font-size:1.3rem;font-weight:700;line-height:1}
.month-chip .mc-month{font-size:.7rem;color:var(--muted);font-family:var(--mono)}
.rc-form-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--raise);margin-bottom:14px}
.rc-form-wrap h2{font-family:var(--serif);font-size:1.2rem;margin:0 0 16px}
.rc-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.live-rate{font-family:var(--mono);font-size:1.45rem;font-weight:700;color:var(--emerald-ink);text-align:center;padding:14px;border-radius:0;border:1.5px solid var(--line);background:var(--bg);margin-bottom:12px;transition:color .3s}
.live-rate small{display:block;font-size:.72rem;color:var(--muted);font-family:var(--sans);font-weight:400;margin-top:2px}
.share-card-bar{display:flex;gap:10px;margin-top:14px}
@media(max-width:600px){.rc-row{grid-template-columns:1fr}.rc-stats{grid-template-columns:repeat(2,1fr)}.rc-hero{flex-direction:column;text-align:center;align-items:center}}
.goog-te-banner-frame{display:none!important}
body{top:0!important}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;transform:none}
}


/* =========================================================================
 * AURORA - Bankerpedia's living colour skin.
 *
 * Colour + motion only. Nothing below alters layout, box size, spacing, grid
 * structure, component markup or copy: every declaration touches background,
 * color, border-color, box-shadow or animation.
 *
 * Palette: the logo red is the anchor; sky blue is the trust register; coral,
 * rose, violet, indigo and gold bridge them. The hue ring used everywhere is
 *   gold 38deg - coral 7deg - red 356deg - rose 342deg - violet 255deg
 *   - indigo 228deg - sky 203deg
 * and every gradient pair is adjacent on it, so no interpolation ever crosses
 * the olive / brown zone between warm and cool.
 * ===================================================================== */

@property --rb-hue{syntax:"<angle>";inherits:false;initial-value:0deg}


:root{
  /* --- BRAND HUES. Identical in both themes: these are the colours the brand
         is made of, so every existing rule in the sheet can point at them
         without its appearance changing. --- */
  --rb-red:255 30 45;          /* rgb(var(--rb-red-solid))  the logo red                     */
  --rb-coral:255 107 90;       /* #FF6B5A  community warmth                 */
  --rb-gold:255 176 32;        /* #FFB020  returns / prosperity             */
  --rb-rose:255 74 122;        /* #FF4A7A  bridges red into violet          */
  --rb-violet:124 92 252;      /* #7C5CFC  midpoint of the cool arc         */
  --rb-indigo:75 107 232;      /* #4B6BE8  institutional trust              */
  --rb-indigo-mid:59 111 217;  /* #3B6FD9  the existing mid blue            */
  --rb-sky:29 155 240;         /* #1D9BF0  clarity                          */
  --rb-navy:7 11 31;           /* #070B1F  the dark anchor, unchanged       */
  --rb-panel:10 14 42;         /* #0A0E2A  always-dark panel base           */

  /* --- AURORA TONES. What the animated surfaces actually mix in. In dark mode
         these are lifted (below): at low luminance a raw hue mixed into navy
         loses its chroma and reads as mud. --- */
  --rb-t-red:var(--rb-red);
  --rb-t-coral:var(--rb-coral);
  --rb-t-gold:var(--rb-gold);
  --rb-t-rose:var(--rb-rose);
  --rb-t-violet:var(--rb-violet);
  --rb-t-indigo:var(--rb-indigo);
  --rb-t-sky:var(--rb-sky);

  /* --- role tokens: light --- */
  --rb-bg:252 253 255;
  --rb-surface:255 255 255;
  --rb-ink:10 14 42;
  --rb-ink-dim:75 83 102;
  --rb-line:220 227 245;
  --rb-deep:11 37 69;          /* #0B2545 primary button / deep panel        */

  /* --- accent tokens tuned for contrast, not for looks alone --- */
  --rb-red-solid:214 16 30;    /* #D6101E  red fill under white text  5.3:1 */
  --rb-red-solid-2:184 12 24;  /* #B80C18  its gradient partner             */
  --rb-amber-solid:168 74 10;  /* #A84A0A  amber fill under white text 5.3:1 */
  --rb-red-ink:167 20 30;      /* #A7141E  red TEXT on a TINTED card surface  */
  --rb-red-mark:214 16 30;     /* #D6101E  the brand red, for ICONS and marks */
  --rb-red-nav:196 20 31;      /* #C4141F  the brand red at the brightest value
                                  that still clears AA on the header, drawer and
                                  footer - same hue as the logo, 84% of its value */
  --rb-blue-ink:26 79 172;     /* #1A4FAC  blue TEXT on light surfaces      */
  --rb-coral-ink:255 178 183;  /* #FFB2B7  coral TEXT on dark heroes  4.7:1 */
  --rb-cat-ink:255 178 183;    /* category labels over a media scrim        */

  /* --- aurora mixing controls --- */
  --rb-tint:30%;
  --rb-tint-2:20%;
  --rb-veil:.30;
  --rb-chrome:.94;
  --rb-a:var(--rb-t-red);
  --rb-b:var(--rb-t-rose);
  --rb-dur:26s;
  --rb-phase:0s;
  --rb-ease:cubic-bezier(.45,.05,.55,.95);

  /* --- rewire the sheet's original tokens onto the aurora palette, so the
         whole stylesheet inherits the new colours without a rule of it being
         edited. --rb-panel is deliberately dark in BOTH themes: --ink names
         the dark panel base (.cta-band, .gatecard, .toast), not body text. --- */
  --ink:rgb(var(--rb-panel));
  --surface:rgb(var(--rb-surface));
  --bg:rgb(var(--rb-bg));
  --fg:rgb(var(--rb-ink));
  --card:rgb(var(--rb-surface));
  --line:rgb(var(--rb-line));
  --muted:rgb(var(--rb-ink-dim));
  --mist:rgb(var(--rb-line));
  --emerald:rgb(var(--rb-deep));
  --brass:rgb(var(--rb-red));
  --alert:rgb(var(--rb-red));
  --brass-ink:rgb(var(--rb-red-ink));
  --emerald-ink:rgb(var(--rb-blue-ink));
  --inkb:rgb(var(--rb-deep));
}

html[data-theme="dark"]{
  /* Dark-mode aurora tones are SATURATED, not pale. The instinct is to lighten a
     hue so it survives a dark ground, but a pale hue mixed into navy loses its
     chroma and lands on grey. A fully saturated tone at the same mix ratio keeps
     roughly twice the chroma at a LOWER luminance - so the cards read as real
     colour and the text on them gets more contrast, not less.
     Measured in Oklab: these land at chroma .06-.16 where the pale set managed
     .02-.07. Gold is an orange rather than a yellow for the same reason. */
  --rb-t-red:255 10 34;        /* #FF0A22 -> surface #6B1939 crimson  */
  --rb-t-coral:255 74 20;      /* #FF4A14 -> surface #6B3034 brick    */
  --rb-t-gold:255 168 0;       /* #FFA800 -> surface #6B522D bronze   */
  --rb-t-rose:255 10 92;       /* #FF0A5C -> surface #6B194E plum     */
  --rb-t-violet:106 26 255;    /* #6A1AFF -> surface #361F89 violet   */
  --rb-t-indigo:36 64 255;     /* #2440FF -> surface #1C2D89 indigo   */
  --rb-t-sky:0 140 255;        /* #008CFF -> surface #0F4889 steel    */

  --rb-bg:7 11 31;             /* #070B1F - the anchor, kept exactly         */
  --rb-surface:24 34 70;       /* #182246 - lifted enough to hold real hue   */
  --rb-ink:241 244 255;
  --rb-ink-dim:185 211 254;
  --rb-line:32 44 82;
  --rb-deep:14 32 66;

  --rb-red-ink:255 194 198;
  --rb-red-mark:255 95 107;    /* the same mark, lifted so it reads on dark */
  --rb-red-nav:255 95 107;     /* #FF5F6B on the dark chrome */
  --rb-blue-ink:178 212 255;
  --rb-coral-ink:254 195 188;

  --rb-tint:36%;
  --rb-tint-2:26%;
  --rb-veil:.42;
  --rb-chrome:.92;
  --rb-a:var(--rb-t-red);
  --rb-b:var(--rb-t-rose);

  /* the same rewiring again: the sheet's own html[data-theme="dark"] block
     outranks :root, so every legacy token has to be restated here or dark mode
     would silently keep the old hard-coded hexes. */
  --ink:rgb(var(--rb-panel));
  --surface:rgb(var(--rb-surface));
  --bg:rgb(var(--rb-bg));
  --fg:rgb(var(--rb-ink));
  --card:rgb(var(--rb-surface));
  --line:rgb(var(--rb-line));
  --muted:rgb(var(--rb-ink-dim));
  --mist:rgb(var(--rb-line));
  --emerald:rgb(var(--rb-deep));
  --brass:rgb(var(--rb-red));
  --alert:rgb(var(--rb-red));
  --brass-ink:rgb(var(--rb-red-ink));
  --emerald-ink:rgb(var(--rb-blue-ink));
  --inkb:rgb(var(--rb-deep));
  --inksh:rgba(0,0,0,.75);
  --raise:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.45);
}

/* ---------------------------------------------------------------- motion ---
 * Every loop below moves only background-position, transform or opacity, plus
 * one registered custom property (--rb-hue) that feeds a handful of 3px accent
 * bars. Nothing animates box-shadow blur, filter, or any layout property.
 * Durations are 19-38s and all run in alternate mode on an ease-in-out curve, so the
 * motion slows to a stop at each extreme and never reads as mechanical.
 * -------------------------------------------------------------------------*/
@keyframes rbTide{from{background-position:2% 12%}to{background-position:98% 88%}}
@keyframes rbTideB{from{background-position:96% 86%}to{background-position:4% 14%}}
@keyframes rbFloatA{from{transform:translate3d(-9%,-7%,0)}to{transform:translate3d(11%,9%,0)}}
@keyframes rbHue{from{--rb-hue:-16deg}to{--rb-hue:16deg}}


/* ------------------------------------------------------- page backdrop ---
 * Two blob fields behind everything.
 *
 * ::before is the layer that moves. It drifts by translate3d only - never
 * scale, which would force Chrome to re-raster the layer at every new size -
 * so once it is painted the drift is pure compositor work: no repaint of the
 * page, no layout, no CLS.
 *
 * ::after holds a second, complementary field and is deliberately STATIC, with
 * no transform and no will-change. Measured on the homepage, a second
 * *composited* viewport-sized layer doubled the frame time; the same layer left
 * uncomposited costs nothing. It gives the field its depth; ::before gives it
 * its life. */
html{background-color:rgb(var(--rb-bg))}
body{background-color:transparent}
body::before,body::after{
  content:"";position:fixed;inset:-30%;z-index:-1;pointer-events:none;
}
body::before{
  will-change:transform;backface-visibility:hidden;
  background:
    radial-gradient(30% 34% at 24% 26%,rgb(var(--rb-t-sky) / var(--rb-veil)) 0%,rgb(var(--rb-t-sky) / 0) 68%),
    radial-gradient(27% 31% at 76% 19%,rgb(var(--rb-t-red) / calc(var(--rb-veil) * .85)) 0%,rgb(var(--rb-t-red) / 0) 66%),
    radial-gradient(33% 36% at 72% 76%,rgb(var(--rb-t-violet) / calc(var(--rb-veil) * .9)) 0%,rgb(var(--rb-t-violet) / 0) 70%),
    radial-gradient(29% 33% at 20% 80%,rgb(var(--rb-t-coral) / calc(var(--rb-veil) * .7)) 0%,rgb(var(--rb-t-coral) / 0) 68%);
  animation:rbFloatA 31s var(--rb-ease) infinite alternate;
}
body::after{
  background:
    radial-gradient(36% 40% at 50% 44%,rgb(var(--rb-t-indigo) / calc(var(--rb-veil) * .5)) 0%,rgb(var(--rb-t-indigo) / 0) 74%),
    radial-gradient(31% 35% at 88% 52%,rgb(var(--rb-t-rose) / calc(var(--rb-veil) * .42)) 0%,rgb(var(--rb-t-rose) / 0) 72%),
    radial-gradient(31% 35% at 10% 50%,rgb(var(--rb-t-gold) / calc(var(--rb-veil) * .34)) 0%,rgb(var(--rb-t-gold) / 0) 72%);
}

/* ------------------------------------------------------------ aurora cards -
 * One shared fill. --rb-a / --rb-b are set per grid position below, so a wall
 * of cards reads as six different hues rather than one repeated. Each card
 * gets its own duration and a negative delay, so nothing breathes in unison. */
html[data-theme]:root .stat,html[data-theme]:root .dg-card,html[data-theme]:root .mp-card,html[data-theme]:root .b30-card,html[data-theme]:root .ac-why-cell,html[data-theme]:root .acg-card,html[data-theme]:root .rate-card,html[data-theme]:root .scam-card,html[data-theme]:root .chal-card,html[data-theme]:root .author-tile,html[data-theme]:root .feed-card,html[data-theme]:root .sr-card,html[data-theme]:root .settings-section,html[data-theme]:root .pod,html[data-theme]:root .vid-card,html[data-theme]:root .certv-card,html[data-theme]:root .mod-row,html[data-theme]:root .astat,html[data-theme]:root .ptype,html[data-theme]:root .mp-imp,html[data-theme]:root .mp-try,html[data-theme]:root .pg-card,html[data-theme]:root .pstat,html[data-theme]:root .rc-hero,html[data-theme]:root .rc-stat,html[data-theme]:root .acc-card,html[data-theme]:root .actd-stat,html[data-theme]:root .lvl,html[data-theme]:root .score-card,html[data-theme]:root .author-card,html[data-theme]:root .create-chal,html[data-theme]:root .b30-how-cell,html[data-theme]:root .ai-tldr-card,html[data-theme]:root .acl-hero,html[data-theme]:root .acl-cert,html[data-theme]:root .ac-cert-card,html[data-theme]:root .acr-form,html[data-theme]:root .acfee,html[data-theme]:root .acad-form,html[data-theme]:root .ab-mod,html[data-theme]:root .acm,html[data-theme]:root .editbox,html[data-theme]:root .usr-card,html[data-theme]:root .cl-item,html[data-theme]:root .auth-card,html[data-theme]:root .rc-goals,html[data-theme]:root .rc-history,html[data-theme]:root .rc-form-wrap,html[data-theme]:root .acqr-row,html[data-theme]:root .usr-search-wrap,html[data-theme]:root .usr-edit-form,html[data-theme]:root .prof-impact,html[data-theme]:root .b30-summary,html[data-theme]:root .actdr-row,html[data-theme]:root .actd-rev,html[data-theme]:root .acch,html[data-theme]:root .ac-sheet,html[data-theme]:root .b30-sheet,html[data-theme]:root .b30-share-sheet,html[data-theme]:root .mp-edit-sheet,html[data-theme]:root .mp-sheet-in,html[data-theme]:root .ach-sheet,html[data-theme]:root .acl-tli,html[data-theme]:root .alf-type,html[data-theme]:root .acad-ev,html[data-theme]:root .ac-libcta,html[data-theme]:root .dg-card,html[data-theme]:root .prof-grow .pg-card,html[data-theme]:root .chal-prog,html[data-theme]:root .acc-progress,html[data-theme]:root .acl-video,html[data-theme]:root .lib-suggest,html[data-theme]:root .acci-foot,html[data-theme]:root .actd-promo-x,html[data-theme]:root .bv-p,html[data-theme]:root .bv-panel,html[data-theme]:root .bv-nudge,html[data-theme]:root .bv-empty,html[data-theme]:root .bv-tr,html[data-theme]:root .bv-side,html[data-theme]:root .bv-dt,html[data-theme]:root .bv-sk,html[data-theme]:root .bv-count,html[data-theme]:root .bv-fchip,html[data-theme]:root .bv-search,html[data-theme]:root .bv-fbtn,html[data-theme]:root .bv-dhero{
  background-image:linear-gradient(135deg,
    color-mix(in srgb,rgb(var(--rb-a)) var(--rb-tint),rgb(var(--rb-surface))) 0%,
    color-mix(in srgb,rgb(var(--rb-a)) var(--rb-tint-2),rgb(var(--rb-surface))) 31%,
    color-mix(in srgb,rgb(var(--rb-b)) var(--rb-tint-2),rgb(var(--rb-surface))) 63%,
    color-mix(in srgb,rgb(var(--rb-b)) var(--rb-tint),rgb(var(--rb-surface))) 100%);
  background-color:rgb(var(--rb-surface));
  background-size:170% 170%;
  background-position:50% 50%;
  background-repeat:no-repeat;
  animation:rbTide var(--rb-dur) var(--rb-ease) var(--rb-phase) infinite alternate;
}
html[data-theme]:root .stat,html[data-theme]:root .dg-card,html[data-theme]:root .mp-card,html[data-theme]:root .b30-card,html[data-theme]:root .ac-why-cell,html[data-theme]:root .acg-card,html[data-theme]:root .rate-card,html[data-theme]:root .scam-card,html[data-theme]:root .chal-card,html[data-theme]:root .author-tile,html[data-theme]:root .feed-card,html[data-theme]:root .sr-card,html[data-theme]:root .settings-section,html[data-theme]:root .pod,html[data-theme]:root .vid-card,html[data-theme]:root .certv-card,html[data-theme]:root .mod-row,html[data-theme]:root .astat,html[data-theme]:root .ptype,html[data-theme]:root .mp-imp,html[data-theme]:root .mp-try,html[data-theme]:root .pg-card,html[data-theme]:root .pstat,html[data-theme]:root .rc-hero,html[data-theme]:root .rc-stat,html[data-theme]:root .acc-card,html[data-theme]:root .actd-stat,html[data-theme]:root .lvl,html[data-theme]:root .score-card,html[data-theme]:root .author-card,html[data-theme]:root .create-chal,html[data-theme]:root .b30-how-cell,html[data-theme]:root .ai-tldr-card,html[data-theme]:root .acl-hero,html[data-theme]:root .acl-cert,html[data-theme]:root .ac-cert-card,html[data-theme]:root .acr-form,html[data-theme]:root .acfee,html[data-theme]:root .acad-form,html[data-theme]:root .ab-mod,html[data-theme]:root .acm,html[data-theme]:root .editbox,html[data-theme]:root .usr-card,html[data-theme]:root .cl-item,html[data-theme]:root .auth-card,html[data-theme]:root .rc-goals,html[data-theme]:root .rc-history,html[data-theme]:root .rc-form-wrap,html[data-theme]:root .acqr-row,html[data-theme]:root .usr-search-wrap,html[data-theme]:root .usr-edit-form,html[data-theme]:root .prof-impact,html[data-theme]:root .b30-summary,html[data-theme]:root .actdr-row,html[data-theme]:root .actd-rev,html[data-theme]:root .acch,html[data-theme]:root .ac-sheet,html[data-theme]:root .b30-sheet,html[data-theme]:root .b30-share-sheet,html[data-theme]:root .mp-edit-sheet,html[data-theme]:root .mp-sheet-in,html[data-theme]:root .ach-sheet,html[data-theme]:root .acl-tli,html[data-theme]:root .alf-type,html[data-theme]:root .acad-ev,html[data-theme]:root .ac-libcta,html[data-theme]:root .dg-card,html[data-theme]:root .prof-grow .pg-card,html[data-theme]:root .chal-prog,html[data-theme]:root .acc-progress,html[data-theme]:root .acl-video,html[data-theme]:root .lib-suggest,html[data-theme]:root .acci-foot,html[data-theme]:root .actd-promo-x,html[data-theme]:root .bv-p,html[data-theme]:root .bv-panel,html[data-theme]:root .bv-nudge,html[data-theme]:root .bv-empty,html[data-theme]:root .bv-tr,html[data-theme]:root .bv-side,html[data-theme]:root .bv-dt,html[data-theme]:root .bv-sk,html[data-theme]:root .bv-count,html[data-theme]:root .bv-fchip,html[data-theme]:root .bv-search,html[data-theme]:root .bv-fbtn,html[data-theme]:root .bv-dhero{
  border-color:color-mix(in srgb,rgb(var(--rb-a)) 34%,rgb(var(--rb-line)));
}

/* No bold top edge. Several cards carry a 3px saturated bar across their top
   edge; against the new fills that reads as a heavy dark rule cutting the card
   off. These keep their shape and position - they simply stop being a bar. */
html[data-theme]:root .scam-card::before,
html[data-theme]:root .b30-card.b30-gold::before{
  background:linear-gradient(90deg,rgb(var(--rb-a) / .38),rgb(var(--rb-a) / 0) 72%);
}

html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+1){--rb-a:var(--rb-t-red);--rb-b:var(--rb-t-rose);--rb-dur:21s;--rb-phase:0s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+2){--rb-a:var(--rb-t-sky);--rb-b:var(--rb-t-indigo);--rb-dur:26s;--rb-phase:-5s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+3){--rb-a:var(--rb-t-gold);--rb-b:var(--rb-t-coral);--rb-dur:23s;--rb-phase:-11s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+4){--rb-a:var(--rb-t-violet);--rb-b:var(--rb-t-indigo);--rb-dur:30s;--rb-phase:-3s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+5){--rb-a:var(--rb-t-coral);--rb-b:var(--rb-t-red);--rb-dur:25s;--rb-phase:-17s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+6){--rb-a:var(--rb-t-indigo);--rb-b:var(--rb-t-sky);--rb-dur:34s;--rb-phase:-8s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+7){--rb-a:var(--rb-t-rose);--rb-b:var(--rb-t-violet);--rb-dur:27s;--rb-phase:-21s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+8){--rb-a:var(--rb-t-gold);--rb-b:var(--rb-t-rose);--rb-dur:38s;--rb-phase:-14s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+9){--rb-a:var(--rb-t-sky);--rb-b:var(--rb-t-violet);--rb-dur:29s;--rb-phase:-26s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+10){--rb-a:var(--rb-t-red);--rb-b:var(--rb-t-violet);--rb-dur:32s;--rb-phase:-7s}
html[data-theme]:root :is(.stat,.dg-card,.mp-card,.b30-card,.ac-why-cell,.acg-card,.rate-card,.scam-card,.chal-card,.author-tile,.feed-card,.sr-card,.settings-section,.pod,.vid-card,.certv-card,.mod-row,.astat,.ptype,.mp-imp,.mp-try,.pg-card,.pstat,.rc-hero,.rc-stat,.acc-card,.actd-stat,.lvl,.score-card,.author-card,.create-chal,.b30-how-cell,.ai-tldr-card,.acl-hero,.acl-cert,.ac-cert-card,.acr-form,.acfee,.acad-form,.ab-mod,.acm,.editbox,.usr-card,.cl-item,.auth-card,.rc-goals,.rc-history,.rc-form-wrap,.acqr-row,.usr-search-wrap,.usr-edit-form,.prof-impact,.b30-summary,.actdr-row,.actd-rev,.acch,.ac-sheet,.b30-sheet,.b30-share-sheet,.mp-edit-sheet,.mp-sheet-in,.ach-sheet,.acl-tli,.alf-type,.acad-ev,.ac-libcta,.dg-card,.prof-grow .pg-card,.chal-prog,.acc-progress,.acl-video,.lib-suggest,.acci-foot,.actd-promo-x,.bv-p,.bv-panel,.bv-nudge,.bv-empty,.bv-tr,.bv-side,.bv-dt,.bv-sk,.bv-count,.bv-fchip,.bv-search,.bv-fbtn,.bv-dhero,.card,.art-card,.rel-card,.feed-card,.acg-card,.vid-card,.mp-card,.acb,.bv-card):nth-child(11n+11){--rb-a:var(--rb-t-coral);--rb-b:var(--rb-t-gold);--rb-dur:36s;--rb-phase:-19s}



/* Cards that already carried their own hue keep it, but now from a token. */
.scam-card{--rb-a:var(--rb-t-red);--rb-b:var(--rb-t-coral)}
.ai-tldr-card{--rb-a:var(--rb-t-sky);--rb-b:var(--rb-t-indigo)}
.acl-cert,.ac-cert-card,.certv-card{--rb-a:var(--rb-t-gold);--rb-b:var(--rb-t-coral)}
html[data-theme="dark"] .acl-cert,
html[data-theme="dark"] .ac-cert-card,
html[data-theme="dark"] .certv-card{--rb-a:var(--rb-t-coral);--rb-b:var(--rb-t-rose)}
.b30-card.b30-gold{--rb-a:var(--rb-t-gold);--rb-b:var(--rb-t-coral)}
.b30-card.b30-silver{--rb-a:var(--rb-t-indigo);--rb-b:var(--rb-t-sky)}
.b30-card.b30-bronze{--rb-a:var(--rb-t-coral);--rb-b:var(--rb-t-red)}
html[data-theme="dark"] .b30-card.b30-gold{--rb-a:var(--rb-t-coral);--rb-b:var(--rb-t-rose)}

/* The 3px accent bars are the one place the registered --rb-hue property is
   consumed: a few hundred pixels of repaint, and a hue that genuinely rotates. */
.dg-card::before,.mp-imp::before,.read-prog,.actdm-bar i,.aclc-bar i,.progress i.on,.bar>i{
  --rb-hue:0deg;
  background-image:linear-gradient(90deg,
    hsl(calc(356deg + var(--rb-hue)) 92% 56%) 0%,
    hsl(calc(300deg + var(--rb-hue)) 88% 62%) 46%,
    hsl(calc(206deg + var(--rb-hue)) 88% 55%) 100%);
  animation:rbHue 38s var(--rb-ease) infinite alternate;
}

/* ------------------------------------------------------------- media cards -
 * The photo stays exactly as it is; a hue wash rides above it so a grid of
 * article cards reads as a colourful wall. Text sits over the darkest part of
 * the existing scrim, so the wash cannot cost contrast. */
html[data-theme]:root .card .card-scrim,html[data-theme]:root .art-card .card-scrim,html[data-theme]:root .rel-scrim,html[data-theme]:root .acg-grad,html[data-theme]:root .fc-img-scrim,html[data-theme]:root .bv-scrim{
  background-image:
    linear-gradient(152deg,rgb(var(--rb-a) / .34) 0%,rgb(var(--rb-a) / 0) 46%,rgb(var(--rb-b) / .30) 100%),
    linear-gradient(180deg,rgba(6,10,22,0) 26%,rgba(6,10,22,.76) 64%,rgba(6,10,22,.97) 100%);
  background-size:200% 200%,100% 100%;
  background-position:50% 50%,0 0;
  animation:rbTideB var(--rb-dur) var(--rb-ease) var(--rb-phase) infinite alternate;
}
/* Hero scrims: the hue wash rides on a darkening layer deepened past the
   original, so the big headline type gains contrast rather than losing it. */
html[data-theme]:root .hero-full .hero-scrim,html[data-theme]:root .art-hero-full .art-hero-scrim,html[data-theme]:root .about-hero .ah-scrim,html[data-theme]:root .search-hero .sh-scrim,html[data-theme]:root .acc-hero-scrim{
  background-image:
    linear-gradient(152deg,rgb(var(--rb-a) / .30) 0%,rgb(var(--rb-a) / 0) 52%,rgb(var(--rb-b) / .26) 100%),
    linear-gradient(180deg,rgba(5,9,20,.52) 0%,rgba(5,9,20,.66) 45%,rgba(5,9,20,.93) 100%);
  background-size:140% 140%,100% 100%;
  background-position:50% 50%,0 0;
  /* static, like the heroes behind them: these scrims are full-viewport, and a
     moving background-position there repaints the whole screen every frame. */
}
/* thumbnails carry no text, so they take the wash without any darkening */
html[data-theme]:root .mp-thumb,html[data-theme]:root .vc-thumb,html[data-theme]:root .acb-cover,html[data-theme]:root .acg-thumb,html[data-theme]:root .fc-img,html[data-theme]:root .st-thumb{
  background-image:linear-gradient(152deg,rgb(var(--rb-a) / .30) 0%,rgb(var(--rb-a) / 0) 50%,rgb(var(--rb-b) / .26) 100%);
  background-size:200% 200%;
  background-position:50% 50%;
  animation:rbTide var(--rb-dur) var(--rb-ease) var(--rb-phase) infinite alternate;
}

/* -------------------------------------------------------- large dark panels */
html[data-theme]:root .cta-band,html[data-theme]:root .gatecard,html[data-theme]:root .calc-result,html[data-theme]:root .ac-mentor-band,html[data-theme]:root .actd-promo,html[data-theme]:root .mp-academy,html[data-theme]:root .prof-academy,html[data-theme]:root .acl-continue,html[data-theme]:root .prof-cover,html[data-theme]:root .bv-magic{
  background-image:
    radial-gradient(84% 96% at 12% 8%,rgb(var(--rb-t-indigo) / .42) 0%,rgb(var(--rb-t-indigo) / 0) 62%),
    radial-gradient(76% 88% at 88% 4%,rgb(var(--rb-t-red) / .30) 0%,rgb(var(--rb-t-red) / 0) 58%),
    radial-gradient(96% 92% at 68% 100%,rgb(var(--rb-t-violet) / .34) 0%,rgb(var(--rb-t-violet) / 0) 66%),
    linear-gradient(160deg,#0B1330 0%,#070B1F 52%,#0A1128 100%);
  background-size:200% 200%,200% 200%,200% 200%,100% 100%;
  background-position:50% 50%,50% 50%,50% 50%,0 0;
  background-color:#070B1F;
  animation:rbTide 24s var(--rb-ease) infinite alternate;
}

/* Full-viewport heroes: same aurora, painted once. */
html[data-theme]:root .bca-hero,html[data-theme]:root .hero-full,html[data-theme]:root .b30-hero,html[data-theme]:root .b30-hero-ol,html[data-theme]:root .ac-hero,html[data-theme]:root .ac-hero-grad,html[data-theme]:root .lib-hero,html[data-theme]:root .amp-hero,html[data-theme]:root .search-hero .sh-bg,html[data-theme]:root .about-hero,html[data-theme]:root .bvh,html[data-theme]:root .bvh-tint{
  background-image:
    radial-gradient(58% 62% at 14% 10%,rgb(var(--rb-t-indigo) / .46) 0%,rgb(var(--rb-t-indigo) / 0) 66%),
    radial-gradient(52% 58% at 86% 6%,rgb(var(--rb-t-red) / .32) 0%,rgb(var(--rb-t-red) / 0) 62%),
    radial-gradient(66% 66% at 70% 96%,rgb(var(--rb-t-violet) / .36) 0%,rgb(var(--rb-t-violet) / 0) 70%),
    radial-gradient(48% 52% at 34% 74%,rgb(var(--rb-t-sky) / .22) 0%,rgb(var(--rb-t-sky) / 0) 68%),
    linear-gradient(160deg,#0B1330 0%,#070B1F 52%,#0A1128 100%);
  background-color:#070B1F;
}

/* The motion on those heroes comes from the blob elements they already have.
   Those move by transform only, so the drift is compositor work: no repaint of
   the viewport, no layout, no CLS. Re-tinting them is the whole change here. */
.hero-full .hb1{background:rgb(var(--rb-t-red));opacity:.30}
.hero-full .hb2{background:rgb(var(--rb-t-sky));opacity:.26}
.b30-mesh .bm1{background:rgb(var(--rb-t-indigo))}
.b30-mesh .bm2{background:rgb(var(--rb-t-red))}
.b30-mesh .bm3{background:rgb(var(--rb-t-violet))}
.ac-orb.o1{background:rgb(var(--rb-t-indigo))}
.ac-orb.o2{background:rgb(var(--rb-t-rose))}
.acmb-orb{background:rgb(var(--rb-t-red))}
.ac-particles i{background:linear-gradient(180deg,rgb(var(--rb-coral-ink)),rgb(var(--rb-t-sky)))}

/* ------------------------------------------------------------------ chrome -
 * LOGO PAIRING RULE. brandLogo() renders both lockups and the theme picks one:
 *   light theme -> .bl-light, the black-and-red lockup
 *   dark  theme -> .bl-dark,  the light-wordmark lockup
 * So every surface that carries the logo is tuned to the lockup that is
 * actually on it: header, drawer and footer skew LIGHT in light theme (the
 * black wordmark pops) and skew DARK in dark theme (the light wordmark pops) -
 * the same relationship the navy splash screen already has with the light
 * lockup. These surfaces are also raised to near-opaque so a dark hero
 * scrolling underneath can no longer drag the header mid-tone. */
.hdr,.drawer,.foot{
  background-color:rgb(var(--rb-surface) / var(--rb-chrome));
  background-image:
    linear-gradient(104deg,rgb(var(--rb-t-sky) / .16) 0%,rgb(var(--rb-t-sky) / 0) 42%),
    linear-gradient(256deg,rgb(var(--rb-t-red) / .14) 0%,rgb(var(--rb-t-red) / 0) 46%);
  background-size:220% 100%,220% 100%;
  background-position:50% 0,50% 0;
  animation:rbTide 30s var(--rb-ease) infinite alternate;
}
.foot{background-color:rgb(var(--rb-bg))}
html[data-theme="dark"] .hdr,
html[data-theme="dark"] .drawer,
html[data-theme="dark"] .foot{
  background-color:rgb(var(--rb-bg) / var(--rb-chrome));
  background-image:
    linear-gradient(104deg,rgb(var(--rb-t-indigo) / .26) 0%,rgb(var(--rb-t-indigo) / 0) 46%),
    linear-gradient(256deg,rgb(var(--rb-t-red) / .20) 0%,rgb(var(--rb-t-red) / 0) 48%);
}
html[data-theme="dark"] .foot{background-color:rgb(var(--rb-bg))}

/* The story viewer and the Bankerpedia 30 hero are dark in BOTH themes, so the
   light-wordmark lockup is the correct one there whatever the theme is set to.
   Forcing the swap here is a colour fix, not a markup change. */
.story-viewer .brand-logo .bl-light{display:none}
.story-viewer .brand-logo .bl-dark{display:block}

/* ------------------------------------------------------------- ink & accent -
 * Contrast repairs that come with the palette. Every value below was measured
 * against the real rendered background - gradients and animation extremes
 * included - not against a flat swatch. */

/* Red as a FILL under white text. rgb(var(--rb-red-solid)) is 3.8:1 with white, which is under
   AA for body-sized text, so fills get the solid variant while the pure brand
   red stays the hue used in gradients and accents. */
.btn-ghost,.hero-full .btn-ghost,.cta-band .btn-ghost,.acx-pill.on,
.b30c-vote,.b30-big,.acq-opt.sel .acq-key,.mp-sh.wa{
  background-color:rgb(var(--rb-red-solid));
  border-color:rgb(var(--rb-red-solid));
  color:#fff;
}
.chip[aria-pressed="true"],.feed-tab.on,.calc-tab[aria-selected="true"]{
  background-color:rgb(var(--rb-deep));border-color:rgb(var(--rb-deep));color:#fff;
}
.pub-btn{
  background-image:linear-gradient(135deg,#0B2545 0%,#12305E 32%,rgb(var(--rb-red-solid)) 66%,#0B2545 100%);
}
.ac-cta-main,.btn.ac-cta-main{
  background-image:linear-gradient(135deg,rgb(var(--rb-red-solid)),rgb(var(--rb-red-solid-2)));
}

/* Category / kind labels. The ones on light surfaces take the dark red ink; the
   ones sitting on a photo scrim take the light coral ink. Each list is written
   at the specificity of the rule it has to beat. */
.acg-cat,.acn-cat,.sc-type,.mr-type,.sr-type-pill,.b30c-sector,
.aclc-k,.acci-k,.ls-k,.rate-card .rc-prod{color:rgb(var(--rb-red-ink))}
.art-card .ac-cat,.card .ac-cat,.fc-has-img .fc-art .ac-cat,.rel-cat,.acg-cat.on{
  color:rgb(var(--rb-cat-ink));
}
.fc-art .ac-cat{color:rgb(var(--rb-blue-ink))}
.fc-has-img .fc-kind{
  background-color:rgba(8,13,28,.62);border-color:rgba(255,255,255,.46);color:#fff;
}
/* The scam cards carry their own six-step --tone rotation, which now disagrees
   with the eleven-step fill. Bind --tone to the card's actual aurora hue so the
   border, the top hairline and the amount chip all belong to the same card, and
   give the amount chip an ink that is measured safe on every tinted surface. */
html[data-theme]:root .scam-card{--tone:rgb(var(--rb-a))}
html[data-theme]:root .scam-card .sc-tag.amt{
  color:rgb(var(--rb-red-ink));
  border-color:color-mix(in srgb,rgb(var(--rb-a)) 42%,rgb(var(--rb-line)));
}

/* Confession tones arrive as an inline --tone per category. Rather than pin each
   one, the label ink is derived from whatever tone it is given: darkened in
   light mode, lightened in dark, so every category clears AA on its own chip. */
.cc-cat,.confess-card .cc-cat{color:color-mix(in srgb,var(--tone) 72%,#000)}
html[data-theme="dark"] .cc-cat,
html[data-theme="dark"] .confess-card .cc-cat{color:color-mix(in srgb,var(--tone) 58%,#fff)}

/* The ACTIVE menu item is the brand red, not the card-surface red. --rb-red-ink
   has to survive a 30%-tinted card, which pulls it down to a maroon; the header,
   drawer and footer are near-neutral, so the nav can carry the logo hue at its
   brightest AA-safe value. */
html[data-theme]:root .hdr-nav a.on,
html[data-theme]:root .foot .meta b,
html[data-theme]:root .bnav a.on{color:rgb(var(--rb-red-nav))}
html[data-theme]:root .bnav a.on .ic{color:rgb(var(--rb-red-nav))}

/* Pills that sit on the dark hero strips keep their light ink; only the ones on
   card surfaces take the dark ink. */
.calc-tab,.chip,.feed-tab{color:rgb(var(--rb-ink))}
.wrap .acx-pill,.ac-sheet .acx-pill,#acTeacher .acx-pill{color:rgb(var(--rb-ink))}

.eyebrow,.ac-eyebrow,.b30-eyebrow,.ah-kicker,.art-eyebrow,.acg-view{
  background-color:rgba(8,13,28,.62);
  border-color:rgba(255,255,255,.44);
  color:#fff;
}
.eyebrow .ic,.ac-eyebrow .ic,.b30-eyebrow .ic,.ah-kicker .ic{color:rgb(var(--rb-coral-ink))}
.calc-result .rlabel,.calc-result .rsub,.gatecard p,.cta-band p{color:#D7DEEC}
.calc-result .lg,.calc-result .rbig{color:#EEF2FA}

/* The typewriter caret was the same colour as the text it trails, which makes it
   read as a stray letter rather than a cursor. The brand red separates them. */
html[data-theme]:root .type-caret,
html[data-theme]:root .b30-caret{background:rgb(var(--rb-red))}

/* ---- Bankerpedia Vacancy Alert -------------------------------------------
 * The vacancy wing ships as its own Cloudflare project with its own --bv-*
 * palette. Pointing those at the aurora tokens is what makes the two wings
 * read as one site rather than two that happen to share a logo. */
/* --bv-* is tokenised inside BV_CSS itself by the build, not redefined here:
 * the vacancy pages serve CSS + BV_CSS as one sheet, so a :root block here
 * would be overwritten by BV_CSS's own :root a few hundred lines later. The
 * component rules below are specific enough to win wherever they need to. */

/* Vacancy card art. Without a hero photo the card paints a generated gradient;
   its hue used to run free around the whole wheel, which is where the olive and
   khaki cards came from. Painted from the card's own aurora pair instead, the
   art matches the wash above it and stays on the safe arc. A card that DOES
   have a hero photo still sets background-image inline and is untouched. */
html[data-theme]:root .bv-cover{
  background-image:linear-gradient(150deg,
    color-mix(in srgb,rgb(var(--rb-a)) 46%,rgb(var(--rb-navy))) 0%,
    color-mix(in srgb,rgb(var(--rb-b)) 32%,rgb(var(--rb-navy))) 58%,
    rgb(var(--rb-navy)) 100%);
}

/* The accent as a FILL under white text takes the AA-safe red - rgb(var(--rb-red-solid)) is
   3.8:1 with white, the same reason .btn-ghost is remapped on the main site. */
html[data-theme]:root .bv-btn-1,
html[data-theme]:root .bv-card:hover .bv-apply,
html[data-theme]:root .bv-card.open .bv-apply,
html[data-theme]:root .bv-dl.urg,
html[data-theme]:root .bv-row .d.urg{
  background-color:rgb(var(--rb-red-solid));
  border-color:rgb(var(--rb-red-solid));
  color:#fff;
}
html[data-theme]:root .bv-mm{
  background-image:linear-gradient(100deg,rgb(var(--rb-red-solid)),rgb(var(--rb-amber-solid)));
  color:#fff;
}
/* The accent as TEXT: dark red on light surfaces, light coral on dark ones. */
html[data-theme]:root .bv-eyebrow,
html[data-theme]:root .bv-p .big,
html[data-theme]:root .bv-mm.ghost{color:rgb(var(--rb-red-ink))}
html[data-theme]:root .bvh h1 em,
html[data-theme]:root .bvh-ai svg{color:rgb(var(--rb-coral-ink))}
/* .bv-magic is dark in BOTH themes, so the step numbers on it cannot use the
   light-surface red: it measured 3.75:1 there. The coral reads 5.2:1 against
   every phase of that band's gradient. */
html[data-theme]:root .bv-magic .bv-mb-n{color:rgb(var(--rb-coral-ink))}

/* Chips that sit on the card art keep white ink, but their plate is deepened:
   over a bronze or amber cover a 14%-white plate left white text at 1.9:1. */
html[data-theme]:root .bv-org,
html[data-theme]:root .bv-dl,
html[data-theme]:root .bv-chip{
  background-color:rgba(8,13,28,.58);
  border-color:rgba(255,255,255,.34);
  color:#fff;
}

/* ---- found once the contrast auditor started scrolling ------------------
 * These three sat below the fold on tall pages, so every earlier run reported
 * them clean without ever looking at them.
 */

/* The share tag rides on the badge art, which ranges from a mid green to a mid
   blue. A 20%-white plate under white text measured 2.4:1 on both. The same
   deep scrim the vacancy chips use puts it past 7:1 over every card. */
html[data-theme]:root .ac-share-tag{
  background-color:rgba(8,13,28,.55);
}

/* ---- Bankerpedia 30 cards -------------------------------------------------
 * Every one of these sat below the fold, so no audit had ever looked at them.
 * The cards carry a rotating pastel tint, and the component was coloured as
 * though the card were plain white.
 */

/* The two mono labels were muted ink over a tint: 3.4:1 and 2.6:1. They step
   up to an ink that clears every tint in the rotation, in both themes. */
html[data-theme]:root .b30c-sector,
html[data-theme]:root .b30c-conf-lbl{color:#3C4359}
/* :root in the light rule above adds a pseudo-class to its specificity, so a
   plain html[data-theme="dark"] prefix ties and LOSES on source order. Match
   the shape exactly, or the dark override silently does nothing. */
html[data-theme="dark"]:root .b30c-sector,
html[data-theme="dark"]:root .b30c-conf-lbl{color:#D6E4FF}

/* The rank was a hard coded vivid red, which cannot work on both a pale pink
   tint and a deep navy one. The ink red flips with the theme and clears both. */
html[data-theme]:root .b30c-rank{color:rgb(var(--rb-red-ink))}

/* White on the vote button measured 4.31:1, just under the line. Deepening the
   gradient by one step keeps the button unmistakably the primary action. */
html[data-theme]:root .b30c-vote{
  background-image:linear-gradient(135deg,rgb(var(--rb-red-solid)),#A50F1B);
}

/* A .btn with no variant class never gets a background from this stylesheet,
   so the browser's own grey button showed through: rgb(239,239,239) in BOTH
   themes, which is a light plate sitting on a dark card in dark mode. The two
   bare buttons on the site are both outline buttons by intent, so they get the
   surface they sit on and keep their coloured border. */
html[data-theme]:root .btn:not([class*=" btn-"]):not([class^="btn-"]){
  background-color:transparent;
}

/* The danger zone used the vivid brand red as TEXT. It is a fine border and a
   fine fill, but at 3.3:1 on a light card it is not a readable ink. The ink
   red is, and it flips to the pale red on dark so the dark theme still works. */
html[data-theme]:root .danger-zone h2,
html[data-theme]:root .danger-zone .btn#showDelete{
  color:rgb(var(--rb-red-ink));
}

/* Body copy on the growth nudge cards is muted ink over a tinted card. On the
   deeper tints in the rotation that lands at 3.7:1, so it steps up to a
   stronger ink. The heading beside it is unchanged. */
html[data-theme]:root .pg-card span{
  color:color-mix(in srgb,var(--fg) 88%,transparent);
}

/* Icons on coloured tiles: each checked against its own tile, not defaulted to
   white or black. */
.ptype .pic,.empty .em-ic,.acw-ic,.mp-try-ic,.bh-ic,.alft-ic,.vu-ic{
  background-color:color-mix(in srgb,rgb(var(--rb-a)) 18%,rgb(var(--rb-surface)));
  color:rgb(var(--rb-red-ink));
}
html[data-theme="dark"] .ptype .pic,html[data-theme="dark"] .empty .em-ic,
html[data-theme="dark"] .acw-ic,html[data-theme="dark"] .mp-try-ic,
html[data-theme="dark"] .bh-ic,html[data-theme="dark"] .alft-ic,
html[data-theme="dark"] .vu-ic{
  background-color:color-mix(in srgb,rgb(var(--rb-a)) 26%,rgb(var(--rb-surface)));
  color:rgb(var(--rb-ink));
}

/* --------------------------------------------------------- reduced motion ---
 * Same palette, frozen. Every aurora loop is stopped and pinned to the middle
 * of its cycle, so a reduced-motion visitor sees the identical colours - just
 * standing still. Placed after the sheet's own reduced-motion block so these
 * win. */
@media (prefers-reduced-motion:reduce){
  :root,body::before,body::after,.hdr,.drawer,.foot,
  .dg-card::before,.mp-imp::before,.read-prog,.actdm-bar i,.aclc-bar i,.progress i.on,.bar>i,
  html[data-theme]:root .stat,html[data-theme]:root .dg-card,html[data-theme]:root .mp-card,html[data-theme]:root .b30-card,html[data-theme]:root .ac-why-cell,html[data-theme]:root .acg-card,html[data-theme]:root .rate-card,html[data-theme]:root .scam-card,html[data-theme]:root .chal-card,html[data-theme]:root .author-tile,html[data-theme]:root .feed-card,html[data-theme]:root .sr-card,html[data-theme]:root .settings-section,html[data-theme]:root .pod,html[data-theme]:root .vid-card,html[data-theme]:root .certv-card,html[data-theme]:root .mod-row,html[data-theme]:root .astat,html[data-theme]:root .ptype,html[data-theme]:root .mp-imp,html[data-theme]:root .mp-try,html[data-theme]:root .pg-card,html[data-theme]:root .pstat,html[data-theme]:root .rc-hero,html[data-theme]:root .rc-stat,html[data-theme]:root .acc-card,html[data-theme]:root .actd-stat,html[data-theme]:root .lvl,html[data-theme]:root .score-card,html[data-theme]:root .author-card,html[data-theme]:root .create-chal,html[data-theme]:root .b30-how-cell,html[data-theme]:root .ai-tldr-card,html[data-theme]:root .acl-hero,html[data-theme]:root .acl-cert,html[data-theme]:root .ac-cert-card,html[data-theme]:root .acr-form,html[data-theme]:root .acfee,html[data-theme]:root .acad-form,html[data-theme]:root .ab-mod,html[data-theme]:root .acm,html[data-theme]:root .editbox,html[data-theme]:root .usr-card,html[data-theme]:root .cl-item,html[data-theme]:root .auth-card,html[data-theme]:root .rc-goals,html[data-theme]:root .rc-history,html[data-theme]:root .rc-form-wrap,html[data-theme]:root .acqr-row,html[data-theme]:root .usr-search-wrap,html[data-theme]:root .usr-edit-form,html[data-theme]:root .prof-impact,html[data-theme]:root .b30-summary,html[data-theme]:root .actdr-row,html[data-theme]:root .actd-rev,html[data-theme]:root .acch,html[data-theme]:root .ac-sheet,html[data-theme]:root .b30-sheet,html[data-theme]:root .b30-share-sheet,html[data-theme]:root .mp-edit-sheet,html[data-theme]:root .mp-sheet-in,html[data-theme]:root .ach-sheet,html[data-theme]:root .acl-tli,html[data-theme]:root .alf-type,html[data-theme]:root .acad-ev,html[data-theme]:root .ac-libcta,html[data-theme]:root .dg-card,html[data-theme]:root .prof-grow .pg-card,html[data-theme]:root .chal-prog,html[data-theme]:root .acc-progress,html[data-theme]:root .acl-video,html[data-theme]:root .lib-suggest,html[data-theme]:root .acci-foot,html[data-theme]:root .actd-promo-x,html[data-theme]:root .bv-p,html[data-theme]:root .bv-panel,html[data-theme]:root .bv-nudge,html[data-theme]:root .bv-empty,html[data-theme]:root .bv-tr,html[data-theme]:root .bv-side,html[data-theme]:root .bv-dt,html[data-theme]:root .bv-sk,html[data-theme]:root .bv-count,html[data-theme]:root .bv-fchip,html[data-theme]:root .bv-search,html[data-theme]:root .bv-fbtn,html[data-theme]:root .bv-dhero,html[data-theme]:root .card .card-scrim,html[data-theme]:root .art-card .card-scrim,html[data-theme]:root .rel-scrim,html[data-theme]:root .acg-grad,html[data-theme]:root .fc-img-scrim,html[data-theme]:root .bv-scrim,html[data-theme]:root .hero-full .hero-scrim,html[data-theme]:root .art-hero-full .art-hero-scrim,html[data-theme]:root .about-hero .ah-scrim,html[data-theme]:root .search-hero .sh-scrim,html[data-theme]:root .acc-hero-scrim,html[data-theme]:root .mp-thumb,html[data-theme]:root .vc-thumb,html[data-theme]:root .acb-cover,html[data-theme]:root .acg-thumb,html[data-theme]:root .fc-img,html[data-theme]:root .st-thumb,html[data-theme]:root .cta-band,html[data-theme]:root .gatecard,html[data-theme]:root .calc-result,html[data-theme]:root .ac-mentor-band,html[data-theme]:root .actd-promo,html[data-theme]:root .mp-academy,html[data-theme]:root .prof-academy,html[data-theme]:root .acl-continue,html[data-theme]:root .prof-cover,html[data-theme]:root .bv-magic{
    animation:none!important;
  }
  html[data-theme]:root .stat,html[data-theme]:root .dg-card,html[data-theme]:root .mp-card,html[data-theme]:root .b30-card,html[data-theme]:root .ac-why-cell,html[data-theme]:root .acg-card,html[data-theme]:root .rate-card,html[data-theme]:root .scam-card,html[data-theme]:root .chal-card,html[data-theme]:root .author-tile,html[data-theme]:root .feed-card,html[data-theme]:root .sr-card,html[data-theme]:root .settings-section,html[data-theme]:root .pod,html[data-theme]:root .vid-card,html[data-theme]:root .certv-card,html[data-theme]:root .mod-row,html[data-theme]:root .astat,html[data-theme]:root .ptype,html[data-theme]:root .mp-imp,html[data-theme]:root .mp-try,html[data-theme]:root .pg-card,html[data-theme]:root .pstat,html[data-theme]:root .rc-hero,html[data-theme]:root .rc-stat,html[data-theme]:root .acc-card,html[data-theme]:root .actd-stat,html[data-theme]:root .lvl,html[data-theme]:root .score-card,html[data-theme]:root .author-card,html[data-theme]:root .create-chal,html[data-theme]:root .b30-how-cell,html[data-theme]:root .ai-tldr-card,html[data-theme]:root .acl-hero,html[data-theme]:root .acl-cert,html[data-theme]:root .ac-cert-card,html[data-theme]:root .acr-form,html[data-theme]:root .acfee,html[data-theme]:root .acad-form,html[data-theme]:root .ab-mod,html[data-theme]:root .acm,html[data-theme]:root .editbox,html[data-theme]:root .usr-card,html[data-theme]:root .cl-item,html[data-theme]:root .auth-card,html[data-theme]:root .rc-goals,html[data-theme]:root .rc-history,html[data-theme]:root .rc-form-wrap,html[data-theme]:root .acqr-row,html[data-theme]:root .usr-search-wrap,html[data-theme]:root .usr-edit-form,html[data-theme]:root .prof-impact,html[data-theme]:root .b30-summary,html[data-theme]:root .actdr-row,html[data-theme]:root .actd-rev,html[data-theme]:root .acch,html[data-theme]:root .ac-sheet,html[data-theme]:root .b30-sheet,html[data-theme]:root .b30-share-sheet,html[data-theme]:root .mp-edit-sheet,html[data-theme]:root .mp-sheet-in,html[data-theme]:root .ach-sheet,html[data-theme]:root .acl-tli,html[data-theme]:root .alf-type,html[data-theme]:root .acad-ev,html[data-theme]:root .ac-libcta,html[data-theme]:root .dg-card,html[data-theme]:root .prof-grow .pg-card,html[data-theme]:root .chal-prog,html[data-theme]:root .acc-progress,html[data-theme]:root .acl-video,html[data-theme]:root .lib-suggest,html[data-theme]:root .acci-foot,html[data-theme]:root .actd-promo-x,html[data-theme]:root .bv-p,html[data-theme]:root .bv-panel,html[data-theme]:root .bv-nudge,html[data-theme]:root .bv-empty,html[data-theme]:root .bv-tr,html[data-theme]:root .bv-side,html[data-theme]:root .bv-dt,html[data-theme]:root .bv-sk,html[data-theme]:root .bv-count,html[data-theme]:root .bv-fchip,html[data-theme]:root .bv-search,html[data-theme]:root .bv-fbtn,html[data-theme]:root .bv-dhero,html[data-theme]:root .mp-thumb,html[data-theme]:root .vc-thumb,html[data-theme]:root .acb-cover,html[data-theme]:root .acg-thumb,html[data-theme]:root .fc-img,html[data-theme]:root .st-thumb{background-position:50% 50%!important}
  html[data-theme]:root .card .card-scrim,html[data-theme]:root .art-card .card-scrim,html[data-theme]:root .rel-scrim,html[data-theme]:root .acg-grad,html[data-theme]:root .fc-img-scrim,html[data-theme]:root .bv-scrim,html[data-theme]:root .hero-full .hero-scrim,html[data-theme]:root .art-hero-full .art-hero-scrim,html[data-theme]:root .about-hero .ah-scrim,html[data-theme]:root .search-hero .sh-scrim,html[data-theme]:root .acc-hero-scrim{background-position:50% 50%,0 0!important}
  html[data-theme]:root .cta-band,html[data-theme]:root .gatecard,html[data-theme]:root .calc-result,html[data-theme]:root .ac-mentor-band,html[data-theme]:root .actd-promo,html[data-theme]:root .mp-academy,html[data-theme]:root .prof-academy,html[data-theme]:root .acl-continue,html[data-theme]:root .prof-cover,html[data-theme]:root .bv-magic{background-position:50% 50%,50% 50%,50% 50%,0 0!important}
  .hdr,.drawer,.foot{background-position:50% 0,50% 0!important}
  /* transform is pinned ONLY on the two backdrop layers - the drawer and the
     reveal animations rely on their own transforms and must be left alone. */
  body::before{transform:translate3d(1%,1%,0)!important}
  :root{--rb-hue:0deg}
}
/* ---- admin ops console --------------------------------------------------
 * New pages, so these are the only layout rules in this file. Everything is
 * built from the same tokens as the rest of the site. */
.ops-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:6px 0 18px}
.ops-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:20px}
.ops-sum .astat{text-align:center}
.ops-grp{margin-bottom:18px}
.ops-grp>h3{display:flex;align-items:center;gap:9px;font-size:1.05rem;margin:0 0 4px}
.ops-grp>p.sub{color:var(--muted);font-size:.88rem;margin:0 0 12px}
.ops-row{display:grid;grid-template-columns:14px 1fr auto;gap:12px;align-items:start;padding:13px 0;border-top:1px solid var(--line)}
.ops-row:first-of-type{border-top:0}
.ops-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;background:var(--muted);flex:none}
.ops-dot.ok{background:rgb(var(--rb-ok))}.ops-dot.warn{background:rgb(var(--rb-warn))}
.ops-dot.fail{background:rgb(var(--rb-red-solid))}.ops-dot.off{background:color-mix(in srgb,var(--fg) 22%,transparent)}
.ops-row .lbl2{font-weight:600;font-size:.95rem}
.ops-row .det{color:var(--muted);font-size:.87rem;line-height:1.5;margin-top:2px;overflow-wrap:anywhere}
.ops-row .det.bad{color:rgb(var(--rb-red-ink))}
.ops-row .ms{font-family:var(--mono);font-size:.74rem;color:var(--muted);white-space:nowrap;padding-top:3px}
.ops-keys{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.ops-key{display:grid;grid-template-columns:1fr;gap:6px}
@media(min-width:760px){.ops-key{grid-template-columns:230px 1fr auto;align-items:center}}
.ops-key .kname{font-family:var(--mono);font-size:.78rem;font-weight:600}
.ops-key .khelp{color:var(--muted);font-size:.8rem;line-height:1.45;grid-column:1/-1;margin:-2px 0 2px}
.ops-key .ksrc{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.ops-key .ksrc.env{color:rgb(var(--rb-ok));border-color:color-mix(in srgb,rgb(var(--rb-ok)) 40%,var(--line))}
.ops-key .ksrc.vault{color:rgb(var(--rb-blue-ink));border-color:color-mix(in srgb,rgb(var(--rb-blue-ink)) 40%,var(--line))}
.ops-key .ksrc.unset{color:var(--muted)}
.ops-note{background:color-mix(in srgb,rgb(var(--rb-warn)) 10%,var(--card));border:1px solid color-mix(in srgb,rgb(var(--rb-warn)) 34%,var(--line));border-radius:var(--r);padding:13px 15px;font-size:.88rem;line-height:1.55;margin:0 0 16px}
.ops-note b{color:var(--fg)}
.ops-steps{counter-reset:s;display:grid;gap:14px;margin:0;padding:0;list-style:none}
.ops-step{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start}
.ops-step .n{counter-increment:s;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:rgb(var(--rb-deep));color:#fff;font-family:var(--mono);font-size:.76rem;font-weight:700}
.ops-step .n::before{content:counter(s)}
.ops-step.done .n{background:rgb(var(--rb-ok))}
.ops-step h4{margin:2px 0 4px;font-size:.98rem;font-family:var(--sans);font-weight:700}
.ops-step p{color:var(--muted);font-size:.88rem;line-height:1.55;margin:0}
.ops-pre{font-family:var(--mono);font-size:.78rem;line-height:1.6;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;overflow-x:auto;white-space:pre;margin:10px 0 0}
.ops-drop{border:2px dashed color-mix(in srgb,var(--fg) 22%,var(--line));border-radius:var(--r);padding:26px 18px;text-align:center;cursor:pointer;transition:border-color .18s,background .18s}
.ops-drop:hover,.ops-drop.on{border-color:rgb(var(--rb-deep));background:color-mix(in srgb,var(--fg) 3%,transparent)}
.ops-tbl{width:100%;border-collapse:collapse;font-size:.86rem;margin-top:12px}
.ops-tbl th,.ops-tbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
.ops-tbl th{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.ops-tbl td.n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}
/* semantic status inks, solved against the most tinted card surface in each theme */
:root{--rb-ok:14 95 65;--rb-warn:116 76 6}
html[data-theme="dark"]{--rb-ok:70 235 175;--rb-warn:255 201 77}

/* Status tiles carry meaning, so they opt out of the decorative hue rotation:
   a red 'Healthy' tile is worse than no colour at all. */
html[data-theme]:root .ops-sum.status>.astat{background-image:none;animation:none}
html[data-theme]:root .ops-sum.status>.astat.s-ok{background-color:color-mix(in srgb,rgb(var(--rb-ok)) 14%,rgb(var(--rb-surface)));border-color:color-mix(in srgb,rgb(var(--rb-ok)) 40%,rgb(var(--rb-line)))}
html[data-theme]:root .ops-sum.status>.astat.s-warn{background-color:color-mix(in srgb,rgb(var(--rb-warn)) 16%,rgb(var(--rb-surface)));border-color:color-mix(in srgb,rgb(var(--rb-warn)) 42%,rgb(var(--rb-line)))}
html[data-theme]:root .ops-sum.status>.astat.s-fail{background-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 13%,rgb(var(--rb-surface)));border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,rgb(var(--rb-line)))}
html[data-theme]:root .ops-sum.status>.astat.s-off{background-color:color-mix(in srgb,var(--fg) 5%,rgb(var(--rb-surface)))}
/* One primary action per page; the rest step back. */
html[data-theme]:root .btn-quiet{background-color:transparent;background-image:none;color:rgb(var(--rb-ink));border:1.5px solid rgb(var(--rb-line));box-shadow:none}
html[data-theme]:root .btn-quiet:hover{border-color:rgb(var(--rb-deep))}

/* The tinted icon chip is a flex child of a column card, so with no width of
   its own it stretched the full width of the card and the tint made that
   stretch visible as an empty bar. Its siblings in that rule are all fixed
   squares; this one was missing its geometry. */
html[data-theme]:root .mp-try-ic{
  align-self:start;width:38px;height:38px;display:grid;place-items:center;border-radius:4px;
}


/* ---- Bank Complaint AI ---------------------------------------------------
 * Built for a reader who takes meaning from an icon, a number and a colour
 * before a sentence. Big targets, few words, motion that explains rather than
 * decorates. Every animation is transform or opacity only. */
.bca-hero{position:relative;width:100vw;max-width:100%;margin-left:calc(50% - 50vw);overflow:hidden;
  min-height:clamp(520px,86vh,780px);display:flex;align-items:center;color:#fff}
.bca-hero-art{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bca-vault{position:absolute;right:-8%;top:50%;width:min(58vw,620px);height:min(58vw,620px);
  transform:translateY(-50%);opacity:.5}
.bca-ring{transform-origin:50% 50%;animation:bcaSpin 64s linear infinite}
.bca-ring.r2{animation-duration:96s;animation-direction:reverse}
.bca-ring.r3{animation-duration:132s}
@keyframes bcaSpin{to{transform:rotate(360deg)}}
.bca-ledger{position:absolute;left:0;right:0;bottom:0;height:44%;opacity:.22}
.bca-ledger i{position:absolute;left:0;right:0;height:1px;background:rgb(var(--rb-t-sky) / .5);
  transform-origin:left;animation:bcaLine 3.4s var(--ease) both}
.bca-hero-in{position:relative;z-index:2;width:100%}
.bca-kick{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.7rem;
  letter-spacing:.18em;text-transform:uppercase;color:rgb(var(--rb-coral-ink));margin-bottom:14px}
.bca-kick i{width:7px;height:7px;border-radius:50%;background:rgb(var(--rb-red));animation:bcaPulse 2.2s ease-in-out infinite}
@keyframes bcaPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}
.bca-h1{font-family:var(--serif);font-weight:600;letter-spacing:-.035em;line-height:1.02;
  font-size:clamp(2.4rem,7.4vw,4.6rem);margin:0;max-width:15ch}
.bca-h1 span{display:inline-block;opacity:0;transform:translateY(.5em);animation:bcaWord .7s var(--ease) both}
.bca-h1 em{font-style:normal;color:rgb(var(--rb-coral-ink))}
@keyframes bcaWord{to{opacity:1;transform:none}}
@keyframes bcaLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.bca-sub{margin:18px 0 0;max-width:26ch;font-size:clamp(1.02rem,2.4vw,1.2rem);line-height:1.5;
  color:rgba(255,255,255,.8);opacity:0;animation:bcaWord .7s var(--ease) .9s both}
.bca-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;opacity:0;animation:bcaWord .7s var(--ease) 1.1s both}
.bca-big{display:inline-flex;align-items:center;gap:12px;height:66px;padding:0 30px;border:0;cursor:pointer;
  border-radius:4px;font-family:inherit;font-weight:700;font-size:1.12rem;color:#fff;
  background:rgb(var(--rb-red-solid));box-shadow:0 14px 34px rgb(var(--rb-red) / .34);
  transition:transform .14s var(--ease),box-shadow .2s}
.bca-big:hover{transform:translateY(-2px);box-shadow:0 20px 46px rgb(var(--rb-red) / .44)}
.bca-big:active{transform:translateY(0) scale(.985)}
.bca-big .ic{width:22px;height:22px}
.bca-counts{display:flex;flex-wrap:wrap;gap:clamp(22px,5vw,56px);margin-top:clamp(30px,5vw,50px);
  opacity:0;animation:bcaWord .7s var(--ease) 1.3s both}
.bca-count b{display:block;font-family:var(--mono);font-size:clamp(1.7rem,4vw,2.7rem);font-weight:600;letter-spacing:-.03em}
.bca-count span{display:block;margin-top:6px;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.bca-trust{display:flex;flex-wrap:wrap;gap:18px 26px;margin-top:26px;opacity:0;animation:bcaWord .7s var(--ease) 1.5s both}
.bca-trust div{display:flex;align-items:center;gap:9px;font-size:.86rem;color:rgba(255,255,255,.8)}
.bca-trust .ic{width:19px;height:19px;color:rgb(var(--rb-t-sky));flex:none}

/* the four journey panels: an icon, three words, a number */
.bca-journey{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:clamp(40px,6vw,72px) 0}
.bca-step{position:relative;padding:26px 22px 24px;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.bca-step .n{position:absolute;top:14px;right:18px;font-family:var(--mono);font-size:2.6rem;font-weight:700;
  color:color-mix(in srgb,var(--fg) 8%,transparent);line-height:1}
.bca-step .ic{width:34px;height:34px;color:rgb(var(--rb-red-mark))}
.bca-step b{display:block;margin:14px 0 6px;font-size:1.06rem;font-family:var(--serif);font-weight:600}
.bca-step p{margin:0;font-size:.9rem;line-height:1.5;color:var(--muted)}

.bca-ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:8px 0}
.bca-ticker-track{display:flex;gap:38px;white-space:nowrap;animation:bcaTick 46s linear infinite;will-change:transform}
.bca-ticker-track span{font-size:.86rem;color:var(--muted);display:inline-flex;align-items:center;gap:8px}
.bca-ticker-track b{color:rgb(var(--rb-red-ink));font-family:var(--mono)}
@keyframes bcaTick{to{transform:translateX(-50%)}}

/* ---- the wizard --------------------------------------------------------- */
.bca-wrap{max-width:640px;margin:0 auto;padding:0 20px 40px}
.bca-dots{display:flex;gap:6px;margin:22px 0 6px}
.bca-dots i{height:4px;flex:1;border-radius:999px;background:var(--line);transition:background .3s var(--ease)}
.bca-dots i.on{background:rgb(var(--rb-red-solid))}
.bca-screen{display:none}
.bca-screen.on{display:block;animation:bcaIn .32s var(--ease) both}
@keyframes bcaIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.bca-q{font-family:var(--serif);font-size:clamp(1.7rem,5vw,2.3rem);font-weight:600;letter-spacing:-.02em;margin:16px 0 6px;line-height:1.1}
.bca-qs{color:var(--muted);font-size:1rem;margin:0 0 22px}
.bca-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.bca-opt{display:flex;flex-direction:column;gap:8px;align-items:flex-start;text-align:left;padding:16px 15px;
  border:1.5px solid var(--line);border-radius:4px;background:var(--card);color:var(--fg);cursor:pointer;
  font-family:inherit;transition:transform .14s var(--ease),border-color .16s,box-shadow .18s}
.bca-opt:hover{transform:translateY(-2px);box-shadow:var(--raise)}
.bca-opt.on{border-color:rgb(var(--rb-red-solid));box-shadow:0 0 0 3px rgb(var(--rb-red) / .14)}
.bca-opt .ic{width:26px;height:26px;color:rgb(var(--rb-red-mark))}
.bca-opt b{font-size:.98rem;line-height:1.25}
.bca-opt span{font-size:.82rem;color:var(--muted);line-height:1.4}
.bca-field{margin:0 0 16px}
.bca-field label{display:block;font-size:.9rem;font-weight:600;margin-bottom:7px}
.bca-field .inp,.bca-field input,.bca-field textarea,.bca-field select{width:100%;min-height:54px;padding:14px 15px;
  border:1.5px solid var(--line);border-radius:4px;background:var(--card);color:var(--fg);font:inherit;font-size:1.02rem}
.bca-field textarea{min-height:170px;line-height:1.6;resize:vertical}
.bca-mic{display:inline-flex;align-items:center;gap:9px;margin-top:10px;height:48px;padding:0 18px;border-radius:999px;
  border:1.5px solid var(--line);background:var(--card);color:var(--fg);font:inherit;font-weight:600;cursor:pointer}
.bca-mic.rec{border-color:rgb(var(--rb-red-solid));color:rgb(var(--rb-red-ink))}
.bca-mic.rec .ic{animation:bcaPulse 1.1s ease-in-out infinite}
.bca-nav{display:flex;gap:10px;margin-top:26px;align-items:center}
.bca-next{flex:1;height:60px;border:0;border-radius:4px;background:rgb(var(--rb-red-solid));color:#fff;
  font:inherit;font-weight:700;font-size:1.06rem;cursor:pointer;transition:transform .12s var(--ease),filter .18s}
.bca-next:disabled{opacity:.45;cursor:not-allowed}
.bca-next:not(:disabled):active{transform:scale(.99)}
.bca-back{height:60px;padding:0 20px;border:1.5px solid var(--line);border-radius:4px;background:none;color:var(--fg);font:inherit;cursor:pointer}
.bca-drop{border:2px dashed color-mix(in srgb,var(--fg) 22%,var(--line));border-radius:4px;padding:30px 18px;
  text-align:center;cursor:pointer;transition:border-color .18s,background .18s}
.bca-drop.on,.bca-drop:hover{border-color:rgb(var(--rb-red-solid));background:color-mix(in srgb,var(--fg) 3%,transparent)}
.bca-files{display:grid;gap:8px;margin-top:14px}
.bca-file{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--line);border-radius:4px}
.bca-file .ic{width:19px;height:19px;color:rgb(var(--rb-red-mark));flex:none}
.bca-file b{font-size:.9rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bca-file span{margin-left:auto;font-family:var(--mono);font-size:.74rem;color:var(--muted)}
.bca-save{font-size:.8rem;color:var(--muted);margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.bca-save i{width:6px;height:6px;border-radius:50%;background:rgb(var(--rb-ok));display:inline-block}

/* ---- the working screen ------------------------------------------------- */
.bca-work{max-width:560px;margin:0 auto;padding:clamp(30px,7vw,64px) 20px 60px}
.bca-stage{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:start;padding:15px 0;opacity:.34;
  transition:opacity .45s var(--ease)}
.bca-stage.on,.bca-stage.done{opacity:1}
.bca-stage .dot{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;
  font-family:var(--mono);font-size:.78rem;font-weight:700;color:var(--muted);transition:all .35s var(--ease)}
.bca-stage.on .dot{border-color:rgb(var(--rb-red-solid));color:rgb(var(--rb-red-ink));animation:bcaBeat 1.6s ease-in-out infinite}
.bca-stage.done .dot{border-color:rgb(var(--rb-ok));background:rgb(var(--rb-ok));color:#fff}
@keyframes bcaBeat{0%,100%{box-shadow:0 0 0 0 rgb(var(--rb-red) / .35)}70%{box-shadow:0 0 0 12px rgb(var(--rb-red) / 0)}}
.bca-stage b{display:block;font-size:1.02rem;font-weight:600}
.bca-stage p{margin:3px 0 0;font-size:.88rem;color:var(--muted);line-height:1.5}
.bca-seal{width:120px;height:120px;margin:26px auto 0;display:grid;place-items:center;border-radius:50%;
  border:3px solid rgb(var(--rb-ok));color:rgb(var(--rb-ok));opacity:0;transform:scale(.4) rotate(-12deg)}
.bca-seal.on{animation:bcaSeal .7s cubic-bezier(.2,1.4,.4,1) forwards}
.bca-seal .ic{width:54px;height:54px}
@keyframes bcaSeal{60%{opacity:1;transform:scale(1.12) rotate(3deg)}100%{opacity:1;transform:scale(1) rotate(0)}}

/* ---- the result --------------------------------------------------------- */
.bca-letter{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:clamp(22px,4vw,38px);
  box-shadow:var(--raise);font-size:.97rem;line-height:1.72}
.bca-letter h1,.bca-letter h2,.bca-letter h3{font-family:var(--sans);font-weight:700;font-size:1.02rem;margin:22px 0 8px}
.bca-letter p{margin:0 0 13px}
.bca-letter ol,.bca-letter ul{margin:0 0 13px;padding-left:22px}
.bca-letter li{margin-bottom:7px}
.bca-check{display:grid;gap:10px;margin-top:14px}
.bca-check-item{display:grid;grid-template-columns:24px 1fr;gap:12px;padding:14px 15px;border-radius:4px;
  border:1px solid color-mix(in srgb,rgb(var(--rb-warn)) 34%,var(--line));
  background:color-mix(in srgb,rgb(var(--rb-warn)) 9%,var(--card))}
.bca-check-item .ic{width:20px;height:20px;color:rgb(var(--rb-warn));margin-top:2px}
.bca-check-item b{display:block;font-size:.95rem}
.bca-check-item span{font-size:.86rem;color:var(--muted);line-height:1.5}
.bca-rung{display:grid;grid-template-columns:38px 1fr auto;gap:14px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}
.bca-rung:first-child{border-top:0}
.bca-rung .rd{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);
  font-size:.8rem;font-weight:700;border:2px solid var(--line);color:var(--muted)}
.bca-rung.ready .rd{border-color:rgb(var(--rb-ok));color:rgb(var(--rb-ok))}
.bca-rung.done .rd{background:rgb(var(--rb-ok));border-color:rgb(var(--rb-ok));color:#fff}
.bca-rung.expired .rd{border-color:rgb(var(--rb-red-solid));color:rgb(var(--rb-red-ink))}
.bca-rung b{display:block;font-size:1rem}
.bca-rung p{margin:3px 0 0;font-size:.86rem;color:var(--muted);line-height:1.5}
.bca-chip{font-family:var(--mono);font-size:.7rem;font-weight:600;padding:4px 9px;border-radius:999px;white-space:nowrap;
  border:1px solid var(--line);color:var(--muted)}
.bca-chip.ready{color:rgb(var(--rb-ok));border-color:color-mix(in srgb,rgb(var(--rb-ok)) 40%,var(--line))}
.bca-chip.soon{color:rgb(var(--rb-warn));border-color:color-mix(in srgb,rgb(var(--rb-warn)) 40%,var(--line))}
.bca-chip.expired{color:rgb(var(--rb-red-ink));border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,var(--line))}

/* ---- the review screen -------------------------------------------------- */
.bca-rev{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;
  padding:12px 0;border-top:1px solid var(--line)}
.bca-rev:first-child{border-top:0}
.bca-rev .k{font-size:.82rem;color:var(--muted)}
.bca-rev b{font-size:.95rem;font-weight:600;text-align:right;min-width:0;overflow-wrap:anywhere}
.bca-rev .lnk{background:none;border:0;padding:0 0 0 6px;font:inherit;font-size:.8rem;cursor:pointer;
  color:rgb(var(--rb-red-nav));text-decoration:underline;text-underline-offset:2px}
.bca-rev .lnk:hover{color:rgb(var(--rb-red-ink))}

@media (prefers-reduced-motion:reduce){
  .bca-ring,.bca-ticker-track,.bca-kick i,.bca-stage.on .dot{animation:none}
  .bca-h1 span,.bca-sub,.bca-cta,.bca-counts,.bca-trust,.bca-ledger i{animation:none;opacity:1;transform:none}
  .bca-screen.on{animation:none}
  .bca-seal.on{animation:none;opacity:1;transform:none}
}
.bca-rung-do{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}

/* The desktop header now carries ten items. It has always been a horizontal
   scroller, but an item that can only be reached by scrolling is an item
   nobody finds, so the two tightest breakpoints get a little more room. */
@media (min-width:1480px) and (max-width:1559px){.hdr-nav a{padding:8px 6px;font-size:.83rem}}
@media (min-width:1360px) and (max-width:1479px){.hdr-nav a{padding:8px 3px;font-size:.78rem;letter-spacing:-.015em}.hdr-nav{gap:0}}
@media (min-width:1024px) and (max-width:1359px){.hdr-nav a{padding:7px 3px;font-size:.72rem;letter-spacing:-.02em}.hdr-nav{gap:0}}

/* The last FAQ used to sit flush against the mobile bottom bar. */
.bca-faq-end{height:clamp(28px,7vw,56px)}
.bca-proof{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:6px}


/* ======================= DEVICE TRUST + PROFILE PROGRESS ==================
 * Built from the same aurora tokens as the rest of the site, so the unlock
 * screen reads as Bankerpedia rather than as a generic lock page.
 * ===================================================================== */

/* ---- the unlock screen ---------------------------------------------------
 * Deliberately dark in both themes. This is the app's front door and it is a
 * brand moment, the way a bank app splash is, so it does not follow the
 * reading theme. */
.bp-lock{position:fixed;inset:0;z-index:9000;display:none;flex-direction:column;
  align-items:center;justify-content:center;padding:32px 22px calc(32px + env(safe-area-inset-bottom));
  color:#fff;text-align:center;overscroll-behavior:contain;
  background-image:
    radial-gradient(58% 62% at 14% 10%,rgb(var(--rb-t-indigo) / .46) 0%,rgb(var(--rb-t-indigo) / 0) 66%),
    radial-gradient(52% 58% at 86% 6%,rgb(var(--rb-t-red) / .34) 0%,rgb(var(--rb-t-red) / 0) 62%),
    radial-gradient(66% 66% at 70% 96%,rgb(var(--rb-t-violet) / .36) 0%,rgb(var(--rb-t-violet) / 0) 70%),
    radial-gradient(48% 52% at 34% 74%,rgb(var(--rb-t-sky) / .22) 0%,rgb(var(--rb-t-sky) / 0) 68%),
    linear-gradient(160deg,#0B1330 0%,#070B1F 52%,#0A1128 100%);
  background-color:#070B1F}
.bp-lock.on{display:flex;animation:bpLockIn .34s var(--ease) both}
@keyframes bpLockIn{from{opacity:0}to{opacity:1}}
html.bp-locked,html.bp-locked body{overflow:hidden}

/* The lockup renders exactly the way the header renders it: a fixed height, a
   natural width, object-fit contain. An earlier version cropped to the ink box
   using numbers measured from the logo file, which cut the wordmark in half the
   moment the logo was replaced at the same URL. Measurements of an asset the
   owner can change do not belong in the stylesheet. */
.bp-lock-logo{display:inline-flex;align-items:center;justify-content:center;
  height:clamp(38px,9vw,50px);max-width:min(320px,76vw);margin:0 auto 26px;
  animation:bpRise .5s var(--ease) both}
.bp-lock-logo img{height:100%;width:auto;max-width:100%;display:block;object-fit:contain}
@keyframes bpRise{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}

.bp-lock-hi{font-family:var(--serif);font-size:clamp(1.5rem,4.6vw,2rem);font-weight:600;
  letter-spacing:-.02em;margin:0 0 6px;animation:bpRise .5s .06s var(--ease) both}
.bp-lock-sub{color:rgba(255,255,255,.82);font-size:1rem;margin:0 0 34px;max-width:22rem;
  line-height:1.55;animation:bpRise .5s .12s var(--ease) both}
.bp-lock-msg{min-height:1.3em;font-size:.92rem;color:rgba(255,255,255,.86);margin:20px 0 0;max-width:23rem;line-height:1.5}
.bp-lock-msg.bad{color:rgb(var(--rb-coral-ink))}

/* The target. Big enough to hit with a thumb without looking. */
.bp-touch{width:126px;height:126px;border-radius:50%;border:0;cursor:pointer;padding:0;
  display:grid;place-items:center;position:relative;color:#fff;
  background:radial-gradient(circle at 50% 42%,rgb(var(--rb-t-red) / .95) 0%,rgb(var(--rb-red-solid)) 62%,rgb(var(--rb-red-ink)) 100%);
  box-shadow:0 14px 40px rgb(var(--rb-t-red) / .40);
  animation:bpRise .5s .18s var(--ease) both}
/* Above the glow: an absolutely positioned sibling paints over static content,
   which washed the glyph out. */
.bp-touch .ic{width:60px;height:60px;stroke-width:1.6;position:relative;z-index:1}
.bp-touch:active{transform:scale(.96)}
/* The fingerprint never moves. It is a sensor, not a spinner, and a rotating
   one reads as a loading throbber rather than something to touch. The life in
   the button comes from colour: a slow breath while it waits, a faster one
   while it is checking. Both are opacity on a layer above, so the work happens
   on the compositor and the glyph itself is never repainted. */
.bp-touch-glow{position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 50% 42%,rgb(var(--rb-t-rose)) 0%,rgb(var(--rb-t-red)) 70%);
  opacity:0;animation:bpBreathe 3.2s ease-in-out infinite}
@keyframes bpBreathe{0%,100%{opacity:0}50%{opacity:.5}}
.bp-touch.busy{pointer-events:none}
.bp-touch.busy .bp-touch-glow{animation-duration:1s}
.bp-touch.busy .ic{animation:none}

.bp-lock-alts{display:flex;flex-direction:column;gap:4px;margin-top:30px;
  animation:bpRise .5s .24s var(--ease) both}
.bp-lock-alts button,.bp-lock-alts a{background:none;border:0;color:#fff;font:inherit;font-size:.92rem;
  font-weight:600;padding:11px 16px;border-radius:4px;cursor:pointer;text-decoration:none;
  transition:background .16s var(--ease)}
.bp-lock-alts button:hover,.bp-lock-alts a:hover{background:rgba(255,255,255,.12)}
.bp-lock-alts .quiet{color:rgba(255,255,255,.66);font-weight:500;font-size:.86rem}

/* ---- the PIN pad --------------------------------------------------------- */
.bp-pin{display:none;width:100%;max-width:300px;margin:0 auto}
/* The UA rule for [hidden] is display:none at the lowest possible specificity,
   so any class that sets display (.btn is inline-flex) silently defeats it.
   Inside these components, hidden means hidden. */
.bp-lock [hidden],.bp-offer [hidden],#bpAddDevice[hidden],#bpPinForm[hidden]{display:none!important}
.bp-lock.pin .bp-pin{display:block;animation:bpRise .3s var(--ease) both}
.bp-lock.pin .bp-touch{display:none}
.bp-pin-dots{display:flex;gap:14px;justify-content:center;margin:8px 0 26px}
.bp-pin-dots i{width:13px;height:13px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);
  transition:background .14s var(--ease),transform .14s var(--ease),border-color .14s}
.bp-pin-dots i.on{background:#fff;border-color:#fff;transform:scale(1.16)}
.bp-pin-dots.err{animation:bpShake .4s}
@keyframes bpShake{0%,100%{transform:none}20%{transform:translate3d(-8px,0,0)}40%{transform:translate3d(8px,0,0)}60%{transform:translate3d(-5px,0,0)}80%{transform:translate3d(5px,0,0)}}
.bp-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;justify-items:center}
/* A fixed square, not a stretched grid cell: border-radius 50% on a cell wider
   than it is tall gives ellipses, which is what a keypad must never look like. */
.bp-keys button{width:66px;height:66px;border-radius:50%;border:1px solid rgba(255,255,255,.20);
  background:rgba(255,255,255,.08);color:#fff;font-size:1.5rem;font-weight:500;cursor:pointer;
  font-family:var(--mono);display:grid;place-items:center;padding:0;
  transition:background .14s var(--ease),transform .1s var(--ease)}
.bp-keys button:hover{background:rgba(255,255,255,.16)}
.bp-keys button:active{transform:scale(.93)}
.bp-keys button.fn{background:none;border-color:transparent;font-size:.86rem;font-family:inherit;font-weight:600}
.bp-keys button.fn:hover{background:rgba(255,255,255,.12)}
.bp-keys button .ic{width:24px;height:24px}

/* ---- the enrolment offer ------------------------------------------------- */
.bp-offer{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate3d(-50%,140%,0);
  z-index:8000;width:min(430px,calc(100vw - 28px));background:var(--card);border:1.5px solid var(--line);
  border-radius:6px;box-shadow:0 18px 50px rgba(7,11,31,.30);padding:18px;
  transition:transform .42s var(--ease)}
.bp-offer.on{transform:translate3d(-50%,0,0)}
@media (max-width:820px){.bp-offer{bottom:calc(78px + env(safe-area-inset-bottom))}}
.bp-offer-top{display:flex;gap:13px;align-items:flex-start}
.bp-offer-ic{width:42px;height:42px;border-radius:5px;flex:none;display:grid;place-items:center;color:#fff;
  background:linear-gradient(140deg,rgb(var(--rb-red)),rgb(var(--rb-red-solid)))}
.bp-offer-ic .ic{width:23px;height:23px}
.bp-offer b{display:block;font-size:1rem;margin-bottom:3px}
.bp-offer p{margin:0;font-size:.88rem;color:var(--muted);line-height:1.5}
.bp-offer-row{display:flex;gap:9px;margin-top:15px}
.bp-offer-row .btn{flex:1;justify-content:center}

/* ---- security settings --------------------------------------------------- */
.bp-devs{display:flex;flex-direction:column;gap:0;margin-top:6px}
.bp-dev{display:grid;grid-template-columns:40px 1fr auto;gap:13px;align-items:center;
  padding:15px 0;border-top:1px solid var(--line)}
.bp-dev:first-child{border-top:0}
.bp-dev-ic{width:40px;height:40px;border-radius:5px;display:grid;place-items:center;
  background:color-mix(in srgb,rgb(var(--rb-sky)) 12%,var(--card));color:rgb(var(--rb-blue-ink))}
.bp-dev-ic .ic{width:21px;height:21px}
.bp-dev b{display:block;font-size:.96rem}
.bp-dev span{display:block;font-size:.8rem;color:var(--muted);margin-top:2px}
.bp-dev .tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.bp-dev .tags i{font-style:normal;font-family:var(--mono);font-size:.66rem;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;border-radius:999px;
  border:1px solid var(--line);color:var(--muted)}
.bp-dev .tags i.this{color:rgb(var(--rb-ok));border-color:color-mix(in srgb,rgb(var(--rb-ok)) 40%,var(--line))}
.bp-dev-x{background:none;border:1px solid var(--line);border-radius:4px;padding:7px 12px;
  font:inherit;font-size:.84rem;font-weight:600;cursor:pointer;color:rgb(var(--rb-red-ink));
  transition:background .15s var(--ease),border-color .15s}
.bp-dev-x:hover{background:color-mix(in srgb,rgb(var(--rb-red-solid)) 8%,transparent);
  border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,var(--line))}
.bp-dev-x:disabled{opacity:.5;cursor:default}
.bp-sec-empty{color:var(--muted);font-size:.9rem;margin:2px 0 14px;line-height:1.6}

/* ---- profile completion -------------------------------------------------- */
.bp-prog{border:1.5px solid var(--line);border-radius:6px;padding:clamp(17px,3.4vw,24px);
  background:var(--card);position:relative;overflow:hidden}
.bp-prog::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:radial-gradient(120% 150% at 100% 0%,rgb(var(--rb-sky) / .10) 0%,transparent 60%)}
.bp-prog > *{position:relative}
.bp-prog-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.bp-prog-head h3{font-family:var(--serif);font-size:clamp(1.14rem,2.6vw,1.4rem);font-weight:600;
  letter-spacing:-.015em;margin:0}
.bp-prog-head p{margin:5px 0 0;color:var(--muted);font-size:.92rem;line-height:1.55;max-width:44ch}
.bp-prog-pct{margin-left:auto;font-family:var(--mono);font-size:1.7rem;font-weight:700;
  line-height:1;color:rgb(var(--rb-red-nav));font-variant-numeric:tabular-nums}
.bp-prog-pct small{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin-top:5px;text-align:right}

.bp-bar{height:9px;border-radius:999px;background:color-mix(in srgb,var(--fg) 8%,transparent);
  margin:17px 0 4px;overflow:hidden}
.bp-bar i{display:block;height:100%;border-radius:999px;width:0;
  background:linear-gradient(90deg,rgb(var(--rb-red)),rgb(var(--rb-coral)) 55%,rgb(var(--rb-gold)));
  transition:width 1.1s cubic-bezier(.22,1,.36,1)}
.bp-bar.done i{background:linear-gradient(90deg,rgb(var(--rb-ok)),rgb(var(--rb-sky)))}
.bp-prog-meta{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);
  font-family:var(--mono);letter-spacing:.03em}

.bp-steps{margin-top:19px;display:flex;flex-direction:column;gap:0}
.bp-step{display:grid;grid-template-columns:28px 1fr auto;gap:13px;align-items:start;
  padding:14px 0;border-top:1px solid var(--line);text-align:left;background:none;border-left:0;
  border-right:0;border-bottom:0;width:100%;font:inherit;color:inherit;cursor:pointer;
  transition:background .16s var(--ease)}
.bp-step:hover{background:color-mix(in srgb,var(--fg) 3%,transparent)}
.bp-step.done{cursor:default}
.bp-step.done:hover{background:none}
.bp-tick{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);display:grid;
  place-items:center;color:transparent;transition:border-color .3s var(--ease),background .3s var(--ease),color .3s}
.bp-tick .ic{width:15px;height:15px;stroke-width:3}
.bp-step.done .bp-tick{background:rgb(var(--rb-ok));border-color:rgb(var(--rb-ok));color:#fff}
.bp-step b{display:block;font-size:.97rem;font-weight:600}
.bp-step.done b{color:var(--muted);font-weight:500}
.bp-step p{margin:4px 0 0;font-size:.86rem;color:var(--muted);line-height:1.55}
.bp-step-pts{font-family:var(--mono);font-size:.78rem;font-weight:700;white-space:nowrap;
  color:rgb(var(--rb-red-nav));padding-top:4px}
.bp-step.done .bp-step-pts{color:rgb(var(--rb-ok))}
.bp-step-go{display:inline-flex;align-items:center;gap:5px;margin-top:9px;font-size:.85rem;
  font-weight:600;color:rgb(var(--rb-red-nav))}
.bp-step-go .ic{width:14px;height:14px}
.bp-step:hover .bp-step-go{text-decoration:underline;text-underline-offset:3px}

/* The finish line. Shown only when the milestone is genuinely earned. */
.bp-done{margin-top:18px;border-radius:6px;padding:16px 18px;display:flex;gap:13px;align-items:center;
  border:1px solid color-mix(in srgb,rgb(var(--rb-ok)) 34%,var(--line));
  background:color-mix(in srgb,rgb(var(--rb-ok)) 8%,var(--card))}
.bp-done .ic{width:24px;height:24px;color:rgb(var(--rb-ok));flex:none}
.bp-done b{display:block;font-size:.96rem}
.bp-done span{font-size:.86rem;color:var(--muted);line-height:1.5}

/* The Full Profile mark. Named so it cannot be read as identity verification,
   which is what the existing tick beside a name already means. */
.bp-mark{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:.62rem;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;
  vertical-align:middle;color:rgb(var(--rb-ok));
  border:1px solid color-mix(in srgb,rgb(var(--rb-ok)) 42%,var(--line));
  background:color-mix(in srgb,rgb(var(--rb-ok)) 8%,transparent)}
.bp-mark .ic{width:11px;height:11px;stroke-width:3}

/* A compact strip for the home page and the profile header. */
.bp-mini{display:flex;align-items:center;gap:13px;border:1.5px solid var(--line);border-radius:6px;
  padding:13px 15px;background:var(--card);text-decoration:none;color:inherit;
  transition:border-color .16s var(--ease),transform .16s var(--ease)}
.bp-mini:hover{border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,var(--line));transform:translate3d(0,-1px,0)}
.bp-mini-ring{width:46px;height:46px;flex:none;position:relative;display:grid;place-items:center}
.bp-mini-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.bp-mini-ring circle{fill:none;stroke-width:4}
.bp-mini-ring .t{stroke:color-mix(in srgb,var(--fg) 10%,transparent)}
.bp-mini-ring .v{stroke:rgb(var(--rb-red-solid));stroke-linecap:round;
  transition:stroke-dashoffset 1.1s cubic-bezier(.22,1,.36,1)}
.bp-mini-ring b{font-family:var(--mono);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}
.bp-mini-txt b{display:block;font-size:.93rem}
.bp-mini-txt span{font-size:.83rem;color:var(--muted)}
.bp-mini .go{margin-left:auto;color:var(--muted)}
.bp-mini .go .ic{width:17px;height:17px}

/* A points bump, shown once when a step is actually paid for. */
.bp-pop{position:fixed;left:50%;top:22%;transform:translate3d(-50%,0,0);z-index:9500;pointer-events:none;
  font-family:var(--mono);font-size:2.2rem;font-weight:700;color:rgb(var(--rb-ok));
  text-shadow:0 4px 18px rgba(7,11,31,.28);opacity:0}
.bp-pop.go{animation:bpPop 1.5s var(--ease) forwards}
@keyframes bpPop{0%{opacity:0;transform:translate3d(-50%,14px,0) scale(.8)}
  22%{opacity:1;transform:translate3d(-50%,0,0) scale(1)}
  70%{opacity:1;transform:translate3d(-50%,0,0) scale(1)}
  100%{opacity:0;transform:translate3d(-50%,-26px,0) scale(1)}}

@media (prefers-reduced-motion:reduce){
  .bp-lock.on,.bp-lock-logo,.bp-lock-hi,.bp-lock-sub,.bp-touch,.bp-lock-alts,.bp-pin{animation:none;opacity:1;transform:none}
  .bp-touch-glow{animation:none;opacity:.32}
  .bp-touch.busy .ic{animation:none}
  .bp-bar i,.bp-mini-ring .v{transition:none}
  .bp-offer{transition:none}
  .bp-pin-dots.err{animation:none}
  .bp-pop.go{animation:none;opacity:1}
}

/* ---- securing a new device ------------------------------------------------ */
.bp-secure{max-width:520px;margin:0 auto;padding:clamp(26px,6vh,54px) 20px 60px;text-align:center}
.bp-secure-logo{display:inline-flex;align-items:center;height:38px;max-width:220px;margin-bottom:26px}
.bp-secure-logo img{height:100%;width:auto;max-width:100%;display:block;object-fit:contain}
.bp-secure-h{font-family:var(--serif);font-size:clamp(1.6rem,5vw,2.2rem);font-weight:600;
  letter-spacing:-.02em;margin:0 0 8px;line-height:1.15}
.bp-secure-sub{color:var(--muted);font-size:1rem;margin:0 auto 26px;max-width:26rem;line-height:1.6}
.bp-secure-card{border:1.5px solid var(--line);border-radius:6px;background:var(--card);
  padding:clamp(18px,4vw,26px);text-align:left;position:relative;overflow:hidden}
.bp-secure-card::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:radial-gradient(130% 150% at 100% 0%,rgb(var(--rb-red) / .10) 0%,transparent 62%)}
.bp-secure-card > *{position:relative}
.bp-secure-why{display:flex;flex-direction:column;gap:15px;margin-bottom:22px}
.bp-secure-row{display:flex;gap:13px;align-items:flex-start}
.bp-secure-row .ic{width:21px;height:21px;flex:none;color:rgb(var(--rb-red-nav));margin-top:2px}
.bp-secure-row b{display:block;font-size:.96rem}
.bp-secure-row span{font-size:.86rem;color:var(--muted);line-height:1.5}
.bp-secure-go{width:100%;height:56px;border:0;border-radius:5px;cursor:pointer;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;font:inherit;
  font-size:1rem;font-weight:700;position:relative;overflow:hidden;
  background:linear-gradient(135deg,rgb(var(--rb-red)),rgb(var(--rb-red-solid)));
  box-shadow:0 10px 26px rgb(var(--rb-red-solid) / .32)}
.bp-secure-go .ic{width:24px;height:24px}
.bp-secure-go:disabled{cursor:default}
.bp-secure-go::after{content:"";position:absolute;inset:0;background:rgb(var(--rb-t-rose));opacity:0;
  animation:bpBreathe 3.2s ease-in-out infinite;pointer-events:none}
.bp-secure-go:disabled::after{animation-duration:1s}
.bp-secure-go.alt{margin-top:6px;background:var(--ink);box-shadow:none}
.bp-secure-pin{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}
.bp-secure-note{font-size:.88rem;color:var(--muted);line-height:1.55;margin:0 0 14px}
.bp-secure-msg{min-height:1.2em;font-size:.9rem;margin:13px 0 0;color:var(--muted)}
.bp-secure-msg.bad{color:rgb(var(--rb-red-ink))}
.bp-secure-skip{display:block;margin-top:16px;font-size:.85rem;color:var(--muted);text-align:center}
@media (prefers-reduced-motion:reduce){.bp-secure-go::after{animation:none;opacity:0}}

/* ---- the declaration panel ------------------------------------------------
 * Sits inside the progress card, folded away until one of its two steps is
 * tapped. It is a form, so it looks like the rest of the site's forms rather
 * than inventing a new one. */
.bp-declare{margin-top:14px;padding:16px;border-radius:8px;border:1.5px solid var(--line);
  background:color-mix(in srgb,var(--fg) 3%,var(--card))}
.bp-declare[hidden]{display:none!important}
.bp-dec-head b{display:block;font-size:1rem;font-weight:700}
.bp-dec-head p{margin:4px 0 0;font-size:.85rem;color:var(--muted);line-height:1.55}
.bp-dec-field{margin-top:15px}
.bp-dec-field .lbl{display:block;font-size:.85rem;font-weight:600;margin-bottom:7px}
.bp-dec-field .inp{width:100%;max-width:420px}
.bp-dec-other{margin-top:9px}
.bp-dec-other[hidden]{display:none!important}
.bp-dec-pick{display:grid;gap:9px;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));max-width:420px}
.bp-dec-opt{text-align:left;padding:12px 13px;border-radius:6px;border:1.5px solid var(--line);
  background:var(--card);color:var(--fg);font:inherit;cursor:pointer;
  transition:border-color .15s var(--ease),background .15s var(--ease)}
.bp-dec-opt b{display:block;font-size:.92rem;font-weight:700}
.bp-dec-opt span{display:block;font-size:.79rem;color:var(--muted);margin-top:2px;line-height:1.45}
.bp-dec-opt:hover{border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,var(--line))}
.bp-dec-opt:focus-visible{outline:2px solid rgb(var(--rb-red-solid));outline-offset:2px}
.bp-dec-opt.on{border-color:rgb(var(--rb-red-solid));background:rgba(var(--rb-red-solid),.07)}
.bp-dec-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}
.bp-dec-close{border:1.5px solid var(--line);background:var(--card);color:var(--muted)}
.bp-dec-msg{margin-top:10px;min-height:1.15em;font-size:.85rem;color:var(--muted)}
.bp-dec-msg.ok{color:rgb(var(--rb-ok))}
.bp-dec-msg.bad{color:rgb(var(--rb-red-ink))}
@media (prefers-reduced-motion:reduce){.bp-dec-opt{transition:none}}


/* Chart palette. Two categorical slots and a five step single-hue ramp, all
   validated rather than eyeballed: worst all-pairs CVD delta E 26.8 light and
   21.5 dark, normal vision 35.4 and 31.5, every step inside its lightness band
   and above 3:1 on its own surface. */
.viz{--viz-1:#D6101E;--viz-2:#1D6FD0;
  --viz-s1:#FDDCDF;--viz-s2:#F9A8AE;--viz-s3:#F26A75;--viz-s4:#E03040;--viz-s5:#A50F1B;
  --viz-grid:color-mix(in srgb,var(--fg) 10%,transparent);--viz-axis:var(--muted)}
html[data-theme="dark"] .viz{--viz-1:#F0505C;--viz-2:#3D93EA;
  --viz-s1:#F7A9AF;--viz-s2:#F0707B;--viz-s3:#DC4250;--viz-s4:#B02A38;--viz-s5:#7A1B26}


/* ============================== CHARTS ================================== */
.viz{position:relative;margin:0}
.viz-cap{font-size:.82rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;
  color:var(--muted);margin:0 0 12px}
.viz-empty{color:var(--muted);font-size:.9rem;padding:22px 0;line-height:1.6}
.viz svg{width:100%;height:auto;display:block;overflow:visible}
.viz-grid line{stroke:var(--viz-grid);stroke-width:1}
.viz-grid text,.viz-xlab text{fill:var(--viz-axis);font-size:11px;font-family:var(--mono)}
.viz-fill{opacity:0;transition:opacity .7s .35s var(--ease)}
.viz-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:2000;stroke-dashoffset:2000;transition:stroke-dashoffset 1.5s var(--ease)}
[data-viz].in .viz-fill{opacity:1}
[data-viz].in .viz-line{stroke-dashoffset:0}
.viz-hit{fill:transparent;cursor:crosshair}
.viz-hit:hover{fill:var(--viz-1);fill-opacity:.16}

.viz-barlist{display:flex;flex-direction:column;gap:9px}
.viz-bar{display:grid;grid-template-columns:minmax(88px,42%) 1fr auto;gap:11px;align-items:center;cursor:default}
.viz-bl{font-size:.86rem;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.viz-bt{height:20px;border-radius:3px;background:color-mix(in srgb,var(--fg) 6%,transparent);overflow:hidden}
.viz-bt i{display:block;height:100%;width:var(--w);border-radius:3px;transform:scaleX(0);
  transform-origin:left center;transition:transform 1s var(--ease)}
[data-viz].in .viz-bt i{transform:scaleX(1)}
.viz-bar:nth-child(2) .viz-bt i{transition-delay:.05s}
.viz-bar:nth-child(3) .viz-bt i{transition-delay:.1s}
.viz-bar:nth-child(4) .viz-bt i{transition-delay:.15s}
.viz-bar:nth-child(5) .viz-bt i{transition-delay:.2s}
.viz-bar:nth-child(n+6) .viz-bt i{transition-delay:.25s}
.viz-bv{font-family:var(--mono);font-size:.82rem;font-weight:700;min-width:3ch;text-align:right}
.viz-bar:hover .viz-bt{background:color-mix(in srgb,var(--fg) 10%,transparent)}

.viz-fn{display:grid;grid-template-columns:1fr;gap:6px;padding:11px 0;border-top:1px solid var(--line)}
.viz-fn:first-of-type{border-top:0}
.viz-fl{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.viz-fl b{font-size:.95rem}
.viz-fl span{font-family:var(--mono);font-size:.78rem;color:var(--muted)}
.viz-ft{height:12px;border-radius:3px;background:color-mix(in srgb,var(--fg) 6%,transparent);overflow:hidden}
.viz-ft i{display:block;height:100%;width:var(--w);border-radius:3px;transform:scaleX(0);
  transform-origin:left center;transition:transform 1.05s var(--ease)}
[data-viz].in .viz-ft i{transform:scaleX(1)}
.viz-fn:nth-of-type(2) .viz-ft i{transition-delay:.08s}
.viz-fn:nth-of-type(3) .viz-ft i{transition-delay:.16s}
.viz-fn:nth-of-type(4) .viz-ft i{transition-delay:.24s}

.viz-table{margin-top:14px}
.viz-table summary{font-size:.8rem;color:var(--muted);cursor:pointer;list-style:none;
  display:inline-flex;align-items:center;gap:6px;padding:4px 0}
.viz-table summary::before{content:"+";font-family:var(--mono);font-weight:700}
.viz-table[open] summary::before{content:"−"}
.viz-table summary::-webkit-details-marker{display:none}
.viz-table table{width:100%;border-collapse:collapse;margin-top:8px;font-size:.82rem}
.viz-table th,.viz-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.viz-table th{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.viz-table td:last-child,.viz-table th:last-child{text-align:right;font-family:var(--mono)}

.viz-tip{position:fixed;z-index:9600;pointer-events:none;opacity:0;transform:translate3d(0,4px,0);
  background:var(--ink);color:#fff;border-radius:4px;padding:7px 11px;font-size:.8rem;line-height:1.35;
  box-shadow:0 8px 24px rgba(7,11,31,.30);transition:opacity .12s,transform .12s;max-width:220px}
.viz-tip.on{opacity:1;transform:translate3d(0,0,0)}
.viz-tip b{display:block;font-family:var(--mono);font-size:.9rem}

.viz-stat{border:1px solid var(--line);border-radius:5px;padding:15px 16px;background:var(--card);
  position:relative;overflow:hidden}
.viz-stat .v{font-family:var(--mono);font-size:clamp(1.5rem,3.6vw,2rem);font-weight:700;line-height:1;
  font-variant-numeric:tabular-nums}
.viz-stat .k{font-size:.8rem;color:var(--muted);margin-top:6px}
.viz-stat .s{font-size:.74rem;color:var(--muted);margin-top:3px;opacity:.85}
.viz-stat.viz-good .v{color:rgb(var(--rb-ok))}
.viz-stat.viz-warn .v{color:rgb(var(--rb-warn))}
.viz-stat.viz-brand .v{color:rgb(var(--rb-red-nav))}
.viz-row{display:grid;gap:11px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}

@media (prefers-reduced-motion:reduce){
  .viz-fill,.viz-line,.viz-bt i,.viz-ft i{transition:none}
  .viz-line{stroke-dashoffset:0}
  .viz-fill{opacity:1}
  .viz-bt i,.viz-ft i{transform:scaleX(1)}
}

/* ---- complaint console ---------------------------------------------------- */
.cm-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));margin-top:14px}
.cm-base{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin:14px 0 16px}
.cm-basef .inp{margin-top:5px}
.cm-hint{display:block;font-size:.76rem;color:var(--muted);margin-top:5px;line-height:1.45}
.cm-tablewrap{overflow-x:auto;margin-top:12px}
.cm-table{width:100%;border-collapse:collapse;font-size:.86rem;min-width:640px}
.cm-table th{text-align:left;font-family:var(--mono);font-size:.68rem;text-transform:uppercase;
  letter-spacing:.06em;color:var(--muted);padding:8px 10px;border-bottom:1.5px solid var(--line)}
.cm-table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.cm-table td b{display:block;font-size:.9rem}
.cm-table td span{display:block;font-size:.78rem;color:var(--muted)}
.cm-table tr:hover td{background:color-mix(in srgb,var(--fg) 3%,transparent)}
.cm-none{color:var(--muted);text-align:center;padding:26px 0!important}
.cm-act{white-space:nowrap;display:flex;gap:7px;align-items:center}
.cm-st{display:inline-block;font-family:var(--mono);font-size:.68rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;padding:3px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.cm-st.ready{color:rgb(var(--rb-blue-ink));border-color:color-mix(in srgb,rgb(var(--rb-sky)) 40%,var(--line))}
.cm-st.resolved{color:rgb(var(--rb-ok));border-color:color-mix(in srgb,rgb(var(--rb-ok)) 40%,var(--line))}
.cm-st.error{color:rgb(var(--rb-red-ink));border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,var(--line))}
.cm-st.running{color:rgb(var(--rb-warn));border-color:color-mix(in srgb,rgb(var(--rb-warn)) 40%,var(--line))}

/* ---- the admin shell ------------------------------------------------------ */
.adm{display:grid;grid-template-columns:236px 1fr;gap:0;min-height:70vh;align-items:start}
.adm-rail{position:sticky;top:calc(var(--header-h) + 10px);align-self:start;padding:6px 14px 24px 0;
  border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px;max-height:calc(100vh - var(--header-h) - 20px);overflow-y:auto}
.adm-brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:.95rem;color:var(--fg);
  text-decoration:none;padding:8px 12px;margin-bottom:8px}
.adm-brand .ic{width:19px;height:19px;color:rgb(var(--rb-red-nav))}
.adm-group{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}
.adm-gl{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--muted);padding:0 12px 6px}
.adm-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:4px;
  color:var(--fg);text-decoration:none;font-size:.9rem;font-weight:500;
  transition:background .14s var(--ease),color .14s}
.adm-link .ic{width:18px;height:18px;flex:none;color:var(--muted);transition:color .14s}
.adm-link:hover{background:color-mix(in srgb,var(--fg) 5%,transparent)}
.adm-link.on{background:color-mix(in srgb,rgb(var(--rb-red-solid)) 10%,transparent);
  color:rgb(var(--rb-red-ink));font-weight:700}
.adm-link.on .ic{color:rgb(var(--rb-red-ink))}
.adm-link.quiet{color:var(--muted);font-size:.85rem;margin-top:6px}
.adm-railbtn{display:none}
.adm-main{padding:6px 0 40px 26px;min-width:0}
.adm-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.adm-head h1{font-family:var(--serif);font-size:clamp(1.5rem,3.6vw,2rem);font-weight:600;
  letter-spacing:-.02em;margin:0}
.adm-head p{margin:5px 0 0;color:var(--muted);font-size:.92rem;max-width:52ch;line-height:1.55}
.adm-health{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:6px 11px;
  border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.adm-health .ic{width:13px;height:13px}
.adm-health.ok{color:rgb(var(--rb-ok));border-color:color-mix(in srgb,rgb(var(--rb-ok)) 40%,var(--line))}
.adm-health.warn{color:rgb(var(--rb-warn));border-color:color-mix(in srgb,rgb(var(--rb-warn)) 40%,var(--line))}
.adm-health.bad{color:rgb(var(--rb-red-ink));border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,var(--line))}
.adm-card{border:1.5px solid var(--line);border-radius:6px;background:var(--card);padding:clamp(15px,3vw,22px)}
.adm-card h3{font-size:1.02rem;font-weight:700;margin:0 0 4px}
.adm-note{font-size:.86rem;color:var(--muted);line-height:1.55;margin:0 0 6px}
.adm-msg{font-size:.86rem;margin-top:10px;min-height:1.1em;color:var(--muted)}
.adm-msg.bad{color:rgb(var(--rb-red-ink))}
.adm-msg.ok{color:rgb(var(--rb-ok))}
.adm-alert{display:flex;align-items:center;gap:13px;padding:15px 17px;border-radius:6px;margin-bottom:14px;
  border:1px solid var(--line);background:var(--card)}
.adm-alert .ic{width:22px;height:22px;flex:none}
.adm-alert b{display:block;font-size:.97rem}
.adm-alert span{font-size:.85rem;color:var(--muted);line-height:1.5}
.adm-alert .btn{margin-left:auto;flex:none}
@media (max-width:600px){
  .adm-alert{flex-wrap:wrap;align-items:flex-start;gap:10px}
  .adm-alert>div{flex:1 1 100%;min-width:0;order:2}
  .adm-alert .ic{order:1}
  .adm-alert .btn{order:3;margin-left:0;width:100%;justify-content:center}
}
.adm-alert.ok{border-color:color-mix(in srgb,rgb(var(--rb-ok)) 34%,var(--line))}
.adm-alert.ok .ic{color:rgb(var(--rb-ok))}
.adm-alert.warn{border-color:color-mix(in srgb,rgb(var(--rb-warn)) 40%,var(--line))}
.adm-alert.warn .ic{color:rgb(var(--rb-warn))}
.adm-alert.bad{border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,var(--line))}
.adm-alert.bad .ic{color:rgb(var(--rb-red-mark))}
.adm-quick{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-top:12px}
.adm-q{border:1px solid var(--line);border-radius:5px;padding:13px;text-decoration:none;color:inherit;
  display:block;transition:border-color .15s var(--ease),transform .15s var(--ease)}
.adm-q:hover{border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 40%,var(--line));transform:translate3d(0,-1px,0)}
.adm-q .ic{width:19px;height:19px;color:rgb(var(--rb-red-nav))}
.adm-q b{display:block;font-size:.92rem;margin-top:7px}
.adm-q span{font-size:.79rem;color:var(--muted)}

.sec-list{display:flex;flex-direction:column;gap:0;margin-top:10px}
.sec-item,.sec-toggle{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-top:1px solid var(--line)}
.sec-item:first-child,.sec-toggle:first-child{border-top:0}
.sec-item b,.sec-toggle b{display:block;font-size:.93rem}
.sec-item b{display:inline}
.sec-state{display:inline-block;margin-left:8px;font-style:normal;font-size:.68rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;vertical-align:2px}
.sec-state.ok{color:rgb(var(--rb-ok));background:rgba(var(--rb-ok),.12)}
.sec-state.warn{color:rgb(var(--rb-warn));background:rgba(var(--rb-warn),.14)}
.sec-state.fail{color:rgb(var(--rb-red-solid));background:rgba(var(--rb-red-solid),.12)}
.sec-item span,.sec-toggle span{display:block;font-size:.83rem;color:var(--muted);line-height:1.5;margin-top:2px}
.sec-dot{width:10px;height:10px;border-radius:50%;flex:none;margin-top:6px;background:var(--muted)}
.sec-dot.ok{background:rgb(var(--rb-ok))}
.sec-dot.warn{background:rgb(var(--rb-warn))}
.sec-dot.fail{background:rgb(var(--rb-red-solid))}
.sec-toggle{cursor:pointer}
.sec-toggle input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:rgb(var(--rb-red-solid))}
.sec-add{display:grid;gap:9px;grid-template-columns:150px 1fr 1fr auto;margin:14px 0 4px;align-items:center}

@media (max-width:900px){
  .adm{grid-template-columns:1fr}
  .adm-main{padding:0 0 calc(var(--nav-h) + 34px + env(safe-area-inset-bottom))}
  .adm-railbtn{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1.5px solid var(--line);
    border-radius:5px;padding:10px 14px;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;
    color:var(--fg);margin-bottom:14px}
  .adm-railbtn .ic{width:18px;height:18px}
  .adm-rail{position:fixed;inset:0 auto 0 0;width:min(280px,84vw);z-index:8500;background:var(--card);
    border-right:1.5px solid var(--line);padding:18px 14px;max-height:none;
    transform:translate3d(-102%,0,0);transition:transform .3s var(--ease);box-shadow:0 0 40px rgba(7,11,31,.22)}
  .adm-rail.open{transform:none}
  .sec-add{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.adm-rail{transition:none}}


/* =========================================================================
 * ARTICLE BODY: things an author pastes in
 *
 * Everything above styles markup this code writes. This section styles markup
 * an AUTHOR writes, which is the part that cannot be trusted to fit: a photo
 * straight off a phone is 3000px wide, a pasted table has eight columns, and a
 * bare URL is one unbreakable word. None of it was constrained, so it ran past
 * the right edge of the column and, because the page clips horizontally, was
 * simply cut off with no way to scroll to it.
 * ===================================================================== */
.art-body{min-width:0}
.art-body img{display:block;max-width:100%;height:auto;margin:26px auto;border-radius:8px}
.art-body figure{margin:26px 0;max-width:100%}
.art-body figure img{margin:0}
.art-body figcaption{margin-top:9px;font-size:.85rem;line-height:1.55;color:var(--muted);text-align:center}
.art-body video,.art-body iframe,.art-body embed,.art-body object{display:block;max-width:100%;margin:26px 0;border:0;border-radius:8px}
.art-body svg{max-width:100%;height:auto}
/* A URL is one word to the line breaker, so it needs explicit permission to
   break. Scoped to links and code, never to prose, where breaking mid word
   would be worse than the problem. */
.art-body a,.art-body code,.art-body kbd,.art-body samp{overflow-wrap:anywhere}
.art-body pre{white-space:pre;overflow-x:auto;-webkit-overflow-scrolling:touch}
/* A table that cannot fit scrolls inside its own box rather than pushing the
   column wider. The box is what scrolls, so the article never does. */
.art-body .tbl-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:26px 0}
.art-body .tbl-scroll table{margin:0;min-width:520px;width:100%}
.art-body>table{display:block;max-width:100%;overflow-x:auto}
/* The hint only exists when the script has measured a real overflow, so it can
   never promise a swipe that does nothing. */
.art-body .tbl-scroll{position:relative}
.art-body .tbl-scroll.can-scroll::after{content:"Swipe the table to see the rest";
  display:block;margin-top:8px;font-size:.78rem;color:var(--muted);font-family:var(--mono);
  letter-spacing:.02em;transition:opacity .2s var(--ease)}
.art-body .tbl-scroll.can-scroll.at-end::after{opacity:0}
@media (prefers-reduced-motion:reduce){.art-body .tbl-scroll.can-scroll::after{transition:none}}

/* ===================== END AURORA ===================== */


/* =========================================================================
 * HEADER AND DRAWER
 *
 * The bar is a row of full height cells separated by hairlines, so the menu
 * square, the logo, the nav and the tools all read as one machined strip
 * rather than a row of floating buttons. The menu is a solid red square
 * because it is the single most used control on a phone and it should be
 * impossible to miss.
 * ===================================================================== */
.hdr{height:var(--header-h);padding:0;gap:0;align-items:stretch;
  border-bottom:1px solid var(--line)}

/* the red square */
html[data-theme]:root .hdr .hdr-menu{width:var(--header-h);flex:none;border:0;
  border-right:1px solid var(--line);background:rgb(var(--rb-red-solid));color:#fff;
  display:grid;place-items:center;cursor:pointer;padding:0;transition:background .18s var(--ease)}
html[data-theme]:root .hdr .hdr-menu:hover{filter:brightness(.88)}
.hdr-menu:focus-visible{outline:3px solid var(--fg);outline-offset:-3px}
/* A fixed 22x16 box rather than a grid, because the three bars have to be
   able to sit on top of each other to make the cross. */
.burger{position:relative;width:22px;height:16px;display:block}
.burger i{position:absolute;left:0;display:block;width:100%;height:2px;background:currentColor;
  border-radius:2px;transition:transform .34s var(--ease),opacity .18s var(--ease),width .3s var(--ease)}
.burger i:nth-child(1){top:0}
.burger i:nth-child(2){top:7px;width:70%;transform-origin:left}
.burger i:nth-child(3){top:14px}
.hdr-menu:hover .burger i:nth-child(2){width:100%}
/* Open: the top and bottom bars cross, the middle one goes. The cell, the
   colour and everything around it stay exactly where they were. */
.hdr-menu.is-open .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hdr-menu.is-open .burger i:nth-child(2){opacity:0;transform:scaleX(.2)}
.hdr-menu.is-open .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* One long cell between the red square and the two icons. flex:1 so it
   takes every pixel the icons do not, min-width:0 so it gives way instead
   of pushing the profile icon off a 320px phone. */
.hdr .brand{padding:0 14px;border-right:1px solid var(--line);border-radius:0;
  flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-start}

/* desktop nav: the underline grows from the left rather than fading in */
/* flex:none, so the row never squeezes the nav narrower than its links and
   slides them under the tools. Fitting is the breakpoints' job, not flexbox's. */
.hdr-nav{margin-left:0;display:flex;align-items:stretch;white-space:nowrap;gap:0;flex:none}
.hdr-nav a{display:flex;align-items:center;padding:0 12px;position:relative;
  font-size:.9rem;font-weight:500;color:var(--fg);text-decoration:none}
.hdr-nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;
  background:rgb(var(--rb-red-solid));transform:scaleX(0);transform-origin:left;
  transition:transform .32s var(--ease)}
.hdr-nav a:hover::after,.hdr-nav a.on::after{transform:scaleX(1)}
.hdr-nav a.on{font-weight:700}

/* margin-left:auto, not 0: with the nav hidden on a phone nothing else pushes
   the tools to the right and the hairline strip stopped in the middle of the
   bar with bare page behind it. */
.hdr-tools{display:flex;align-items:stretch;flex:none;margin-left:auto}
.hdr-nav+.hdr-tools{margin-left:0}
.tool{width:var(--header-h);flex:0 0 var(--header-h);display:grid;place-items:center;border:0;
  border-left:1px solid var(--line);background:none;color:var(--fg);cursor:pointer;
  position:relative;text-decoration:none;transition:background .18s var(--ease)}
.tool:hover{background:color-mix(in srgb,var(--fg) 6%,transparent)}
.tool:focus-visible{outline:3px solid rgb(var(--rb-red-solid));outline-offset:-3px}
.tool .ic{width:21px;height:21px}
.hdr .pub-btn{height:auto;border-radius:0;padding:0 20px;border-left:1px solid var(--line);
  align-self:stretch}
/* The avatar was the one thing in the bar that was not a cell, so the strip of
   hairlines stopped short of the right edge and the avatar floated on the page
   behind it. It sits in a cell of its own now and stays round: squaring it off
   or stripping its gradient would have made a signed-in initial unreadable. */
/* flex:0 0 and a square aspect: in the old rule the cell was allowed to
   shrink, so on a 320px phone the profile cell was squeezed into an oval and
   pushed half off the edge. */
.hdr .av-cell{width:var(--header-h);flex:0 0 var(--header-h);align-self:stretch;
  display:grid;place-items:center;border-left:1px solid var(--line);
  transition:background .18s var(--ease)}
.hdr .av-cell:hover{background:color-mix(in srgb,var(--fg) 6%,transparent)}
.hdr .av-cell .avatar{margin:0;width:clamp(28px,calc(var(--header-h) - 26px),38px);
  height:clamp(28px,calc(var(--header-h) - 26px),38px);aspect-ratio:1;flex:none}
.hdr .av-cell .avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.hdr .av-cell .avatar .ic{width:19px;height:19px}
.hdr .lang-wrap{display:flex;align-items:stretch;flex:0 0 auto}
/* Two square cells on the right at every width. The owner can still drop the
   theme switcher on phones from Admin, Header and menu, and then the logo
   cell simply grows into the space. */
@media (max-width:699px){
  html[data-chrome-mtheme="off"] .hdr .lang-wrap{display:none}
}

/* ---- the drawer ---------------------------------------------------------
 * Full screen, and dark in both themes: it is a separate surface from the
 * page, the way a menu card is a separate thing from the table. */
/* The aurora layer styles .hdr, .drawer and .foot together as translucent
   chrome, and does it from html[data-theme="dark"] .drawer, which outranks a
   bare .drawer however late it appears. A full screen drawer cannot be
   translucent: the page shows straight through it. These rules are written at
   a specificity that beats that one outright rather than relying on order. */
/* Starts below the header, not over it: the bar stays put and keeps
   working, which is the whole point of the cross. */
html[data-theme]:root aside.drawer{position:fixed;inset:var(--header-h) 0 0 0;width:auto;max-width:none;z-index:55;
  border-right:0;padding:0;display:block;overflow:hidden;
  background-color:#080C1C;color:#EEF2FF;
  background-image:
    radial-gradient(1100px 620px at 12% -10%, rgb(var(--rb-t-red) / .30) 0%, rgb(var(--rb-t-red) / 0) 60%),
    radial-gradient(900px 560px at 92% 8%, rgb(var(--rb-t-sky) / .26) 0%, rgb(var(--rb-t-sky) / 0) 62%),
    radial-gradient(760px 520px at 70% 104%, rgb(var(--rb-t-violet) / .24) 0%, rgb(var(--rb-t-violet) / 0) 60%);
  background-size:auto;background-position:0 0;animation:none;
  transform:translateX(-100%);visibility:hidden;
  transition:transform .42s var(--ease),visibility 0s .42s}
html[data-theme]:root aside.drawer.open{transform:none;visibility:visible;transition:transform .42s var(--ease),visibility 0s}
/* The bottom bar stays put too, so the last row of the menu has to clear
   it rather than hide behind it. */
.drawer-scroll{height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
  padding-bottom:calc(env(safe-area-inset-bottom) + 40px);overscroll-behavior:contain}
@media (max-width:1023px){
  .drawer-scroll{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 34px)}
}

/* The drawer has no bar of its own any more. The page header is the bar. */

/* ---- search, which used to be an icon in the bar ----------------------- */
.dsearch{max-width:var(--maxw);margin:0 auto;padding:26px clamp(16px,4vw,44px) 4px}
.dsearch-lab{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:#A7B4D8;margin-bottom:10px}
.dsearch-row{display:flex;align-items:center;gap:12px;padding:0 16px;
  border:1px solid rgba(255,255,255,.2);border-radius:6px;background:rgba(255,255,255,.05);
  transition:border-color .2s var(--ease),background .2s var(--ease)}
.dsearch-row:focus-within{border-color:rgb(var(--rb-red-solid));background:rgba(255,255,255,.08)}
.dsearch-row .ic{width:20px;height:20px;color:#A7B4D8;flex:none}
.dsearch-row input{flex:1;min-width:0;height:56px;border:0;background:none;color:#EEF2FF;
  font:inherit;font-size:1.05rem;outline:none}
.dsearch-row input::placeholder{color:#7F8DB5}
.dsearch-go{width:42px;height:42px;flex:none;display:grid;place-items:center;border:0;border-radius:4px;
  background:rgb(var(--rb-red-solid));color:#fff;cursor:pointer;transition:transform .18s var(--ease)}
.dsearch-go:hover{transform:translateX(2px)}
.dsearch-go .ic{width:18px;height:18px;color:#fff}
/* This stylesheet had no visually-hidden helper, so an icon button's label
   printed on top of the icon. Added here rather than dropping the label: the
   button needs a name a screen reader can read. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.dsearch-hint{margin:9px 0 0;font-size:.82rem;color:#A7B4D8}
.dsearch-none{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,44px) 30px;color:#A7B4D8}

/* ---- the directory ------------------------------------------------------ */
.drawer-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));
  gap:26px clamp(20px,3vw,44px);padding:22px clamp(16px,4vw,44px) 10px;
  max-width:var(--maxw);margin:0 auto}
.dgroup h2{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:#A7B4D8;margin:0 0 10px;padding-bottom:9px;border-bottom:1px solid rgba(255,255,255,.14)}
.drow{display:grid;grid-template-columns:52px 1fr;gap:15px;align-items:center;padding:11px 0;
  text-decoration:none;color:inherit;border-radius:6px}
.drow .tile{width:52px;height:52px;display:grid;place-items:center;border-radius:5px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);
  transition:background .2s var(--ease),transform .32s var(--ease),border-color .2s var(--ease)}
.drow .tile .ic{width:22px;height:22px;color:#EEF2FF}
.drow:hover .tile,.drow:focus-visible .tile{background:rgb(var(--rb-red-solid));
  border-color:rgb(var(--rb-red-solid));transform:rotate(-6deg)}
.drow:focus-visible{outline:2px solid rgb(var(--rb-red-solid));outline-offset:3px}
.dtxt{min-width:0}
.drow strong{display:block;font-family:var(--serif);font-weight:500;font-size:1.32rem;
  line-height:1.12;letter-spacing:-.01em}
.drow .d{display:block;font-size:.83rem;color:#A7B4D8;margin-top:3px;line-height:1.4}
.drow[aria-current="page"] .tile{background:rgb(var(--rb-red-solid));border-color:rgb(var(--rb-red-solid))}
.drow[hidden]{display:none}

.drawer-foot{max-width:var(--maxw);margin:0 auto;padding:22px clamp(16px,4vw,44px) 40px;
  border-top:1px solid rgba(255,255,255,.12);display:grid;gap:16px}
.drawer-note{margin:0;max-width:44ch;font-family:var(--serif);font-weight:400;font-style:italic;
  font-size:1.2rem;line-height:1.35;color:#EEF2FF}
/* One row of squares, not a wrapped list of names. The row scrolls sideways
   on a very narrow phone rather than breaking onto a second line. */
.drawer-social{display:flex;gap:10px;align-items:center;flex-wrap:nowrap;
  overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px}
.drawer-social::-webkit-scrollbar{display:none}
.drawer-social a{flex:0 0 auto;width:46px;height:46px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#EEF2FF;text-decoration:none;
  background:rgba(255,255,255,.05);
  transition:background .18s var(--ease),border-color .18s var(--ease),transform .24s var(--ease)}
.drawer-social a:hover,.drawer-social a:focus-visible{background:rgb(var(--rb-red-solid));
  border-color:rgb(var(--rb-red-solid));transform:translateY(-2px)}
.drawer-social a:focus-visible{outline:2px solid #fff;outline-offset:2px}
.drawer-social svg,.drawer-social .ic{width:20px;height:20px;display:block}
@media (max-width:360px){.drawer-social a{width:42px;height:42px}}
/* .crafted carries --muted, which is a dark grey chosen for a light page. On
   the drawer's dark ground that measured 2.2:1. The footer text takes the
   drawer's own muted tone instead of the page's. */
html[data-theme]:root aside.drawer .handle{font-family:var(--mono);font-size:.8rem;color:#A7B4D8}
html[data-theme]:root aside.drawer .handle a{color:#EEF2FF}
html[data-theme]:root aside.drawer .crafted{color:#A7B4D8}

/* A full screen drawer needs no scrim, and one behind it only dims the edges
   of a panel that already covers everything. */
.drawer.open ~ .scrim,.scrim.open{opacity:0;visibility:hidden}

/* the staggered entrance, motion permitting */
.drawer.open .dgroup h2,.drawer.open .drow,.drawer.open .dsearch,.drawer.open .drawer-foot{
  animation:dRise .5s var(--ease) both;
  animation-delay:calc(var(--i,0) * 26ms + 120ms)}
@keyframes dRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* shed by priority, widest first, rather than clipping the end off the row */
@media (max-width:1400px){
  .hdr-nav a{padding:0 10px;font-size:.87rem}
  .hdr-nav a::after{left:10px;right:10px}
  .hdr-nav a[data-p="4"]{display:none}
}
@media (max-width:1180px){
  .hdr-nav a{padding:0 9px;font-size:.85rem}
  .hdr-nav a::after{left:9px;right:9px}
  .hdr-nav a[data-p="3"]{display:none}
}
@media (max-width:1120px){ .hdr-nav a[data-p="2"]{display:none} }

/* On a narrow phone the four cells and a wide wordmark cannot all have what
   they want. The icon cells give up a few pixels each so the logo keeps its
   full height from 360px upwards, which is every phone still being sold. */
@media (max-width:400px){
  html[data-theme]:root .hdr .hdr-menu{width:54px}
  .hdr .tool,.hdr .av-cell{width:50px;flex-basis:50px}
  .hdr .brand{padding:0 10px}
  .hdr .av-cell .avatar{width:32px;height:32px}
}
@media (max-width:900px){
  .hdr-nav{display:none}
  .hdr .pub-btn .txt{display:none}
  .hdr .pub-btn{padding:0 18px}
  .drow strong{font-size:1.18rem}
}
@media (max-width:560px){
  .dsearch{padding-top:20px}
  .dsearch-row input{height:50px;font-size:1rem}
  .drawer-body{padding-top:16px;gap:22px}
}
@media (prefers-reduced-motion:reduce){
  .drawer{transition:none}
  .drawer.open .dgroup h2,.drawer.open .drow,.drawer.open .dsearch,.drawer.open .drawer-foot{animation:none}
  .burger i,.drow .tile,.hdr-nav a::after,.dsearch-go{transition:none}
}


/* =====================================================================
 * MOTION.  Everything here moves only transform and opacity, so it runs
 * on the compositor and never costs a layout.  Every rule sits inside a
 * prefers-reduced-motion guard or is cancelled by one at the end, and the
 * page is fully readable with all of it switched off.
 * ================================================================== */

/* how far a panel travels in, by direction */
[data-reveal="left"]{transform:translate3d(-26px,0,0)}
[data-reveal="right"]{transform:translate3d(26px,0,0)}
[data-reveal="scale"]{transform:scale(.965)}
[data-reveal="blur"]{filter:blur(9px);transform:translate3d(0,10px,0)}
[data-reveal="blur"].in{filter:blur(0)}
[data-reveal="blur"]{transition:opacity .7s var(--ease),transform .7s var(--ease),filter .7s var(--ease)}
[data-reveal].in{transform:none}

/* a group whose children arrive one after another */
[data-stagger]>*{opacity:0;transform:translate3d(0,16px,0);transition:opacity .62s var(--ease),transform .62s var(--ease)}
[data-stagger].in>*{opacity:1;transform:none}
[data-stagger].in>*:nth-child(1){transition-delay:40ms}
[data-stagger].in>*:nth-child(2){transition-delay:100ms}
[data-stagger].in>*:nth-child(3){transition-delay:160ms}
[data-stagger].in>*:nth-child(4){transition-delay:220ms}
[data-stagger].in>*:nth-child(5){transition-delay:280ms}
[data-stagger].in>*:nth-child(6){transition-delay:340ms}
[data-stagger].in>*:nth-child(7){transition-delay:400ms}
[data-stagger].in>*:nth-child(8){transition-delay:455ms}
[data-stagger].in>*:nth-child(n+9){transition-delay:500ms}

/* how far you are through the page */
#bpScrollProg{position:fixed;top:0;left:0;right:0;height:2px;z-index:80;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--emerald,#0E9F6E),var(--brass,rgb(var(--rb-red-solid))));pointer-events:none;will-change:transform}
@supports (animation-timeline:scroll()){
  #bpScrollProg{animation:bpProgress linear both;animation-timeline:scroll(root block);transform:scaleX(0)}
}
@keyframes bpProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* a heading that lifts out from behind its own edge */
.bp-lift{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.bp-lift>span{display:block;transform:translate3d(0,102%,0);transition:transform .82s var(--ease-out,cubic-bezier(.16,1,.3,1))}
.bp-lift.in>span,.in .bp-lift>span{transform:none}

/* the picture behind a hero drifts a little slower than the page.
 * Pure CSS where the browser supports a view timeline, nothing at all
 * where it does not, so there is no scroll handler anywhere. */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .art-hero-full .art-hero-bg img,
    .about-hero .ah-bg img,
    .bp-ban img{animation:bpDrift linear both;animation-timeline:view();animation-range:entry 0% exit 100%;will-change:transform}
    .bpx{animation:bpBoxIn linear both;animation-timeline:view();animation-range:entry 4% entry 44%}
  }
}
@keyframes bpDrift{from{transform:scale(1.12) translate3d(0,-2.4%,0)}to{transform:scale(1.12) translate3d(0,2.4%,0)}}
@keyframes bpBoxIn{from{opacity:0;transform:translate3d(0,26px,0)}to{opacity:1;transform:none}}

/* a card that leans towards the pointer, by a couple of degrees at most */
.bp-tilt{transition:transform .35s var(--ease-out,cubic-bezier(.16,1,.3,1)),box-shadow .35s}
@media (hover:hover) and (pointer:fine){
  .bp-tilt:hover{transform:perspective(900px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) translateY(-3px)}
}

/* the rule under a section heading draws itself in */
.sec-h{position:relative}
.sec-h::after{content:"";position:absolute;left:0;bottom:-8px;height:2px;width:100%;
  background:linear-gradient(90deg,var(--brass,rgb(var(--rb-red-solid))),transparent 78%);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .85s var(--ease-out,cubic-bezier(.16,1,.3,1)) .12s}
[data-reveal].in .sec-h::after,.sec-h.in::after{transform:scaleX(1)}

@media (prefers-reduced-motion:reduce){
  #bpScrollProg{display:none}
  [data-reveal],[data-reveal].in,[data-stagger]>*,[data-stagger].in>*{opacity:1;transform:none;filter:none;transition:none}
  .bp-lift>span{transform:none;transition:none}
  .sec-h::after{transform:scaleX(1);transition:none}
  .bp-tilt,.bp-tilt:hover{transform:none;transition:none}
}

/* --- partners ---------------------------------------------------------- */
.pt-hero{position:relative;width:100vw;max-width:100%;margin-left:calc(50% - 50vw);
  min-height:min(92dvh,900px);display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#05081A}
.pt-hero-bg{position:absolute;inset:0;z-index:0}
.pt-hero-bg img{width:100%;height:100%;object-fit:cover}
.pt-hero-mesh{position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(900px 620px at 8% 0%, rgb(var(--rb-t-red) / .42) 0%, rgb(var(--rb-t-red) / 0) 62%),
    radial-gradient(880px 620px at 92% 14%, rgb(var(--rb-t-sky) / .40) 0%, rgb(var(--rb-t-sky) / 0) 64%),
    radial-gradient(760px 560px at 60% 100%, rgb(var(--rb-t-violet) / .36) 0%, rgb(var(--rb-t-violet) / 0) 62%),
    linear-gradient(180deg,rgba(5,8,26,.24) 0%,rgba(5,8,26,.78) 72%,rgba(5,8,26,.97) 100%)}
.pt-net{position:absolute;inset:0;z-index:2;opacity:.42;pointer-events:none}
.pt-net line{stroke:rgba(255,255,255,.3);stroke-width:1.2;vector-effect:non-scaling-stroke}
.pt-net circle{fill:rgba(255,255,255,.7)}
.pt-net .hot{fill:rgb(var(--rb-red-solid))}
@media (prefers-reduced-motion:no-preference){
  .pt-net circle{animation:ptPulse 5.5s ease-in-out infinite;animation-delay:calc(var(--i,0) * -420ms)}
  .pt-net line{animation:ptFade 9s ease-in-out infinite;animation-delay:calc(var(--i,0) * -540ms)}
}
@keyframes ptPulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes ptFade{0%,100%{opacity:.35}50%{opacity:.9}}
.pt-hero-in{position:relative;z-index:3;width:100%;max-width:var(--maxw);margin:0 auto;
  padding:120px clamp(16px,4vw,44px) clamp(40px,7vh,80px)}
.pt-kick{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.7rem;
  letter-spacing:.2em;text-transform:uppercase;color:#fff;padding:7px 15px;border-radius:999px;
  border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}
.pt-kick i{width:7px;height:7px;border-radius:50%;background:rgb(var(--rb-red-solid));display:block}
.pt-h1{font-family:var(--serif);font-weight:500;letter-spacing:-.025em;line-height:1.04;
  font-size:clamp(2.3rem,5.9vw,4.8rem);margin:22px 0 0;max-width:19ch}
.pt-h1 em{font-style:normal;color:#FFB2B7}
.pt-sub{margin:22px 0 0;max-width:56ch;font-size:clamp(1.02rem,2vw,1.22rem);line-height:1.62;color:#D8E0F5}
.pt-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.pt-btn{display:inline-flex;align-items:center;gap:9px;height:56px;padding:0 26px;border-radius:5px;
  background:rgb(var(--rb-red-solid));color:#fff;font-weight:700;font-size:1rem;text-decoration:none;border:0;
  cursor:pointer;transition:transform .2s var(--ease),box-shadow .24s var(--ease)}
.pt-btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgb(var(--rb-red-solid) / .42)}
.pt-btn.ghost{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.34)}
.pt-btn .ic{width:19px;height:19px}
.pt-scroll{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:3;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6)}

/* --- figures ----------------------------------------------------------
 * One series in every chart here, so there is no legend: the caption names
 * it. Values are printed beside their own bar, which doubles as the table
 * view. Bars are the only thing wearing the series colour; every word is
 * in an ink token.
 * Light mark #D6101E and dark mark #F5424F both cleared the lightness band
 * and the 3:1 contrast check against their own surface.
 */
.pt-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));
  gap:clamp(18px,3vw,34px);margin-top:34px;align-items:start}
.pt-fig{margin:0;border:1px solid var(--line);border-radius:16px;background:var(--card);
  padding:20px 22px 22px;box-shadow:var(--raise);--pt-series:214 16 30}
html[data-theme="dark"] .pt-fig{--pt-series:245 66 79}
.pt-fig figcaption{display:block;margin:0 0 16px}
.pt-fig figcaption b{display:block;font-family:var(--serif);font-weight:500;font-size:1.18rem;line-height:1.24;letter-spacing:-.012em}
.pt-fig figcaption span{display:block;margin-top:5px;font-size:.82rem;color:var(--muted);line-height:1.5}
.pt-chart{width:100%;height:auto;display:block;overflow:visible;font-family:var(--sans)}
.ptb-k{font-size:2.7px;fill:var(--fg);font-weight:600}
.ptb-v{font-size:3.2px;fill:var(--fg);font-weight:700;text-anchor:end;font-family:var(--mono)}
.ptb-track{fill:color-mix(in srgb,var(--fg) 9%,transparent)}
.ptb-bar{fill:rgb(var(--pt-series));transform-origin:41px center}
.ptc-bar{fill:rgb(var(--pt-series))}
.ptc-base{stroke:color-mix(in srgb,var(--fg) 16%,transparent);stroke-width:.3}
.ptc-x{font-size:3px;fill:var(--muted);font-family:var(--mono)}
.ptc-x2{text-anchor:end}
.pt-fig svg g:hover .ptb-bar,.pt-fig svg g:hover .ptc-bar{fill:rgb(var(--pt-series) / .82)}
@media (prefers-reduced-motion:no-preference){
  .pt-fig .ptb-bar{transform:scaleX(0);transition:transform .9s var(--ease-out,cubic-bezier(.16,1,.3,1))}
  .pt-fig.in .ptb-bar,[data-reveal].in .ptb-bar{transform:scaleX(1);transition-delay:calc(var(--i,0) * 80ms + 120ms)}
  .pt-fig .ptc-bar{transform:scaleY(0);transform-origin:50% 28.4px;transition:transform .7s var(--ease-out,cubic-bezier(.16,1,.3,1))}
  .pt-fig.in .ptc-bar,[data-reveal].in .ptc-bar{transform:scaleY(1);transition-delay:calc(var(--i,0) * 45ms + 120ms)}
}

/* the journey */
.pt-jsvg{width:100%;height:auto;display:block;margin:4px 0 14px;overflow:visible}
.ptj-line{fill:none;stroke:color-mix(in srgb,var(--fg) 20%,transparent);stroke-width:.7;stroke-linecap:round;
  stroke-dasharray:200;stroke-dashoffset:200}
.ptj-dot{fill:rgb(var(--pt-series));opacity:0}
@media (prefers-reduced-motion:no-preference){
  .pt-fig.in .ptj-line,[data-reveal].in .ptj-line{transition:stroke-dashoffset 1.5s var(--ease-out,cubic-bezier(.16,1,.3,1));stroke-dashoffset:0}
  .pt-fig.in .ptj-dot,[data-reveal].in .ptj-dot{transition:opacity .5s var(--ease) calc(var(--i,0) * 380ms + 260ms);opacity:1}
}
@media (prefers-reduced-motion:reduce){.ptj-line{stroke-dashoffset:0}.ptj-dot{opacity:1}}
.ptj-stops{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ptj-stops li{display:grid;gap:3px;min-width:0}
.ptj-k{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgb(var(--rb-red-ink))}
.ptj-stops b{font-size:.95rem;line-height:1.25}
.ptj-stops li>span:last-child{font-size:.8rem;color:var(--muted);line-height:1.45}
@media(max-width:520px){.ptj-stops{grid-template-columns:1fr;gap:10px}}

/* anatomy of a complaint */
.pt-anat-wrap{display:grid;grid-template-columns:118px minmax(0,1fr);gap:20px;align-items:start}
@media(max-width:520px){.pt-anat-wrap{grid-template-columns:86px minmax(0,1fr);gap:14px}}
.pt-letter{aspect-ratio:3/4;border:1px solid var(--line);border-radius:6px;background:var(--bg);
  padding:12px 11px;display:grid;align-content:start;gap:6px;box-shadow:var(--raise)}
.pt-letter span{display:block;height:4px;border-radius:2px;background:color-mix(in srgb,var(--fg) 13%,transparent)}
.pt-letter .pl-h{height:8px;width:62%;background:rgb(var(--pt-series))}
.pt-letter .pl-l.s{width:72%}
.pt-letter .pl-b{height:18px;border-radius:3px;background:color-mix(in srgb,var(--fg) 7%,transparent);
  border-left:2px solid rgb(var(--pt-series))}
.pt-letter .pl-sig{width:46%;margin-top:6px}
.pt-anat-list{list-style:none;margin:0;padding:0;display:grid;gap:11px;counter-reset:pa}
.pt-anat-list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:11px;align-items:baseline}
.pt-anat-list li::before{counter-increment:pa;content:counter(pa);font-family:var(--mono);font-size:.7rem;
  font-weight:700;color:rgb(var(--rb-red-ink));border:1px solid color-mix(in srgb,rgb(var(--rb-red-solid)) 30%,var(--line));
  border-radius:50%;width:22px;height:22px;display:grid;place-items:center;align-self:start}
.pt-anat-list b{display:block;font-size:.93rem;line-height:1.3}
.pt-anat-list span{display:block;font-size:.82rem;color:var(--muted);line-height:1.5;grid-column:2}
@media (prefers-reduced-motion:no-preference){
  .pt-anat-list li,.ptj-stops li{opacity:0;transform:translateY(10px);
    transition:opacity .6s var(--ease),transform .6s var(--ease)}
  .pt-fig.in .pt-anat-list li,[data-reveal].in .pt-anat-list li,
  .pt-fig.in .ptj-stops li,[data-reveal].in .ptj-stops li{opacity:1;transform:none;
    transition-delay:calc(var(--i,0) * 90ms + 200ms)}
}

/* the moving strip of what the site is */
.pt-strip{width:100vw;max-width:100%;margin-left:calc(50% - 50vw);overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--card)}
.pt-strip-track{display:flex;gap:0;width:max-content;animation:ptSlide 38s linear infinite}
.pt-strip b{display:inline-flex;align-items:center;gap:12px;padding:15px clamp(18px,3vw,34px);
  font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  color:var(--muted);white-space:nowrap}
.pt-strip b::after{content:"";width:6px;height:6px;border-radius:50%;background:rgb(var(--rb-red-solid))}
@keyframes ptSlide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.pt-strip:hover .pt-strip-track{animation-play-state:paused}

.pt-band{max-width:var(--maxw);margin-left:auto;margin-right:auto;
  padding-left:max(16px,env(safe-area-inset-left),4vw);
  padding-right:max(16px,env(safe-area-inset-right),4vw);
  box-sizing:border-box}
@media(min-width:1100px){.pt-band{padding-left:44px;padding-right:44px}}
/* padding-top and padding-bottom, never the shorthand: the shorthand reset
   the side padding this band had just set and the words ran into the edge of
   the phone. */
.pt-sec{padding-top:clamp(44px,6vw,84px);padding-bottom:clamp(44px,6vw,84px)}
.pt-sec.tight{padding-top:clamp(32px,4.5vw,58px);padding-bottom:clamp(32px,4.5vw,58px)}
.pt-sec + .pt-sec{padding-top:0}
/* small type on a tinted page wants the contrast-tuned ink, not the mark:
   the brand red at .68rem over the aurora wash measured 3.5:1. */
.pt-lab{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgb(var(--rb-red-ink));margin:0 0 14px}
.pt-h2{font-family:var(--serif);font-weight:500;letter-spacing:-.02em;line-height:1.08;
  font-size:clamp(1.9rem,4.4vw,3.2rem);margin:0;max-width:20ch}
.pt-lede{margin:16px 0 0;max-width:58ch;font-size:clamp(1rem,1.7vw,1.12rem);line-height:1.68;color:var(--muted)}

/* the counted numbers */
.pt-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px}
.pt-num{background:var(--bg);padding:26px 22px 24px}
.pt-num b{display:block;font-family:var(--mono);font-weight:700;letter-spacing:-.03em;
  font-size:clamp(2rem,4.6vw,3.1rem);line-height:1}
.pt-num span{display:block;margin-top:9px;font-size:.84rem;font-weight:700}
.pt-num small{display:block;margin-top:5px;font-size:.78rem;color:var(--muted);line-height:1.5}
.pt-src{margin:14px 0 0;font-size:.78rem;color:var(--muted)}

/* alternating full-bleed panels */
.pt-panel{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(24px,5vw,64px);
  padding-top:clamp(24px,4vw,48px);padding-bottom:clamp(24px,4vw,48px)}
.pt-panel.flip .pt-panel-txt{order:2}
.pt-panel h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,3vw,2.2rem);
  letter-spacing:-.018em;line-height:1.14;margin:12px 0 0}
.pt-panel p{margin:14px 0 0;color:var(--muted);line-height:1.68;max-width:46ch}
.pt-shot{position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;border:1px solid var(--line);
  background:linear-gradient(140deg,color-mix(in srgb,rgb(var(--rb-t-red)) 14%,var(--card)),var(--card) 55%,color-mix(in srgb,rgb(var(--rb-t-sky)) 16%,var(--card)));
  box-shadow:var(--raise);display:grid;place-items:center}
.pt-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pt-shot .ph{text-align:center;padding:24px;color:var(--muted);max-width:30ch}
.pt-shot .ph .ic{width:28px;height:28px;margin:0 auto 10px;color:rgb(var(--rb-red-mark))}
.pt-shot .ph b{display:block;font-size:.9rem;margin-bottom:5px;color:var(--fg)}
.pt-shot .ph span{font-size:.78rem;line-height:1.5}
@media(max-width:820px){
  .pt-panel{grid-template-columns:1fr}
  .pt-panel.flip .pt-panel-txt{order:0}
}

/* what a partner gets */
.pt-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:14px;margin-top:34px}
.pt-card{border:1px solid var(--line);border-radius:16px;padding:24px 22px;background:var(--card);
  box-shadow:var(--raise);position:relative;overflow:hidden}
.pt-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,rgb(var(--rb-red-solid)),transparent 74%);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .7s var(--ease)}
.pt-card.in::before,[data-reveal].in .pt-card::before{transform:scaleX(1)}
.pt-card .ic{width:26px;height:26px;color:rgb(var(--rb-red-mark))}
.pt-card h4{font-family:var(--serif);font-weight:500;font-size:1.28rem;margin:14px 0 0;line-height:1.2}
.pt-card p{margin:9px 0 0;color:var(--muted);font-size:.93rem;line-height:1.62}

/* the four steps, with a rule that fills as you scroll */
.pt-steps{position:relative;margin-top:36px;display:grid;gap:0}
.pt-steps::before{content:"";position:absolute;left:22px;top:12px;bottom:12px;width:2px;background:var(--line)}
.pt-steps::after{content:"";position:absolute;left:22px;top:12px;width:2px;height:100%;
  background:linear-gradient(180deg,rgb(var(--rb-red-solid)),rgb(var(--rb-t-violet)));transform:scaleY(0);transform-origin:50% 0}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .pt-steps::after{animation:ptFill linear both;animation-timeline:view();animation-range:entry 28% cover 72%}
  }
}
@keyframes ptFill{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.pt-step{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);gap:20px;padding:18px 0}
.pt-step .n{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:var(--bg);border:2px solid var(--line);font-family:var(--mono);font-weight:700;font-size:1rem;
  position:relative;z-index:1}
.pt-step.on .n{border-color:rgb(var(--rb-red-solid));color:rgb(var(--rb-red-ink))}
.pt-step h4{margin:9px 0 0;font-size:1.12rem;font-weight:700;overflow-wrap:anywhere}
.pt-step p{margin:7px 0 0;color:var(--muted);line-height:1.62;max-width:52ch}

/* the promise */
.pt-promise{width:100vw;max-width:100%;margin-left:calc(50% - 50vw);background:#05081A;color:#fff;
  padding:clamp(48px,8vw,96px) 0;position:relative;overflow:hidden}
.pt-promise::before{content:"";position:absolute;inset:0;
  background:radial-gradient(760px 520px at 78% 8%, rgb(var(--rb-t-red) / .3) 0%, rgb(var(--rb-t-red) / 0) 62%)}
.pt-promise-in{position:relative;max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,44px)}
.pt-promise q{display:block;font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.3rem,3.2vw,2.1rem);line-height:1.34;max-width:24ch;quotes:none}
.pt-promise .who{margin-top:20px;font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:#A7B4D8}

/* the logo wall */
.pt-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,168px),1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:28px}
.pt-wall a,.pt-wall span{background:var(--card);min-height:104px;display:grid;place-items:center;padding:18px;
  text-decoration:none;color:var(--muted);font-size:.82rem;text-align:center;
  transition:background .2s var(--ease)}
.pt-wall a:hover{background:color-mix(in srgb,rgb(var(--rb-red-solid)) 7%,var(--card))}
.pt-wall img{max-width:100%;max-height:52px;object-fit:contain;filter:grayscale(1);opacity:.78;
  transition:filter .3s var(--ease),opacity .3s var(--ease)}
.pt-wall a:hover img{filter:none;opacity:1}
.pt-wall-empty{border:1px dashed var(--line);border-radius:14px;padding:30px;text-align:center;color:var(--muted);
  font-size:.9rem;margin-top:24px;line-height:1.6}

/* the form */
.pt-form-wrap{width:100vw;max-width:100%;margin-left:calc(50% - 50vw);
  background:linear-gradient(180deg,var(--bg),color-mix(in srgb,rgb(var(--rb-t-sky)) 8%,var(--bg)));
  border-top:1px solid var(--line);padding:clamp(48px,8vw,96px) 0}
.pt-form-in{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,44px);
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(26px,5vw,64px);align-items:start}
@media(max-width:860px){.pt-form-in{grid-template-columns:1fr}}
.pt-form{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:clamp(20px,3vw,30px);
  box-shadow:var(--raise)}
.pt-fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px}
.pt-f label{display:block;font-size:.76rem;font-weight:700;color:var(--muted);margin:0 0 5px}
.pt-f input,.pt-f select,.pt-f textarea{width:100%;border:1px solid var(--line);border-radius:10px;
  padding:12px 13px;background:var(--bg);color:inherit;font:inherit;font-size:.93rem}
.pt-f textarea{min-height:104px;resize:vertical}
.pt-f input:focus,.pt-f select:focus,.pt-f textarea:focus{outline:2px solid rgb(var(--rb-red-solid));outline-offset:1px;border-color:transparent}
.pt-goals{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
/* .pt-f label already sets display:block and a small grey type, and it
   outranks a bare .pt-goal, which is what turned these pills into a stack of
   full width rows with the box sitting on the words. */
.pt-f .pt-goal{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:999px;
  padding:9px 15px;font-size:.84rem;font-weight:500;color:var(--fg);cursor:pointer;background:var(--bg);
  margin:0;width:auto;line-height:1.3;transition:background .18s var(--ease),border-color .18s var(--ease)}
.pt-f .pt-goal:hover{border-color:color-mix(in srgb,rgb(var(--rb-red-solid)) 45%,var(--line))}
.pt-f .pt-goal input{width:auto;margin:0;flex:none;accent-color:rgb(var(--rb-red-solid))}
.pt-f .pt-goal.on{border-color:rgb(var(--rb-red-solid));background:color-mix(in srgb,rgb(var(--rb-red-solid)) 9%,var(--bg));font-weight:700}
.pt-consent{margin:16px 0 0;font-size:.8rem;color:var(--muted);line-height:1.6}
.pt-submit{margin-top:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pt-msg{font-size:.88rem;color:var(--muted)}
.pt-msg.bad{color:rgb(var(--rb-red-ink));font-weight:700}
.pt-msg.good{color:#07684A;font-weight:700}
html[data-theme="dark"] .pt-msg.good{color:#7FE3BC}
.pt-done{text-align:center;padding:30px 10px}
.pt-done .ic{width:44px;height:44px;color:#0E9F6E;margin:0 auto 14px}
.pt-done h3{font-family:var(--serif);font-weight:500;font-size:1.6rem;margin:0}
.pt-done p{color:var(--muted);margin:10px auto 0;max-width:40ch;line-height:1.65}
.pt-aside h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,3.4vw,2.4rem);margin:0;line-height:1.1;letter-spacing:-.02em}
.pt-aside ul{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:14px}
.pt-aside li{display:grid;grid-template-columns:22px 1fr;gap:12px;font-size:.95rem;line-height:1.6}
.pt-aside li .ic{width:20px;height:20px;color:rgb(var(--rb-red-mark));margin-top:2px}
.pt-mail{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-weight:700;text-decoration:none;
  color:var(--fg);border-bottom:2px solid rgb(var(--rb-red-solid));padding-bottom:2px}
@media (prefers-reduced-motion:reduce){
  .pt-strip-track{animation:none}
  .pt-net circle,.pt-net line{animation:none}
  .pt-steps::after{transform:scaleY(1)}
  .pt-card::before{transform:scaleX(1);transition:none}
}
