@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Akira Expanded;src:url(/fonts/AkiraExpanded-subset.woff2) format("woff2");font-weight:800;font-display:swap}.lb-root{--lb-ground: var(--ink-900);--lb-surface: var(--card);--lb-raised: var(--card-2);--lb-hair: var(--track);--lb-line: var(--card-border);--lb-line-2: var(--card-border-2);--lb-edge: #635f80;--lb-text: var(--d-text);--lb-dim: var(--d-sub);--lb-faint: var(--d-muted);--lb-accent: var(--violet);--lb-accent-soft: var(--violet-line);--lb-good: var(--good);--lb-needs: var(--warn);--lb-poor: var(--bad);--lb-display: var(--font-brand);--lb-body: var(--font-sans);--lb-mono: var(--font-mono);--lb-maxw: 73.75rem;background:var(--ink-900);color:var(--d-text);font-family:var(--font-sans);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}.lb-root ::selection{background:var(--lb-accent-soft);color:var(--lb-text)}.lb-wrap{max-width:73.75rem;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2rem)}.lb-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lb-mono{font-family:var(--lb-mono);font-variant-numeric:tabular-nums}.lb-root a:focus-visible,.lb-btn:focus-visible,.lb-unavail summary:focus-visible{outline:2px solid var(--lb-accent);outline-offset:2px;border-radius:4px}.lb-hero{padding:104px 0 34px}.lb-herogrid{display:grid;grid-template-columns:minmax(0,1fr);align-items:center}.lb-herofig{display:none}@media(min-width:921px){.lb-herogrid{grid-template-columns:minmax(0,1fr) minmax(340px,44%);gap:clamp(24px,4vw,64px)}.lb-herofig{display:block;width:100%;height:clamp(330px,32vw,460px);opacity:0;transition:opacity .9s ease}.lb-herofig.ready{opacity:1}}.lb-africa{display:block;width:100%;height:100%}.lb-h1{font-family:var(--lb-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.85rem,3.3vw,3rem);line-height:1.04;letter-spacing:-.005em;margin:0;max-width:18ch;text-wrap:balance}.lb-h1 em{font-style:normal;color:var(--lb-accent)}.lb-lede{margin:28px 0 0;max-width:54ch;color:var(--lb-dim);font-size:clamp(1rem,1.4vw,1.12rem);line-height:1.6}.lb-lede b{color:var(--lb-text);font-weight:500}.lb-cta{display:flex;gap:16px;align-items:center;margin-top:30px;flex-wrap:wrap}.lb-btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:8px;padding:12px 20px;font-size:15px;font-weight:500;font-family:var(--lb-body);cursor:pointer;transition:transform .16s,background .16s,color .16s;text-decoration:none}.lb-btn-primary{background:var(--lb-accent);color:#fff}.lb-btn-primary:hover{transform:translateY(-1px);background:#5b4fe0}.lb-btn-quiet{background:transparent;color:var(--lb-dim)}.lb-btn-quiet:hover{color:var(--lb-text)}.lb-summary{margin-top:38px;display:grid;grid-template-columns:repeat(4,1fr);gap:34px}.lb-summary .n{font-family:var(--lb-mono);font-weight:400;font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,3.2vw,2.4rem);letter-spacing:-.02em;line-height:1}.lb-summary .n em{font-style:normal;color:var(--lb-accent)}.lb-summary .k{margin-top:11px;font-size:13px;color:var(--lb-faint)}@media(max-width:720px){.lb-summary{grid-template-columns:1fr 1fr;gap:28px 30px;margin-top:44px}}.lb-controls{position:sticky;top:0;z-index:40;background:#0e0d0cdb;backdrop-filter:blur(14px);padding:14px 0}.lb-controls .inner{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}.lb-filters{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-end}.lb-field{display:flex;flex-direction:column;gap:8px}.lb-field>span{font-family:var(--lb-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--lb-faint)}.lb-select{color-scheme:dark;appearance:none;-webkit-appearance:none;background-color:var(--lb-surface);color:var(--lb-text);font-family:var(--lb-body);font-size:15px;font-weight:500;line-height:1.2;border:1px solid var(--lb-edge);border-radius:10px;padding:11px 42px 11px 15px;min-width:200px;cursor:pointer;transition:box-shadow .18s,border-color .18s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237e7a90' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center}.lb-select:hover{border-color:var(--lb-accent)}.lb-select:focus-visible{outline:none;border-color:var(--lb-accent);box-shadow:0 0 0 2px var(--lb-accent)}@media(max-width:760px){.lb-controls .inner{gap:14px}.lb-filters{width:100%;gap:12px}.lb-field{flex:1 1 44%}.lb-select{min-width:0;width:100%}}.lb-boards-wrap{padding:60px 0 8px}.lb-regsec+.lb-regsec{margin-top:104px}.lb-reghead{font-family:var(--lb-display);text-transform:uppercase;font-size:clamp(1.6rem,4vw,2.6rem);line-height:1;letter-spacing:.005em;margin:0 0 44px}.lb-boards{display:flex;flex-direction:column;gap:72px}.lb-bhead{position:sticky;top:var(--lb-shead-top, 160px);z-index:30;background:var(--lb-ground);display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:0;padding:10px 0 18px}.lb-sect{font-family:var(--lb-display);text-transform:uppercase;font-size:clamp(1.2rem,2.6vw,1.7rem);line-height:1;margin:0;letter-spacing:.005em}@media(min-width:761px){.lb-table thead{position:sticky;top:var(--lb-sthead-top, 187px);z-index:30}.lb-table thead th{background:var(--lb-ground)}}.lb-meta{margin:0;font-size:13px;color:var(--lb-faint)}.lb-table{width:100%;border-collapse:collapse}.lb-table thead th{text-align:left;font-weight:400;font-size:11.5px;color:var(--lb-faint);padding:0 6px 12px;font-family:var(--lb-body);white-space:nowrap}.lb-row td,.lb-row th{padding:14px 6px;vertical-align:middle;border:0}.lb-row{transition:background .16s}.lb-row:hover{background:#ffffff05}.lb-rank{width:44px;font-family:var(--lb-mono);font-variant-numeric:tabular-nums;font-size:15px;color:var(--lb-faint);text-align:center}.lb-lead .lb-rank{color:var(--lb-text)}.lb-site{font-weight:400}.lb-site{display:flex;align-items:center;gap:12px;min-width:0}.lb-fav{position:relative;width:30px;height:30px;flex:0 0 auto;border-radius:7px;background:var(--lb-raised);display:grid;place-items:center;overflow:hidden}.lb-fav:after{content:attr(data-letter);font-family:var(--lb-display);font-size:11px;color:var(--lb-dim)}.lb-fav img{position:absolute;inset:0;margin:auto;width:18px;height:18px}.lb-fav.failed img{display:none}.lb-dn{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-metric{text-align:left;font-family:var(--lb-mono);font-variant-numeric:tabular-nums;font-size:14px;color:var(--lb-text);width:92px}.lb-metric .lb-v{display:inline-flex;align-items:center;gap:7px;justify-content:flex-start}.lb-metric .lb-v:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lb-faint);flex:0 0 auto}.lb-metric.good .lb-v:before{background:var(--lb-good)}.lb-metric.needs .lb-v:before{background:var(--lb-needs)}.lb-metric.poor .lb-v:before{background:var(--lb-poor)}.lb-metric .lb-u{color:var(--lb-faint);font-size:10.5px}.lb-mlabel{display:none}.lb-cwv{width:96px;padding-top:14px;padding-bottom:14px}.lb-cwvbars{display:flex;gap:3px;align-items:center}.lb-cwv i{height:4px;border-radius:2px;background:var(--lb-line-2);flex:1;overflow:hidden;position:relative}.lb-cwv i.f:after{content:"";position:absolute;inset:0;background:var(--lb-good);opacity:.9;transform:scaleX(0);transform-origin:left;transition:transform .5s ease}.lb-cwv i.f{--fill: 1}.lb-board.in .lb-cwv i.f:after,.lb-cwv.in i.f:after{transform:scaleX(1)}.lb-status{width:56px;text-align:left;font-family:var(--lb-mono);font-size:12.5px}.lb-metric--data .lb-v:before{display:none}.lb-hinfo{display:inline-grid;place-content:center;width:14px;height:14px;margin-left:5px;border-radius:50%;border:1px solid var(--lb-line-2);color:var(--lb-faint);font-family:var(--lb-mono);font-size:9px;font-style:normal;line-height:1;cursor:help;vertical-align:middle;transition:color .2s ease,border-color .2s ease}.lb-hinfo:hover,.lb-hinfo:focus-visible{color:var(--lb-accent);border-color:var(--lb-accent)}.lb-pass{color:var(--lb-good)}.lb-frac{color:var(--lb-faint)}.lb-unavail{margin-top:18px}.lb-unavail summary{cursor:pointer;color:var(--lb-faint);font-size:13px;list-style:none;display:inline-flex;align-items:center;gap:8px}.lb-unavail summary::-webkit-details-marker{display:none}.lb-unavail summary:before{content:"+";color:var(--lb-faint)}.lb-unavail[open] summary:before{content:"–"}.lb-ulist{margin-top:12px;display:flex;flex-wrap:wrap;gap:7px}.lb-ulist span{font-family:var(--lb-mono);font-size:12px;color:var(--lb-dim);background:var(--lb-surface);border:1px solid var(--lb-line-2);padding:5px 10px;border-radius:5px}.lb-row{opacity:1}.lb-anim .lb-row{opacity:0;transform:translateY(6px)}.lb-anim .lb-board.in .lb-row{animation:lb-rowin .5s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(var(--i) * 38ms)}@keyframes lb-rowin{to{opacity:1;transform:none}}@media(max-width:760px){.lb-table,.lb-table tbody,.lb-table tr{display:block;width:100%}.lb-table thead{display:none}.lb-table .lb-row{display:grid;grid-template-columns:1.75rem minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);grid-template-areas:"rank site site site" ".    lcp  inp  data";column-gap:.75rem;row-gap:1.15rem;padding:1.4rem .15rem;align-items:center}.lb-row td,.lb-row th{padding:0}.lb-rank{grid-area:rank;align-self:center;text-align:left;font-size:.94rem}.lb-site{grid-area:site;align-self:center}.lb-dn{font-size:1rem}.lb-status,.lb-cwv{display:none}.lb-metric{width:auto;text-align:left;display:flex;flex-direction:column;gap:.44rem}.lb-metric--lcp{grid-area:lcp}.lb-metric--inp{grid-area:inp}.lb-metric--data{grid-area:data}.lb-metric .lb-v{justify-content:flex-start;font-size:1rem}.lb-mlabel{display:block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--lb-faint)}.lb-unavail{padding:0 4px}.lb-bhead{padding:8px 4px 16px}}.lb-method{padding:64px 0}.lb-method .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:52px;align-items:start}.lb-method h2{font-family:var(--lb-display);text-transform:uppercase;font-size:clamp(1.4rem,2.9vw,1.95rem);line-height:1;margin:0;max-width:12ch}.lb-method .intro{margin-top:16px;color:var(--lb-dim);font-size:15px;max-width:34ch}.lb-mrow{display:grid;grid-template-columns:130px 1fr;gap:24px;padding:16px 0}.lb-mrow dt{font-size:14px;color:var(--lb-faint);padding-top:1px;margin:0}.lb-mrow dd{margin:0;color:var(--lb-dim);font-size:15px;line-height:1.6}.lb-mrow dd b{color:var(--lb-text);font-weight:500}@media(max-width:760px){.lb-method .grid{grid-template-columns:1fr;gap:26px}.lb-mrow{grid-template-columns:1fr;gap:5px;padding:12px 0}}.lb-capture{margin:.875rem 0 4.75rem;background:var(--lb-surface);border:1px solid var(--lb-edge);border-radius:1.125rem;padding:clamp(1.75rem,5vw,3rem) clamp(1.5rem,4.5vw,2.75rem)}.lb-capture .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.75rem,4vw,3rem);align-items:center}.lb-capture h2{font-family:var(--lb-display);text-transform:uppercase;font-size:clamp(1.5rem,3.2vw,2.2rem);line-height:1;margin:0;max-width:15ch}.lb-capture p{color:var(--lb-dim);margin:.94rem 0 0;font-size:.94rem;max-width:40ch}.lb-form .field{display:flex;gap:.625rem}.lb-form input{flex:1;min-width:0;background:var(--lb-ground);border:1px solid var(--lb-edge);border-radius:.625rem;padding:.94rem 1rem;color:var(--lb-text);font-family:var(--lb-body);font-size:.94rem}.lb-form input::placeholder{color:var(--lb-faint)}.lb-form input:focus{outline:none;border-color:var(--lb-accent);box-shadow:0 0 0 2px var(--lb-accent)}.lb-form .field button{flex:0 0 auto}.lb-consent{display:flex;gap:.625rem;align-items:flex-start;margin-top:.94rem;font-size:.78rem;color:var(--lb-faint);line-height:1.5}.lb-consent input{flex:0 0 auto;width:.94rem;height:.94rem;margin:.13rem 0 0;accent-color:var(--lb-accent)}.lb-formmsg{margin-top:.75rem;font-size:.81rem;min-height:1.2em}.lb-formmsg.ok{color:var(--lb-good)}.lb-formmsg.err{color:var(--lb-poor)}@media(max-width:760px){.lb-capture .grid{grid-template-columns:1fr;gap:1.75rem}.lb-form .field{flex-direction:column}.lb-form .field button{width:100%}}#subscribe{scroll-margin-top:5.5rem}.lb-fineprint{padding:0 0 60px;color:var(--lb-faint);font-size:12.5px;line-height:1.7;max-width:none}.lb-fineprint b{color:var(--lb-dim);font-weight:500}.lb-fineprint a{color:var(--lb-dim);border-bottom:1px solid var(--lb-hair)}.lb-fineprint a:hover{color:var(--lb-text)}.lb-spot{padding:66px 0 20px}.lb-spoth2{font-family:var(--lb-display);text-transform:uppercase;font-size:clamp(1.9rem,4.3vw,3rem);line-height:.98;letter-spacing:-.005em;margin:0;max-width:18ch}.lb-spotsay{margin:18px 0 0;max-width:60ch;color:var(--lb-dim);font-size:clamp(1rem,1.35vw,1.08rem)}.lb-spotsay b{color:var(--lb-text);font-weight:500}.lb-spotcard{margin-top:26px;background:var(--lb-surface);border:1px solid var(--lb-edge);border-radius:18px;padding:28px 34px 30px}.lb-spotcard+.lb-spotcard{margin-top:16px}.lb-spotname{display:flex;align-items:center;gap:.8rem;margin-bottom:1.5rem;min-width:0}.lb-spotname .lb-fav{width:2.375rem;height:2.375rem;border-radius:.625rem;flex:0 0 auto}.lb-spotname .lb-fav:after{font-size:.94rem}.lb-spotname .lb-fav img{width:22px;height:22px}.lb-spotname .dn{font-family:var(--lb-display);text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(.9rem,4.4vw,1.25rem);line-height:1.1;min-width:0;overflow-wrap:anywhere}.lb-spotinstruments{display:flex;flex-wrap:wrap;align-items:flex-start;gap:30px 44px}.lb-inst{display:flex;flex-direction:column;align-items:center;text-align:center}.lb-inst>:first-child{min-height:92px;display:flex;align-items:center;justify-content:center}.lb-instcap{margin-top:12px;font-size:13px;color:var(--lb-text);white-space:nowrap}.lb-instcap span{display:block;color:var(--lb-faint);font-size:11.5px;margin-top:3px;font-weight:400}.lb-ring{position:relative;width:92px;height:92px}.lb-ring .trk{stroke:var(--lb-hair)}.lb-ring .val{position:absolute;inset:0;display:grid;place-content:center}.lb-ring .val .big{font-family:var(--lb-mono);font-size:24px;font-variant-numeric:tabular-nums;color:var(--lb-text)}.lb-a11y{display:flex;gap:20px}.lb-a11y>div{text-align:center}.lb-a11y .num{font-family:var(--lb-mono);font-size:23px;font-variant-numeric:tabular-nums;line-height:1;color:var(--lb-text)}.lb-a11y .lv{font-size:10.5px;color:var(--lb-faint);margin-top:7px;text-transform:uppercase;letter-spacing:.04em}.lb-a11y .crit .num{color:var(--lb-poor)}.lb-a11y .ser .num{color:var(--lb-needs)}.lb-pw{font-family:var(--lb-mono);font-size:26px;color:var(--lb-text);line-height:1}@media(max-width:820px){.lb-spotcard{padding:24px}.lb-spotinstruments{gap:24px 30px;justify-content:space-between}}.lb-spothero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(1.75rem,4vw,3rem);align-items:center}.lb-spothero-body{min-width:0}.lb-spothero .lb-spotname{margin-bottom:1.15rem}.lb-rankpill{flex:0 0 auto;font-family:var(--lb-mono);font-size:.72rem;font-weight:600;color:var(--lb-accent);background:var(--lb-accent-soft);padding:.18rem .5rem;border-radius:999px;letter-spacing:.02em}.lb-spothero .lb-spotinstruments{gap:26px 40px}.lb-spothero-hl{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:.7rem}.lb-spothero-hl li{position:relative;padding-left:1.1rem;color:var(--lb-dim);font-size:clamp(.9rem,1.2vw,.98rem);line-height:1.5;max-width:62ch}.lb-spothero-hl li:before{content:"";position:absolute;left:0;top:.6em;width:.42rem;height:.42rem;border-radius:999px;background:var(--lb-accent)}.lb-spothero-hl b{color:var(--lb-text);font-weight:600;font-variant-numeric:tabular-nums}.lb-phone-note{margin:1.25rem 0 0;color:var(--lb-faint);font-size:.78rem;line-height:1.5;max-width:52ch}.lb-phone{flex:0 0 auto;width:min(13.5rem,62vw);margin:0 auto}.lb-phone-shell{position:relative;border-radius:2rem;background:#05050a;padding:.5rem;box-shadow:0 18px 50px #00000080,0 0 0 1px var(--lb-edge)}.lb-phone-notch{position:absolute;left:50%;top:.55rem;transform:translate(-50%);width:34%;height:.85rem;border-radius:999px;background:#05050a;z-index:2}.lb-phone-screen{position:relative;border-radius:1.55rem;overflow:hidden;background:#fff;aspect-ratio:9 / 19.5}.lb-phone-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;display:block;opacity:0;transition:opacity .25s ease}.lb-phone.loaded .lb-phone-frame{opacity:1}.lb-phone-screen{background:linear-gradient(180deg,#fff,#eef0f4)}.lb-phone-screen:after{content:"▶";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;pointer-events:none;width:2.6rem;height:2.6rem;display:grid;place-content:center;border-radius:999px;background:#0b0a1180;color:#fff;font-size:.9rem;padding-left:3px;transition:opacity .35s ease}.lb-phone.loaded .lb-phone-screen:after{opacity:0}.lb-phone-time{position:absolute;right:.5rem;bottom:.5rem;z-index:2;font-family:var(--lb-mono);font-size:.68rem;font-variant-numeric:tabular-nums;color:#fff;background:#00000094;padding:.1rem .34rem;border-radius:.34rem}.lb-phone-ctrl{display:flex;align-items:center;gap:.6rem;margin-top:.85rem}.lb-phone-play{position:relative;flex:0 0 auto;width:2rem;height:2rem;display:grid;place-content:center;border-radius:999px;border:1px solid var(--lb-edge);background:var(--lb-surface);color:var(--lb-text);cursor:pointer;transition:border-color .2s ease,color .2s ease}.lb-phone-play:before{content:"";position:absolute;inset:-7px;border-radius:999px}.lb-phone-play:hover{border-color:var(--lb-accent);color:var(--lb-accent)}.lb-phone-play svg{display:block}.lb-phone-play .i-pause,.lb-phone.playing .lb-phone-play .i-play{display:none}.lb-phone.playing .lb-phone-play .i-pause{display:block}.lb-phone-track{flex:1 1 auto;height:3px;border-radius:999px;background:var(--lb-hair);overflow:hidden}.lb-phone-fill{height:100%;width:0;background:var(--lb-accent);border-radius:999px}@media(max-width:720px){.lb-spothero{grid-template-columns:1fr;gap:1.5rem;justify-items:center}.lb-spothero-body{width:100%}.lb-spothero .lb-spotinstruments{justify-content:center;gap:24px 20px}}.lb-controls{top:64px}@media(prefers-reduced-motion:reduce){.lb-root *{animation:none!important;transition:none!important}.lb-anim .lb-row{opacity:1;transform:none}.lb-cwv i.f:after{transform:scaleX(1)}}
