/* 100Xfounder theme: tokens and components from the "100Xfounder Revamp" canvas. */

@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-500.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-600.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/inter-700.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/geist-mono-400.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/geist-mono-500.woff2) format('woff2')}

:root{--bg:#0b0b0c;--bg2:#121214;--ln:#232326;--ln2:#303035;--tx:#f2f2ef;--t2:#a6a6a2;--t3:#8c8c88;--ac:#b07cff;--ac2:#ff6ad5;--ac3:#6a7bff;--grad:linear-gradient(90deg,#7c5cff,#b07cff,#ff6ad5,#b07cff,#7c5cff);--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}
html{scroll-padding-top:120px}
/* Smooth scrolling. Lenis (assets/js/lenis.min.js) smooths the wheel and trackpad;
   without it, in-page links still glide. Both stand down for reduced motion. */
@media (prefers-reduced-motion:no-preference){html:not(.lenis){scroll-behavior:smooth}}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-stopped{overflow:clip}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
body{margin:0;background:var(--bg);color:var(--tx);font-family:'Inter',-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.5}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
img{max-width:100%;height:auto}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;left:12px;top:12px;z-index:100;width:auto;height:auto;clip:auto;padding:10px 14px;background:var(--tx);color:var(--bg);border-radius:8px}

/* Layout */
.wrap{max-width:1280px;margin:0 auto;padding:0 28px}
.wrap-narrow{max-width:1120px}
.mono{font-family:'Geist Mono',ui-monospace,monospace}
.k{font-family:'Geist Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.ac{color:var(--ac);background:var(--grad);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:xf-flow 8s linear infinite}
.muted{color:var(--t2)}
.hl{height:1px;background:linear-gradient(90deg,transparent,#7c5cff 15%,#c56bff 40%,#ff6ad5 60%,#6a7bff 85%,transparent);background-size:200% 100%;opacity:.9;animation:xf-flow 9s ease-in-out infinite alternate}

/* Buttons, tags, chips */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 16px;border-radius:10px;border:1px solid var(--ln2);background:transparent;font-size:14px;font-weight:500;transition:background .2s,border-color .2s;white-space:nowrap}
.btn:hover{background:#18181b;border-color:#45454b}
.btn-w{background:var(--tx);color:var(--bg);border-color:var(--tx)}
.btn-w:hover{background:#fff;border-color:#fff}
.btn-sm{height:34px;font-size:13px}
.btn-icon{width:42px;padding:0}
.tag{display:inline-block;font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ac)}
.chip{display:inline-block;font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--t2);border:1px solid var(--ln2);border-radius:4px;padding:3px 7px}
.chip-ac{color:var(--ac);border-color:rgba(176,124,255,.4)}
.u{background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .4s var(--ease)}
a:hover .u,a.u:hover{background-size:100% 1px}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ac);animation:blink 2.4s ease-in-out infinite}

/* Images */
.ph{position:relative;overflow:hidden;display:block;background-color:#17181b;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.2px);background-size:5px 5px;border-radius:4px}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:transform 1.2s var(--ease),filter .6s}
a:hover .ph img{transform:scale(1.05);filter:saturate(1)}
.ph-16x10{aspect-ratio:16/10}.ph-16x9{aspect-ratio:16/9}.ph-3x2{aspect-ratio:3/2}.ph-1x1{aspect-ratio:1/1}.ph-21x10{aspect-ratio:21/10}

/* Rows and section heads */
.row{transition:background .25s}.row:hover{background:var(--bg2)}
.sh{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--tx)}
.sh h2{margin:0;font-size:22px;letter-spacing:-.025em;font-weight:600}
.sh .k{font-size:11px}
.sec-title{margin:12px 0 0;font-size:clamp(34px,4.6vw,56px);line-height:1;letter-spacing:-.045em;font-weight:600}
.page-title{margin:14px 0 0;font-size:clamp(40px,5.6vw,72px);line-height:1;letter-spacing:-.05em;font-weight:600}
.display{margin:20px 0 0;font-size:clamp(46px,7vw,96px);line-height:.98;letter-spacing:-.055em;font-weight:600}

/* Dateline */
.dateline{border-bottom:1px solid var(--ln)}
.dateline .wrap{height:34px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:11px}
.dateline nav{display:flex;gap:20px}
.dateline a:hover{color:var(--tx)}

/* Header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(11,11,12,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--ln)}
.admin-bar .site-header{top:32px}
.site-header .bar{height:62px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:9px;font-weight:700;font-size:19px;letter-spacing:-.035em}
.logo img{display:block;height:24px;width:auto}
.primary-nav{display:flex;gap:28px}
.nl{font-size:14px;color:var(--t2);transition:color .2s}.nl:hover,.nl.on{color:var(--tx)}
.header-actions{display:flex;gap:10px}
.sectors{border-top:1px solid var(--ln)}
.sectors .wrap{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none}
.sectors .wrap::-webkit-scrollbar{display:none}
.sec{font-size:13px;color:var(--t2);white-space:nowrap;padding:0 2px;height:44px;display:inline-flex;align-items:center;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.sec:hover,.sec.on{color:var(--tx);border-bottom-color:var(--ac)}
.mb{display:none}
.mnav{display:none;flex-direction:column;padding:4px 16px 20px;border-top:1px solid var(--ln);animation:drop .35s var(--ease) both}
.menu-open .mnav{display:flex}
.mnav a.ml{display:flex;justify-content:space-between;align-items:center;height:56px;border-bottom:1px solid var(--ln);font-size:20px;font-weight:600;letter-spacing:-.02em}
.search-panel{display:none;border-top:1px solid var(--ln)}
.search-open .search-panel{display:block}
.search-panel form{display:flex;gap:10px;padding:14px 0}
.search-panel input{flex:1;height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--ln2);background:var(--bg2);outline:0}
.icon-close{display:none}
.menu-open .icon-menu{display:none}.menu-open .icon-close{display:block}

/* Breaking ticker */
.ticker{height:42px;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--ln);background:#0e0e10}
.ticker .label{flex:none;height:100%;display:flex;align-items:center;gap:8px;padding:0 18px;background:var(--grad);background-size:300% 100%;animation:xf-flow 6s linear infinite;color:#fff;font-weight:500;font-size:11px;position:relative;z-index:1}
.ticker .track{overflow:hidden;flex:1}
.mq{display:flex;gap:48px;width:max-content;animation:marq 70s linear infinite;font-size:13px;color:var(--t2);white-space:nowrap}
.mq:hover{animation-play-state:paused}
.mq a:hover{color:var(--tx)}

/* "Today in" pillar strip */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));border-top:1px solid var(--ln);border-left:1px solid var(--ln)}
.pc{display:block;padding:16px 18px 18px;border-right:1px solid var(--ln);border-bottom:1px solid var(--ln);transition:background .25s;animation:up .8s var(--ease) both}
.pc:hover{background:var(--bg2)}
.pw{display:inline-block;font-size:24px;line-height:1.1;letter-spacing:-.035em;font-weight:600;background-image:linear-gradient(90deg,#7c5cff,#ff6ad5 50%,#6a7bff),linear-gradient(#f2f2ef,#f2f2ef);background-size:0% 100%,100% 100%;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent;transition:background-size .7s var(--ease)}
.pc:hover .pw{background-size:100% 100%,100% 100%}
.pc .meta{display:block;margin-top:6px;font-size:13px;line-height:1.4;color:var(--t2)}

/* Cards and lists */
.latest-item{display:block;padding:14px 0;border-bottom:1px solid var(--ln)}
.latest-item .t{display:block;margin:6px 0 0 40px;font-size:15px;line-height:1.38;font-weight:500}
.latest-item .age{font-size:11px;color:var(--t3);width:30px;flex:none}
.lead-title{display:block;margin-top:10px;font-size:clamp(28px,3.2vw,42px);line-height:1.08;letter-spacing:-.04em;font-weight:600}
.dek{display:block;margin-top:12px;font-size:16px;line-height:1.6;color:var(--t2)}
.card-title{display:block;margin-top:6px;font-size:17px;line-height:1.3;font-weight:600;letter-spacing:-.015em}
.pop-item{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--ln)}
.pop-item .n{font-size:34px;font-weight:600;letter-spacing:-.05em;line-height:.9;color:#3a3a40;width:30px;flex:none}
.pop-item .t{display:block;font-size:15px;line-height:1.38;font-weight:500}
.feed-item{display:flex;gap:24px;align-items:flex-start;padding:24px 0;border-bottom:1px solid var(--ln)}
.feed-item .t{display:block;margin-top:8px;font-size:20px;line-height:1.28;font-weight:600;letter-spacing:-.02em}
.feed-item .d{display:block;margin-top:8px;font-size:15px;line-height:1.55;color:var(--t2)}
.feed-item .thm{flex:none;width:200px;aspect-ratio:3/2}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:32px 24px}
.split{display:flex;flex-wrap:wrap;gap:40px}
.split>*{min-width:0}

/* Funding table */
.ft-head,.ft-row{display:grid;grid-template-columns:80px 1.3fr 1fr .8fr 1.2fr 1fr;gap:16px;align-items:center}
.ft-head{padding:12px 0;border-bottom:1px solid var(--ln);font-size:10.5px}
.ft-row{padding:15px 0;border-bottom:1px solid var(--ln);font-size:15px}
.ft-row .co{font-weight:600}.ft-row .sub{color:var(--t2);font-size:14px}
.ft-m{display:none}
.ft-m a{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 0;border-bottom:1px solid var(--ln)}

/* Events and jobs rows */
.ev-row{display:flex;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--ln)}
.ev-date{width:56px;text-align:center;flex:none}
.ev-date .m{display:block;font-size:10.5px;color:var(--ac)}
.ev-date .d{display:block;font-size:30px;font-weight:600;letter-spacing:-.05em;line-height:1.05}
.ev-title{display:block;font-size:16px;font-weight:600;letter-spacing:-.015em}
.ev-where{display:block;font-size:13px;color:var(--t2);margin-top:3px}

/* Instagram grid */
.ig-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}
.ig-grid .ph::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.75))}
.ig-grid .k{position:absolute;left:10px;bottom:9px;font-size:10px;color:rgba(255,255,255,.9);z-index:1}

/* Contribute */
.contribute{display:flex;flex-wrap:wrap;gap:32px 80px;padding:48px 0;border-top:1px solid var(--tx);border-bottom:1px solid var(--ln)}
.contribute h2{margin:12px 0 0;font-size:clamp(30px,3.8vw,46px);line-height:1.04;letter-spacing:-.045em;font-weight:600}
.contribute .opt{display:flex;align-items:center;justify-content:space-between;gap:16px;height:auto;padding:18px 0;border-bottom:1px solid var(--ln);color:var(--tx)}

/* Tabs */
.tabs{display:flex;gap:28px;overflow-x:auto;border-bottom:1px solid var(--ln);scrollbar-width:none}
.tab{height:48px;padding:0 2px;border:0;border-bottom:2px solid transparent;background:none;font-size:15px;color:var(--t3);white-space:nowrap;display:inline-flex;align-items:center;transition:color .2s,border-color .2s}
.tab:hover{color:var(--tx)}
.tab.on{color:var(--tx);border-bottom-color:var(--ac)}

/* Article */
.prog{position:fixed;left:0;top:0;height:2px;width:100%;z-index:60;transform-origin:0 50%;background:var(--grad);background-size:300% 100%;animation:xf-flow 8s linear infinite;transform:scaleX(0)}
@supports (animation-timeline:scroll()){.prog{animation:grow linear both;animation-timeline:scroll(root)}}
.art-head{text-align:center;padding-top:64px}
.art-head h1{margin:20px auto 0;max-width:1000px;font-size:clamp(36px,5.4vw,68px);line-height:1.02;letter-spacing:-.05em;font-weight:600}
.art-head .dek{margin:22px auto 0;max-width:680px;font-size:20px;line-height:1.55}
.byline{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:28px;text-align:left;font-size:14px}
.avatar{width:36px;height:36px;border-radius:50%;background:#f2f2ef;color:#0b0b0c;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.art-layout{max-width:1120px;padding-top:56px;display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.art-side{flex:0 0 200px;position:sticky;top:120px}
.toc a{display:block;padding:9px 0 9px 14px;border-left:1px solid var(--ln);font-size:14px;color:var(--t2);transition:color .2s,border-color .2s}
.toc a:hover{color:var(--tx);border-left-color:var(--ac)}
.share-row{display:flex;gap:8px}
.share{width:40px;height:40px;border-radius:50%;border:1px solid var(--ln2);background:none;display:grid;place-items:center;color:var(--t2);transition:color .2s,border-color .2s}
.share:hover{color:var(--tx);border-color:#55555b}
.only-m{display:none}
.body{flex:1 1 560px;min-width:0;max-width:680px}
.body p,.body ul,.body ol{margin:0 0 26px;font-size:19px;line-height:1.72;color:#d6d6d2}
.body li{margin-bottom:8px}
.body h2{margin:52px 0 18px;font-size:28px;line-height:1.2;letter-spacing:-.03em;font-weight:600;color:var(--tx)}
.body h3{margin:36px 0 14px;font-size:22px;letter-spacing:-.02em;font-weight:600}
.body > p:first-of-type::first-letter{float:left;font-size:76px;line-height:.86;font-weight:600;margin:6px 12px 0 0;letter-spacing:-.04em;color:var(--tx)}
.body a{color:var(--tx);border-bottom:1px solid var(--ln2)}
.body a:hover{border-bottom-color:var(--ac)}
.body blockquote{margin:40px 0;padding:0 0 0 24px;border-left:2px solid var(--ac);font-size:26px;line-height:1.35;letter-spacing:-.02em;font-weight:500;color:var(--tx)}
.body blockquote p{font-size:inherit;color:inherit;margin:0}
.body figure{margin:32px 0}
.body img{border-radius:4px}
.body figcaption,.wp-element-caption{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--t3);margin-top:10px}
.body table{width:100%;border-collapse:collapse;margin:0 0 26px;font-size:15px}
.body th,.body td{border-bottom:1px solid var(--ln);padding:10px 8px;text-align:left}
.body pre,.body code{font-family:'Geist Mono',monospace;font-size:14px;background:var(--bg2);border-radius:6px}
.body pre{padding:16px;overflow-x:auto}
.art-tags{margin-top:40px;padding-top:24px;border-top:1px solid var(--ln);display:flex;gap:8px;flex-wrap:wrap}
.orig-link{display:inline-block;margin-top:20px;font-size:11px;border-bottom:1px solid var(--ln2)}

/* Generic pages (plugin pages, legal pages, CPT singles) */
.page-head{padding-top:56px;padding-bottom:28px}
.prose{max-width:760px}
.prose-wide{max-width:none}
.prose p,.prose li{font-size:17px;line-height:1.7;color:#d6d6d2}
.prose h2{margin:40px 0 14px;font-size:26px;letter-spacing:-.03em;font-weight:600}
.prose h3{margin:28px 0 10px;font-size:20px;font-weight:600}
.prose a{border-bottom:1px solid var(--ln2)}
.prose a:hover{border-bottom-color:var(--ac)}
.prose .xf a,.prose a.xf-card,.prose a.xf-button,.prose a.btn,.prose .xf-news-card a{border-bottom:0}

/* Forms */
.f{display:flex;flex-direction:column;gap:8px}
.f label{font-size:14px;font-weight:500}
.f input,.f textarea,.f select{width:100%;padding:0 14px;height:48px;border-radius:8px;border:1px solid var(--ln2);background:var(--bg2);outline:0;font-size:15px;transition:border-color .2s}
.f textarea{height:180px;padding:12px 14px;resize:vertical;line-height:1.6}
.f input:focus,.f textarea:focus{border-color:var(--tx)}
.hint{font-size:13px;color:var(--t3)}
.ty{display:block;width:100%;text-align:left;padding:16px 18px;border:1px solid var(--ln2);border-radius:10px;background:none;transition:border-color .2s,background .2s;cursor:pointer}
.ty:hover{border-color:#55555b}
.ty input{position:absolute;opacity:0;pointer-events:none}
.ty:has(input:checked),.ty.on{border-color:var(--ac);background:rgba(176,124,255,.06)}
.ty .lbl{display:block;font-size:16px;font-weight:600}
.ty .sub{display:block;font-size:13px;color:var(--t2);margin-top:3px}
.notice{padding:14px 16px;border-radius:8px;border:1px solid var(--ln2);background:var(--bg2);font-size:15px}
.notice-ok{border-color:rgba(126,214,154,.5)}
.notice-err{border-color:rgba(176,124,255,.6)}

/* Newsletter box */
.xf-subscribe{display:block;margin-top:24px;padding:20px;border:1px solid var(--ln2);border-radius:8px;background:var(--bg2)}
.xf-subscribe .k{font-size:10.5px}
.xf-subscribe__title{margin-top:8px;font-size:17px;font-weight:600;letter-spacing:-.015em;line-height:1.3}
.xf-subscribe input[type=email]{margin-top:14px;width:100%;height:42px;padding:0 14px;border-radius:8px;border:1px solid var(--ln2);background:var(--bg);outline:0;font-size:15px}
.xf-subscribe .btn{margin-top:10px;width:100%;height:40px}
.xf-subscribe__msg{margin:10px 0 0;font-size:13px;color:var(--t2);min-height:1px}
.xf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Pagination */
.pager{margin-top:28px;display:flex;justify-content:center;gap:10px}

/* Footer */
.site-footer{margin-top:100px}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:32px;padding-bottom:48px}
.footer-cols div{display:flex;flex-direction:column;gap:10px;font-size:14px}
.wordmark{font-size:clamp(64px,15vw,220px);font-weight:700;letter-spacing:-.07em;line-height:.8;color:#18181b;user-select:none;white-space:nowrap}
.footer-bottom{padding-top:22px;padding-bottom:30px;font-size:11px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--ln)}
.footer-bottom a:hover{color:var(--tx)}

/* Ads: reserved space, dark-friendly */
.xf-ad{margin:48px auto;text-align:center;min-height:120px}
.xf-ad__label{display:block;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-bottom:6px}

/* Plugin blocks on the dark theme */
.xf{--xf-accent:#b07cff;--xf-accent-soft:rgba(176,124,255,.12);--xf-success:#7ed69a;--xf-border:#303035;--xf-muted:#a6a6a2;--xf-surface:#121214}
.xf-sources{margin-top:48px;padding-top:24px;border-top:1px solid var(--ln)}
.xf-sources h2{margin:0 0 12px;font-size:11px}
.xf-sources ol{margin:0;padding-left:20px}
.xf-sources li{margin:0 0 10px;font-size:14px;line-height:1.5;color:var(--t2)}
.xf-sources a{color:var(--tx)}
.xf-sources__date{font-family:'Geist Mono',monospace;font-size:11px;color:var(--t3);margin-left:6px}
.xf-sources__claim{display:block;color:var(--t3);font-size:13px}
.body .xf-sources li{font-size:14px;margin-bottom:10px}
.xf-sponsored-label{display:inline-block;font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--bg);background:var(--tx);border-radius:4px;padding:4px 8px}
.xf-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border-top:1px solid var(--ln);border-bottom:1px solid var(--ln);margin:0 0 32px}
.xf-facts div{padding:16px 16px 16px 0}
.xf-facts dt{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.xf-facts dd{margin:6px 0 0;font-size:16px}
.xf-event-facts p{margin:0 0 6px;font-family:'Geist Mono',monospace;font-size:13px;color:var(--t2)}
.xf-table{width:100%;border-collapse:collapse}
.xf-table th,.xf-table td{border-bottom:1px solid var(--ln);padding:12px 8px;text-align:left}

/* Motion */
@keyframes blink{50%{opacity:.25}}
@keyframes up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes marq{to{transform:translateX(-50%)}}
@keyframes drop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes grow{to{transform:scaleX(1)}}
.in{animation:up .8s var(--ease) both}
.rv{animation:up .8s var(--ease) both}
@supports (animation-timeline:view()){.rv{animation:up linear both;animation-timeline:view();animation-range:entry 0% entry 25%}}

/* Mobile */
@media (max-width:860px){
  .primary-nav,.hs{display:none!important}
  .wrap{padding-left:16px;padding-right:16px}
  .mb{display:inline-flex}
  .only-m{display:flex}
  .o-lead{order:0!important}
  .sh h2{font-size:20px}
  .ft-m{display:block}
  .ft-table{display:none}
  .feed-item .thm{width:96px}
  .body p,.body ul,.body ol{font-size:17px;line-height:1.7}
  .body h2{font-size:24px;margin-top:40px}
  .body > p:first-of-type::first-letter{font-size:60px}
  .art-side{display:none}
  .tys{flex-direction:row!important;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}
  .tys .ty{flex:none;width:auto;padding:12px 16px}
  .tys .ty .sub{display:none}
  .sform{padding:20px!important}
}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== Phase B: jobs, tools, apply guides ===== */
.av{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:9px;border:1px solid var(--ln2);background:#151517;font-family:'Geist Mono',monospace;font-size:13px;color:var(--t2);text-transform:uppercase}
.jsearch{margin-top:48px;display:flex;flex-wrap:wrap;border:1px solid var(--ln2);border-radius:12px;overflow:hidden}
.jsearch .fp{display:flex;align-items:center;gap:12px;padding:0 18px;height:60px}
.jsearch input{flex:1;min-width:0;background:none;border:0;outline:0;font-size:16px}
.jsearch button{flex:1 0 auto;height:60px;padding:0 32px;border:0;background:var(--tx);color:var(--bg);font-weight:600}
.jsearch .fp+.fp{border-left:1px solid var(--ln2)}
.opt{display:flex;justify-content:space-between;align-items:center;width:100%;height:42px;border-bottom:1px solid var(--ln);color:var(--t2);font-size:14px;transition:color .2s}
.opt:hover,.opt.on{color:var(--tx)}
.opt.on>span:first-child::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ac);margin-right:10px;vertical-align:2px}
.tabs-s{display:flex;gap:22px}
.tab-s{height:36px;padding:0 4px;border-bottom:1px solid transparent;font-size:14px;color:var(--t3);display:inline-flex;align-items:center;transition:color .2s,border-color .2s}
.tab-s:hover{color:var(--tx)}.tab-s.on{color:var(--tx);border-bottom-color:var(--ac)}
.job-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid var(--ln)}
.job-row .role{font-size:18px;font-weight:600;letter-spacing:-.015em}
.job-row .meta{font-size:14px;color:var(--t2);margin-top:4px}
.save{width:40px;height:40px;border-radius:9px;border:1px solid var(--ln2);background:none;display:grid;place-items:center;color:var(--t2);transition:all .2s}
.save:hover{color:var(--tx)}
.save.on{color:var(--ac);border-color:rgba(176,124,255,.5)}
.save.on svg{fill:currentColor}
.job-head .facts,.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));border-top:1px solid var(--ln);border-bottom:1px solid var(--ln)}
.facts>div{padding:20px 20px 20px 0}
.facts>div+div{padding-left:20px;border-left:1px solid var(--ln)}
.facts .v{margin-top:8px;font-size:16px}
.card{display:flex;flex-direction:column;gap:14px;padding:24px;border:1px solid var(--ln);border-radius:10px;transition:border-color .25s,background .25s;min-height:220px}
.card:hover{border-color:#45454b;background:var(--bg2)}
.ico{width:44px;height:44px;border-radius:10px;border:1px solid var(--ln2);display:grid;place-items:center;color:var(--tx)}
.fld{display:flex;align-items:center;gap:10px;height:56px;padding:0 16px;border:1px solid var(--ln2);border-radius:10px;background:var(--bg2)}
.fld input{flex:1;min-width:0;background:none;border:0;outline:0;font-family:'Geist Mono',monospace;font-size:20px}
.seg{display:inline-flex;border:1px solid var(--ln2);border-radius:10px;overflow:hidden}
.seg button{height:42px;padding:0 18px;border:0;background:none;font-size:14px;color:var(--t2)}
.seg button+button{border-left:1px solid var(--ln2)}
.seg button[aria-pressed="true"]{background:var(--tx);color:var(--bg)}
.preset{height:34px;padding:0 12px;border-radius:8px;border:1px solid var(--ln2);background:none;font-family:'Geist Mono',monospace;font-size:12px;color:var(--t2)}
.preset:hover,.preset.on{color:var(--tx);border-color:#55555b}
.result{padding:32px;border:1px solid var(--ln2);border-radius:12px;background:var(--bg2);display:flex;flex-direction:column;gap:22px}
.big{font-family:'Geist Mono',monospace;font-size:clamp(46px,6vw,76px);line-height:1;letter-spacing:-.05em;font-weight:500}
.br{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--ln);font-size:14px}
.splitbar{display:flex;height:10px;border-radius:5px;overflow:hidden;gap:2px}
.step{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--ln)}
.step-n{font-family:'Geist Mono',monospace;font-size:13px;color:var(--ac);width:34px;flex:none;padding-top:4px}
.tip{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--ln);font-size:16px;line-height:1.6}
.crumbs{display:flex;gap:10px;flex-wrap:wrap}
.crumbs a{color:var(--t2)}.crumbs a:hover{color:var(--tx)}
.job-body{max-width:760px}
.job-body p,.job-body li{font-size:16px;line-height:1.7;color:#d6d6d2}
.job-body p{margin:0 0 14px}
.job-body h3{margin:32px 0 12px;font-size:13px;font-family:'Geist Mono',ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ac);font-weight:500}
.job-body h3:first-child{margin-top:0}
.job-body ul{margin:0 0 18px;padding:0;list-style:none}
.job-body li{position:relative;padding:7px 0 7px 22px;border-bottom:1px solid var(--ln)}
.job-body li:last-child{border-bottom:0}
.job-body li::before{content:'';position:absolute;left:2px;top:17px;width:6px;height:6px;border-radius:2px;background:var(--ac)}
.job-body b,.job-body strong{color:var(--tx);font-weight:600}
.job-body h2,.job-body h3{margin:32px 0 12px;font-size:20px;letter-spacing:-.02em;font-weight:600}
.job-body ul{padding-left:20px}
@media (max-width:860px){.jsearch .fp+.fp{border-left:0;border-top:1px solid var(--ln2)}.jsearch button{width:100%}.facts>div+div{border-left:0;padding-left:0}}
/* Free tools */
.tool-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:40px;padding-top:40px;align-items:start}
.tool-in{display:flex;flex-direction:column;gap:10px;min-width:0}
.tool-in [hidden],.result [hidden]{display:none!important}
.splitbar span{display:block;height:100%;transition:width .3s}
@media (max-width:860px){.tool-grid{grid-template-columns:minmax(0,1fr)}.result{padding:22px}}

/* Purple gradient theme: slow colour flow on the accent surfaces, plus a faint glow behind the header. */
@keyframes xf-flow{from{background-position:0% 50%}to{background-position:300% 50%}}
.hl{animation-name:xf-flow-alt}
@keyframes xf-flow-alt{from{background-position:0% 50%}to{background-position:100% 50%}}
body{background-image:radial-gradient(1100px 420px at 50% -220px,rgba(124,92,255,.22),transparent 65%);background-repeat:no-repeat}
.ac:focus-visible{-webkit-text-fill-color:currentColor}
@media (prefers-reduced-motion:reduce){.ac,.hl,.ticker .label,.prog{animation:none}}
/* Home without news yet: jobs + tools take the lead slot. */
.home-start{display:flex;flex-wrap:wrap;gap:36px 48px;align-items:flex-start;padding-top:40px}
.home-start .job-mini{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--ln)}
.home-start .job-mini .t{display:block;font-weight:600;font-size:16px;letter-spacing:-.01em}
.home-start .job-mini .m{display:block;font-size:13px;color:var(--t2);margin-top:2px}
.tool-mini{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--ln);border-radius:10px;transition:border-color .25s,background .25s}
.tool-mini:hover{border-color:var(--ln2);background:var(--bg2)}

/* Credited, openly licensed article images (inserted by the draft API). */
.xf-figure{margin:32px 0}
.xf-figure img{display:block;width:100%;height:auto;border-radius:6px;background:#17181b}
.xf-figure figcaption{margin-top:10px;font-size:13px;line-height:1.5;color:var(--t3)}
.xf-figure figcaption a{color:var(--t2);border-bottom:1px solid var(--ln2)}

/* Buyer enquiry form on B2B listing articles ([xf_quote_form]). */
.xf-quote{margin:40px 0;padding:28px;border:1px solid var(--ln2);border-radius:12px;background:var(--bg2)}
.xf-quote h2{margin:6px 0 8px;font-size:24px}
.xf-quote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:14px;margin:18px 0}
.xf-quote label span{display:block;font-size:13px;color:var(--t2);margin-bottom:6px}
.xf-quote label.wide{grid-column:1/-1}
.xf-quote input[type=text],.xf-quote input[type=email],.xf-quote input[type=tel],.xf-quote textarea{width:100%;padding:11px 12px;border-radius:8px;border:1px solid var(--ln2);background:var(--bg);font-size:15px}
.xf-quote-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--t2);margin-bottom:16px;line-height:1.5}
.xf-quote-ok{color:var(--tx);font-weight:500}
.xf-quote-err{color:#ff8a8a}

/* Credit line on the shared section photographs. */
.ph{position:relative}
.ph-credit{position:absolute;right:0;bottom:0;max-width:100%;padding:4px 8px;font-size:10px;line-height:1.3;color:rgba(255,255,255,.72);background:rgba(0,0,0,.55);border-top-left-radius:6px;text-align:right}
.ph-credit a{color:inherit}
.ph-credit a:hover{color:#fff}

/* Events by city, RSVPs and the community directory. */
.city-tabs{display:flex;gap:10px;flex-wrap:wrap}
.city-tabs .tab{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--ln2);border-radius:999px;font-size:14px;transition:background .2s,border-color .2s}
.city-tabs .tab:hover{background:var(--bg2);border-color:#45454b}
.city-tabs .tab.on{background:var(--tx);color:var(--bg);border-color:var(--tx)}
.city-tabs .tab.on .k{color:var(--bg);opacity:.65}
.xf-event{display:flex;gap:22px;padding:24px 0;border-bottom:1px solid var(--ln)}
.xf-event__date{flex:none;width:62px;text-align:center}
.xf-event__date .d{display:block;font-size:32px;font-weight:600;letter-spacing:-.05em;line-height:1.05}
.xf-event__body{flex:1;min-width:0}
.xf-event__body h3{margin:0;font-size:19px;font-weight:600;letter-spacing:-.02em;line-height:1.3}
.xf-event__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:16px}
.xf-event__actions .btn{height:38px;font-size:13px}
.xf-gate{margin:28px 0 32px;padding:26px;border:1px solid var(--ac);border-radius:12px;background:var(--bg2)}
.xf-gate h3{margin:6px 0 8px;font-size:22px;letter-spacing:-.02em}
.xf-gate p{color:var(--t2);font-size:15px;line-height:1.6;margin:0}
.xf-gate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:14px;margin:18px 0}
.xf-gate label span{display:block;font-size:13px;color:var(--t2);margin-bottom:6px}
.xf-gate input[type=text],.xf-gate input[type=tel],.xf-gate input[type=email]{width:100%;padding:11px 12px;border-radius:8px;border:1px solid var(--ln2);background:var(--bg);font-size:15px}
.xf-communities{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:20px;margin-top:28px}
.xf-community{padding:22px;border:1px solid var(--ln);border-radius:12px;background:var(--bg2)}
.xf-community__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.xf-community__head h3{margin:0;font-size:18px;font-weight:600;letter-spacing:-.02em}
.xf-community__focus{margin:10px 0;font-size:15px;line-height:1.55;color:var(--t2)}
.xf-community .k{margin:4px 0}
.xf-community__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.xf-community__actions .btn{height:38px;font-size:13px}

/* Event cards with the organiser's own share image. */
.xf-event.has-pic{align-items:flex-start}
.xf-event__pic{position:relative;flex:none;display:block;width:200px;aspect-ratio:16/10;overflow:hidden;border-radius:10px;background:#17181b}
.xf-event__pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.xf-event__pic:hover img{transform:scale(1.04)}
.xf-event__pic .ph-credit{font-size:9px;padding:3px 6px}
@media (max-width:720px){.xf-event{flex-wrap:wrap}.xf-event__pic{width:100%}}

/* ===== Phase C: mobile crops, comparison tables, startup logos ===== */

/* An event flyer is a 1.91:1 social card, so it gets a frame its own shape
   instead of losing a strip off each side to a 16:10 one. */
.ph-flyer{aspect-ratio:1.91/1}

/* On a phone the column is ~343px, and a 2.1:1 frame throws away a third of a
   4:3 photograph to fill it. The wide editorial ratios relax towards the shape
   of the files we hold: our photographs run 4:3 to 3:2. */
@media (max-width:720px){
  .ph-21x10{aspect-ratio:3/2}
  .ph-16x9{aspect-ratio:16/10}
  .xf-event__pic{aspect-ratio:1.91/1}
}

/* Comparison tables: five columns in a phone-width column wrapped every cell
   to five lines and pushed the page wider than the screen. Each table now
   scrolls inside its own frame, with the row's name pinned to the left edge. */
.xf-tablewrap{position:relative;margin:0 0 10px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ln2) transparent}
.xf-tablewrap:focus-visible{outline:2px solid var(--ac);outline-offset:4px;border-radius:6px}
.xf-tablewrap::-webkit-scrollbar{height:8px}
.xf-tablewrap::-webkit-scrollbar-thumb{background:var(--ln2);border-radius:4px}
.xf-tablewrap::-webkit-scrollbar-track{background:transparent}
.xf-tablewrap table{margin:0}
.xf-tablehint{display:none;margin:0 0 26px;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--t3)}
.xf-tablewrap[data-overflow]+.xf-tablehint{display:block}

.xf-dt{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;font-variant-numeric:tabular-nums;
       min-width:calc(152px + (var(--cols,3) - 1)*144px)}
.xf-dt thead th{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
                color:var(--t2);white-space:nowrap;text-align:left;padding:12px 16px;background:var(--bg2);
                border-bottom:1px solid var(--ln)}
.xf-dt tbody td,.xf-dt tbody th{padding:14px 16px;text-align:left;vertical-align:top;line-height:1.5;border-bottom:1px solid var(--ln)}
.xf-dt tbody tr:last-child td,.xf-dt tbody tr:last-child th{border-bottom:0}
.xf-dt tbody tr:hover td,.xf-dt tbody tr:hover th{background:rgba(176,124,255,.055)}
/* The first column holds the row's name, so it stays put while you scroll
   across the rest and keeps an opaque background to scroll underneath. */
.xf-dt thead th:first-child,.xf-dt tbody th:first-child,.xf-dt tbody td:first-child{position:sticky;left:0;z-index:1}
.xf-dt tbody th:first-child,.xf-dt tbody td:first-child{background:var(--bg);font-weight:600;color:var(--tx)}
.xf-dt thead th:first-child{z-index:2;box-shadow:1px 0 0 var(--ln)}
.xf-dt tbody th:first-child,.xf-dt tbody td:first-child{box-shadow:1px 0 0 var(--ln)}
.xf-dt tbody tr:hover th:first-child,.xf-dt tbody tr:hover td:first-child{background:#15121b}
.xf-dt caption{caption-side:bottom;padding-top:12px;font-size:13px;color:var(--t3);text-align:left}
@media (max-width:720px){
  .xf-dt{font-size:14.5px}
  .xf-dt thead th,.xf-dt tbody td,.xf-dt tbody th{padding:12px}
}

/* Startup logos: the icon the company publishes for phone home screens, shown
   the way a phone shows it — full-bleed in a rounded square. Those icons are
   opaque by design (iOS paints transparency black), and the light tile behind
   is only there for the odd one that is not. The lettered tile is the fallback,
   tinted from the name so a grid of them is not fifteen identical squares. */
.xf-logo{border-radius:22%;object-fit:cover;flex-shrink:0;display:inline-flex;background:#f4f4f1;
         box-shadow:0 0 0 1px rgba(255,255,255,.1),0 6px 18px -8px rgba(0,0,0,.6)}
.xf-logo--initial{align-items:center;justify-content:center;font-weight:650;letter-spacing:-.02em;
                  background:linear-gradient(145deg,hsl(var(--h,268) 62% 24%),hsl(calc(var(--h,268) + 26) 58% 15%));
                  color:hsl(var(--h,268) 85% 82%);box-shadow:inset 0 0 0 1px hsl(var(--h,268) 60% 70% / .22)}

/* ===== Phase D: photo strips, event graphics in lists ===== */

/* Event rows carry the organiser's graphic at the end of the line. */
.ev-pic{flex:none;width:132px;aspect-ratio:1.91/1;border-radius:8px;overflow:hidden;background:#17181b;box-shadow:0 0 0 1px var(--ln)}
.ev-pic img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.ev-row:hover .ev-pic img{transform:scale(1.05)}
.ev-row--compact{gap:14px;padding:14px 0}
.ev-row--compact .ev-pic{width:88px}
@media (max-width:720px){.ev-pic{width:96px}.ev-row--compact .ev-pic{width:76px}}

/* Photo strips: a slow drift of real pictures, each one a link. The track
   holds the list twice and slides by half its width, so the loop is seamless. */
.strip{position:relative;overflow:hidden;padding:26px 0 6px;
       -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
               mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.strip-track{display:flex;gap:16px;width:max-content;animation:marq var(--strip-dur,60s) linear infinite}
.strip:hover .strip-track,.strip:focus-within .strip-track{animation-play-state:paused}
.strip-item{flex:none;display:block;width:300px}
.strip--stories .strip-item{width:240px}
.strip-pic{position:relative;display:block;aspect-ratio:1.91/1;border-radius:10px;overflow:hidden;background:#17181b;box-shadow:0 0 0 1px var(--ln)}
.strip--stories .strip-pic{aspect-ratio:3/2}
.strip-pic img{width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform 1.1s var(--ease),filter .6s}
.strip-item:hover .strip-pic img{transform:scale(1.05);filter:saturate(1.05)}
.strip-cap{display:block;margin-top:10px}
.strip-cap .k{display:block;font-size:10px;color:var(--ac)}
.strip-title{display:block;margin-top:4px;font-size:14px;line-height:1.35;font-weight:550;letter-spacing:-.01em;color:var(--tx);
             display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:720px){.strip-item{width:232px}.strip--stories .strip-item{width:196px}.strip-track{gap:12px}}
/* No motion wanted: the strip becomes an ordinary sideways scroller. */
@media (prefers-reduced-motion:reduce){
  .strip{overflow-x:auto;-webkit-mask-image:none;mask-image:none;padding-left:16px;padding-right:16px}
  .strip-track{animation:none}
  .strip-item[aria-hidden="true"]{display:none}
}

/* Company logos on job pages: the company's own icon, full-bleed in the tile. */
.av--logo{padding:0;overflow:hidden;background:#f4f4f1;border-color:transparent;border-radius:22%;box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.av--logo img{width:100%;height:100%;object-fit:cover;display:block}
.co-head{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.co-head .display{margin:0}
@media (max-width:720px){.co-head .av{width:56px!important;height:56px!important}}

/* Tool reviews: at-a-glance box and coupons (plugin includes/reviews.php) */
.xf-review-box,.xf-coupons{margin:32px 0;padding:24px;border:1px solid var(--ln2);border-radius:12px;background:var(--bg2);font-size:15px}
.xf-review-box .xf-review-kicker,.xf-coupons .xf-review-kicker{margin:0 0 12px;font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ac)}
.xf-review-box dl{margin:0;display:grid;gap:10px}
.xf-review-box dl>div{display:grid;grid-template-columns:130px 1fr;gap:12px}
.xf-review-box dt{color:var(--t3)}.xf-review-box dd{margin:0}
.xf-review-note{color:var(--t3);font-size:13px}
.xf-review-verdict{margin:18px 0 0}
.xf-review-pc{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;padding-top:18px;border-top:1px solid var(--ln)}
.xf-review-pc ul,.xf-coupons ul{margin:0;padding-left:18px}.xf-review-pc li,.xf-coupons li{margin:6px 0}
.xf-coupon-code{padding:3px 8px;border:1px dashed var(--ac);user-select:all}
.xf-coupon-exp,.xf-coupon-disclosure{color:var(--t3);font-size:13px}
.xf-coupon-disclosure{margin:14px 0 0}
@media (max-width:640px){.xf-review-box dl>div{grid-template-columns:1fr;gap:2px}.xf-review-pc{grid-template-columns:1fr}}

/* ===== Phase E: startup profile pages ===== */
.sp-head{display:flex;gap:22px;align-items:center;margin-top:28px;flex-wrap:nowrap}
.sp-head .xf-logo{width:88px!important;height:88px!important;border-radius:22%;flex:none}
.sp-head .page-title{margin:0}
.sp-tag{margin:10px 0 0;font-size:19px;line-height:1.45;color:var(--t2);max-width:760px}
.sp-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
@media (max-width:720px){.sp-head{gap:16px;align-items:flex-start}.sp-head .xf-logo{width:64px!important;height:64px!important}.sp-tag{font-size:17px}}

.sp-gallery{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin;scrollbar-color:var(--ln2) transparent;overscroll-behavior-x:contain}
/* Screenshots keep their own proportions at a fixed height: nothing is cropped. */
.sp-shot{flex:0 0 auto;margin:0;scroll-snap-align:start}
.sp-shot img{display:block;height:340px;width:auto;max-width:none;border-radius:12px;background:#17181b;box-shadow:0 0 0 1px var(--ln)}
@media (max-width:720px){.sp-shot img{height:210px}}
.sp-shot figcaption{margin-top:8px;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--t3)}

.sp-jump{display:flex;gap:6px 18px;flex-wrap:wrap;margin-top:22px;font-size:11px}
.sp-jump a{color:var(--t2);border-bottom:1px solid transparent;padding-bottom:2px}
.sp-jump a:hover{color:var(--tx);border-color:var(--ac)}

.sp-body{padding-top:48px;display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.sp-main{flex:999 1 600px;min-width:0}
.sp-side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:28px}
.sp-main h2{scroll-margin-top:110px}
.sp-main h2:not(:first-child){margin-top:56px}
.sp-note{font-size:14.5px;color:var(--t2)}
.sp-src{font-size:10.5px;margin-top:10px;color:var(--t3)}
.sp-sources{font-size:10.5px;margin-top:56px;padding-top:20px;border-top:1px solid var(--ln);line-height:1.9;color:var(--t3)}

.sp-card{padding:20px 22px;border:1px solid var(--ln);border-radius:12px;background:#0f0f11}
.sp-card ul{margin:12px 0 0;padding-left:18px}
.sp-card li{margin:7px 0;font-size:15px;line-height:1.5}
.sp-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.sp-rating{display:flex;gap:20px;align-items:center}
.sp-score{font-size:46px;font-weight:700;letter-spacing:-.04em;line-height:1}
.sp-score span{font-size:16px;font-weight:500;color:var(--t3);margin-left:2px}

.sp-quote{margin:18px 0;padding:6px 0 6px 20px;border-left:2px solid var(--ac)}
.sp-quote p{margin:0 0 8px;font-size:16px;line-height:1.6}
.sp-quote .sp-reply{font-size:14.5px;color:var(--t2)}
.sp-quote footer{font-size:10.5px;color:var(--t3);margin-top:6px}
.sp-links{padding-left:18px}
.sp-links li{margin:8px 0;font-size:15px}

.sp-faq details{border-bottom:1px solid var(--ln);padding:16px 0}
.sp-faq summary{cursor:pointer;font-weight:600;font-size:16.5px;list-style:none;display:flex;justify-content:space-between;gap:16px}
.sp-faq summary::-webkit-details-marker{display:none}
.sp-faq summary::after{content:'+';font-family:'Geist Mono',monospace;color:var(--ac);flex:none}
.sp-faq details[open] summary::after{content:'–'}
.sp-faq details p{margin:12px 0 0;color:var(--t2);line-height:1.65}

.sp-sim{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--ln)}
.sp-sim .xf-logo{flex:none}
/* Profile tables: give text columns room so rows stay short; the frame scrolls sideways on narrow screens. */
.sp-main .xf-dt td{min-width:150px}
.sp-main .xf-dt tbody th[scope=row]{min-width:120px}
.sp-main .xf-dt td:last-child{min-width:230px}
.sp-main .xf-dt{min-width:0}

/* ===== Phase F: reader ratings box (footer) ===== */
.xf-rate{margin-top:72px;border-top:1px solid var(--ln);background:#0e0e10}
.xf-rate__in{display:flex;gap:18px 28px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-top:22px;padding-bottom:22px}
.xf-rate__q{display:block;font-size:16px;font-weight:600;letter-spacing:-.01em}
.xf-rate__sum{display:block;margin-top:5px;font-size:10.5px;color:var(--t3)}
.xf-rate__stars{display:flex;gap:2px}
.xf-star{background:none;border:0;padding:2px 4px;font-size:32px;line-height:1;color:var(--ln2);cursor:pointer;transition:color .15s,transform .15s}
.xf-star.on{color:#f5b942}
.xf-star:hover{transform:scale(1.12)}
.xf-star:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){.xf-star{transition:none}.xf-star:hover{transform:none}}

/* ===== Phase G: founders-community signup popup ===== */
.xf-pop{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:16px}
.xf-pop[hidden]{display:none}
.xf-pop__backdrop{position:absolute;inset:0;background:rgba(5,5,7,.68);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.xf-pop__card{position:relative;width:100%;max-width:460px;max-height:calc(100vh - 32px);overflow:auto;padding:30px 28px 24px;background:#111113;border:1px solid var(--ln2);border-radius:18px;box-shadow:0 30px 80px -20px rgba(0,0,0,.8);animation:xf-pop-in .28s var(--ease) both}
.xf-pop__card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:18px 18px 0 0;background:var(--grad)}
@keyframes xf-pop-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.xf-pop__x{position:absolute;right:12px;top:12px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--t2);font-size:26px;line-height:1;cursor:pointer}
.xf-pop__x:hover{background:#1b1b1f;color:var(--tx)}
.xf-pop h2{margin:6px 0 8px;font-size:23px;line-height:1.2;letter-spacing:-.025em}
.xf-pop__lead{margin:0 0 18px;color:var(--t2);font-size:15px;line-height:1.55}
.xf-pop form{display:flex;flex-direction:column;gap:6px}
.xf-pop label{font-size:12.5px;color:var(--t2)}
.xf-pop__opt{color:var(--t3)}
.xf-pop input[type=email],.xf-pop input[type=tel]{height:46px;padding:0 14px;margin-bottom:8px;border:1px solid var(--ln2);border-radius:10px;background:#0b0b0c;color:var(--tx);font:inherit;font-size:16px}
.xf-pop input:focus-visible{outline:2px solid var(--ac);outline-offset:1px}
.xf-pop__check{display:flex;gap:10px;align-items:flex-start;margin:4px 0;font-size:12.5px;line-height:1.45;cursor:pointer}
.xf-pop__check[hidden]{display:none}
.xf-pop__check input{margin-top:2px;flex:none;width:16px;height:16px;accent-color:#b07cff}
.xf-pop__go{height:48px;margin-top:10px;width:100%}
.xf-pop__msg{min-height:18px;margin:6px 0 0;font-size:13px;color:#ff8d8d}
.xf-pop__fine{margin:2px 0 0;font-size:11.5px;color:var(--t3)}
.xf-pop__fine a{text-decoration:underline}
.xf-pop__done{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.xf-pop__done[hidden]{display:none}
html.xf-pop-open{overflow:hidden}
@media (max-width:620px){
  .xf-pop{place-items:end center;padding:0}
  .xf-pop__card{max-width:none;border-radius:18px 18px 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom));animation-name:xf-pop-up}
  @keyframes xf-pop-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
}
@media (prefers-reduced-motion:reduce){.xf-pop__card{animation:none}}
.xf-pop [hidden]{display:none!important}

/* ---- Gated list ([xf_reveal]) ---- */
.xf-reveal{position:relative;margin:28px 0;border:1px solid var(--ln2);border-radius:14px;background:var(--bg2);overflow:hidden}
.xf-reveal__ghosts{list-style:none;margin:0;padding:18px 22px 0;filter:blur(1.5px);opacity:.55;user-select:none}
.xf-reveal__ghosts li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--ln)}
.xf-reveal__no{font-family:'Geist Mono',monospace;font-size:12px;color:var(--ac);min-width:28px}
.xf-reveal__bar{height:12px;width:38%;border-radius:6px;background:var(--ln2)}
.xf-reveal__bar--short{width:22%;opacity:.6}
.xf-reveal__form{position:relative;padding:22px;border-top:1px solid var(--ln2);background:linear-gradient(180deg,transparent,var(--bg2) 18%)}
.xf-reveal__title{margin:0 0 6px;font-size:20px}
.xf-reveal__lead{margin:0 0 16px;color:var(--t2);font-size:14.5px}
.xf-reveal__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px}
.xf-reveal__grid label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--t2)}
.xf-reveal__grid input,.xf-reveal__grid select{height:44px;border-radius:10px;border:1px solid var(--ln2);background:var(--bg);color:var(--tx);padding:0 12px;font:inherit;font-size:15px}
.xf-reveal__check{display:flex;gap:10px;align-items:flex-start;margin:8px 0;font-size:13px;line-height:1.5;color:var(--t2)}
.xf-reveal__check input{margin-top:3px;flex:none;width:16px;height:16px;accent-color:var(--ac)}
.xf-reveal__opt{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--t3)}
.xf-reveal__btn{margin-top:10px;height:46px;width:100%;max-width:320px}
.xf-reveal__msg{min-height:1em;margin:10px 0 0;font-size:13.5px;color:var(--ac)}
.xf-reveal__fine{margin:6px 0 0;font-size:12px;color:var(--t3)}
.xf-reveal .xf-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.xf-reveal__open{animation:xfReveal .5s var(--ease) both}
@keyframes xfReveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.xf-reveal__open{animation:none}}
/* The sponsored label sits inside article paragraphs, whose text colour would otherwise wash it out. */
.body .xf-sponsored-label,.prose .xf-sponsored-label{color:#0b0b0c;background:var(--tx)}

/* "How we compiled this list" note on list articles */
.xf-method-note{margin:0 0 28px;padding:14px 18px;border:1px solid var(--ln2);border-left:3px solid var(--ac);border-radius:10px;background:var(--bg2);font-size:15px!important;line-height:1.6!important;color:var(--t2)}
