:root
{
    --bg:#0d1a14;
    --bg2:#122419;
    --surface:#17301f;
    --surface2:#204129;
    --line:#31603c;
    --ink:#f0f8ef;
    --ink2:#bcd6bf;
    --ink3:#95b39b;
    --accent:#ff9f1c;
    --accent-lt:#ffc46b;
    --accent-dk:#b86a00;
    --sky:#3fb7f0;
    --sky-dk:#17698f;
    --grass:#7ac74f;
    --dirt:#b57a42;
    --dirt-dk:#7d5228;
    --stone:#9fb6a4;
    --diamond:#7ee0ff;
    --emerald:#5ddc7a;
    --tnt:#ef4f34;
    --tnt-ink:#ff8a72;
    --on-accent:#151f2b;
    --bw:3px;
    --r:6px;
    --r-lg:10px;
    --sh-block:0 7px 0 -1px rgba(0,0,0,.5);
    --h1-max:46px;
    --h2-max:29px;
    --h1-measure:none;
    --font-display:"Alfa Slab One","Trebuchet MS",Impact,sans-serif;
    --font-ui:"Oswald",ui-monospace,"SFMono-Regular",Menlo,monospace;
    --font-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

html
{
    color-scheme:dark;
}

*,*::before,*::after
{
    box-sizing:border-box;
}

html
{
    -webkit-text-size-adjust:100%;
    scroll-behavior:smooth;
    scroll-padding-top:84px;
}

body,h1,h2,h3,h4,p,ul,ol,figure,dl,dd
{
    margin:0;
}

ul,ol
{
    padding:0;
    list-style:none;
}

img,svg,video
{
    display:block;
    max-width:100%;
}

img
{
    height:auto;
}

button,input,select,textarea
{
    font:inherit;
    color:inherit;
}

a
{
    color:inherit;
}

table
{
    border-collapse:collapse;
}

body
{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.68;
    font-weight:400;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    background-image:     radial-gradient(900px 420px at 88% -8%, color-mix(in srgb, var(--sky) 15%, transparent), transparent 70%),     radial-gradient(760px 380px at 4% 2%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 72%);
    background-repeat:no-repeat;
}

::selection
{
    background:var(--accent);
    color:var(--on-accent);
}

.bbb-jump
{
    position:absolute;
    left:-9999px;
    top:0;
    z-index:200;
    background:var(--accent);
    color:var(--on-accent);
    padding:12px 20px;
    font-family:var(--font-ui);
    font-size:13px;
    letter-spacing:.05em;
}

.bbb-jump:focus
{
    left:12px;
    top:12px;
}

:where(a,button,summary,[tabindex]):focus-visible
{
    outline:3px solid var(--diamond);
    outline-offset:3px;
    border-radius:2px;
}

/* ---------- layout ---------- */ .bbb-shore
{
    width:min(100% - 32px, 1240px);
    margin-inline:auto;
}

.bbb-shore-narrow
{
    width:min(100% - 32px, 980px);
    margin-inline:auto;
}

main
{
    display:block;
}

/* ---------- pixel primitives ---------- */ .bbb-cutline
{
    height:26px;
    width:100%;
    position:relative;
    background:     linear-gradient(var(--grass) 0 9px, transparent 9px),     repeating-linear-gradient(90deg,var(--dirt) 0 12px,var(--dirt-dk) 12px 24px);
    border-top:3px solid color-mix(in srgb, var(--grass) 70%, #000);
    image-rendering:pixelated;
}

.bbb-cutline::after
{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:9px;
    height:4px;
    background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--grass) 65%,#000) 0 6px,transparent 6px 12px);
}

.bbb-cutline--line
{
    height:34px;
    background:none;
    border-top:0;
    position:relative;
    display:grid;
    place-items:center;
}

.bbb-cutline--line::before
{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:50%;
    height:2px;
    background:repeating-linear-gradient(90deg,var(--line) 0 14px,transparent 14px 22px);
}

.bbb-gicu
{
    position:relative;
    width:16px;
    height:16px;
    border:3px solid var(--accent);
    border-radius:50%;
    background:var(--bg);
}

.bbb-cutline--wave
{
    height:auto;
    background:none;
    border-top:0;
    line-height:0;
}

.bbb-cutline--wave::after
{
    content:none;
}

.bbb-cutline--wave svg
{
    width:100%;
    height:52px;
    display:block;
}

.bbb-tate
{
    fill:var(--surface);
}

.bbb-newe
{
    fill:none;
    stroke:var(--sky);
    stroke-width:3;
    vector-effect:non-scaling-stroke;
    opacity:.85;
}

/* ---------- buttons ---------- */ .bbb-hook
{
    border-radius:var(--r);
    --btn-bg:var(--accent);
    --btn-ink:var(--on-accent);
    --btn-edge:var(--accent-dk);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    font-family:var(--font-ui);
    font-weight:400;
    font-size:13.5px;
    letter-spacing:.045em;
    line-height:1.15;
    padding:16px 26px 17px;
    text-decoration:none;
    cursor:pointer;
    background:var(--btn-bg);
    color:var(--btn-ink);
    border:0;
    border-bottom:5px solid var(--btn-edge);
    box-shadow:inset 0 3px 0 rgba(255,255,255,.32), inset 0 -3px 0 rgba(0,0,0,.12);
    transition:transform .12s ease, filter .12s ease;
    text-align:center;
}

.bbb-hook:hover
{
    filter:brightness(1.08);
}

.bbb-hook:active
{
    transform:translateY(3px);
    border-bottom-width:2px;
}

.bbb-hook svg
{
    width:19px;
    height:19px;
    flex:none;
}

.bbb-hook--ghost
{
    --btn-bg:transparent;
    --btn-ink:var(--ink);
    --btn-edge:transparent;
    border:var(--bw) solid var(--line);
    box-shadow:none;
    padding:13px 22px;
}

.bbb-hook--ghost:hover
{
    border-color:var(--accent);
    color:var(--accent);
    filter:none;
}

.bbb-hook--ghost:active
{
    transform:translateY(2px);
}

.bbb-hook--sm
{
    font-size:11.5px;
    padding:12px 16px 13px;
    border-bottom-width:4px;
}

.bbb-hook--wide
{
    width:100%;
}

/* ---------- header ---------- */ .bbb-masthead
{
    position:sticky;
    top:0;
    z-index:90;
    background:color-mix(in srgb, var(--bg2) 92%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:var(--bw) solid var(--line);
}

.bbb-masthead-bar
{
    display:flex;
    align-items:center;
    gap:18px;
    min-height:70px;
}

.bbb-sign
{
    display:flex;
    align-items:center;
    gap:11px;
    text-decoration:none;
    flex:0 1 auto;
    min-width:0;
}

.bbb-sign-glyph
{
    width:38px;
    height:38px;
    flex:none;
    image-rendering:pixelated;
}

.bbb-sign-word
{
    font-family:var(--font-display);
    font-size:clamp(17px,4.8vw,26px);
    color:var(--accent);
    letter-spacing:.005em;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.bbb-routes
{
    margin-left:auto;
    display:none;
}

.bbb-routes ul
{
    display:flex;
    align-items:center;
    gap:2px;
}

.bbb-routes a
{
    display:block;
    padding:9px 11px;
    text-decoration:none;
    font-size:14px;
    font-weight:500;
    color:var(--ink2);
    border-bottom:3px solid transparent;
    transition:color .15s,border-color .15s;
    white-space:nowrap;
}

.bbb-routes a:hover
{
    color:var(--ink);
}

.bbb-routes a[aria-current="page"]
{
    color:var(--accent);
    border-bottom-color:var(--accent);
}

.bbb-masthead-cta
{
    display:none;
    flex:none;
}

.bbb-latch
{
    border-radius:var(--r);
    margin-left:auto;
    width:46px;
    height:42px;
    background:var(--surface);
    border:var(--bw) solid var(--line);
    display:grid;
    place-items:center;
    cursor:pointer;
    padding:0;
}

.bbb-latch span
{
    display:block;
    width:20px;
    height:3px;
    background:var(--ink);
    box-shadow:0 -7px 0 var(--ink),0 7px 0 var(--ink);
    transition:.2s;
}

.bbb-latch[aria-expanded="true"] span
{
    background:transparent;
    box-shadow:0 0 0 transparent;
}

.bbb-latch[aria-expanded="true"]::before,.bbb-latch[aria-expanded="true"]::after
{
    content:"";
    position:absolute;
    width:22px;
    height:3px;
    background:var(--accent);
}

.bbb-latch[aria-expanded="true"]::before
{
    transform:rotate(45deg);
}

.bbb-latch[aria-expanded="true"]::after
{
    transform:rotate(-45deg);
}

.bbb-latch
{
    position:relative;
}

.bbb-tacklebox
{
    border-top:var(--bw) solid var(--line);
    background:var(--bg2);
}

.bbb-tacklebox[hidden]
{
    display:none;
}

.bbb-tacklebox ul
{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
}

.bbb-tacklebox li:last-child:nth-child(odd)
{
    grid-column:1 / -1;
}

.bbb-tacklebox nav a
{
    display:block;
    padding:14px 12px;
    text-decoration:none;
    font-size:14.5px;
    font-weight:500;
    color:var(--ink2);
    border-bottom:1px solid var(--line);
    border-right:1px solid var(--line);
}

.bbb-tacklebox li:last-child:nth-child(odd) a
{
    border-right:0;
}

.bbb-tacklebox nav a[aria-current="page"]
{
    color:var(--accent);
}

.bbb-tacklebox-cta
{
    padding:16px;
}

/* ---------- hero ---------- */ .bbb-swim
{
    position:relative;
    overflow:hidden;
    border-bottom:var(--bw) solid var(--line);
}

.bbb-swim::before
{
    content:"";
    position:absolute;
    inset:0;
    background:     linear-gradient(180deg, color-mix(in srgb,var(--sky) 22%,transparent) 0%, transparent 45%),     repeating-linear-gradient(90deg, color-mix(in srgb,var(--line) 45%,transparent) 0 1px, transparent 1px 44px),     repeating-linear-gradient(0deg, color-mix(in srgb,var(--line) 45%,transparent) 0 1px, transparent 1px 44px);
    opacity:.5;
    pointer-events:none;
}

.bbb-swim-bar
{
    position:relative;
    display:grid;
    gap:30px;
    padding:38px 0 44px;
}

.bbb-swim-copy
{
    min-width:0;
}

.bbb-cuda
{
    min-width:0;
}

.bbb-cuda .bbb-swim-cta
{
    margin-top:0;
}

.bbb-swim-bar--art-wide .bbb-swim-art img
{
    width:100%;
}

.bbb-swim-bar--art-wide .bbb-swim-deal
{
    right:auto;
    left:0;
}

/* The wide band centres its copy; the art is capped near its intrinsic width so    a small source asset is never upscaled into mush. */ .bbb-swim-bar--art-wide .bbb-swim-art
{
    max-width:var(--hero-art-max,820px);
    margin-inline:auto;
    width:100%;
}

.bbb-swim h1
{
    font-family:var(--font-display);
    font-weight:400;
    font-size:clamp(32px,6.4vw,var(--h1-max));
    line-height:1.04;
    letter-spacing:.002em;
    margin:16px 0 0;
    text-wrap:balance;
}

.bbb-swim h1
{
    max-width:var(--h1-measure,none);
}

.bbb-swim h1 .bbb-accentword
{
    color:var(--accent);
}

.bbb-swim-intro
{
    margin-top:16px;
    font-size:clamp(16px,2.3vw,18.5px);
    color:var(--ink2);
    max-width:56ch;
}

.bbb-swim-cta
{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:26px;
}

.bbb-swim-small
{
    margin-top:14px;
    font-size:12.5px;
    color:var(--ink3);
    display:flex;
    align-items:flex-start;
    gap:7px;
}

.bbb-swim-small svg
{
    width:14px;
    height:14px;
    flex:none;
    margin-top:3px;
}

.bbb-swim-art
{
    position:relative;
}

.bbb-swim-art .bbb-mount
{
    border-radius:var(--r-lg);
    overflow:hidden;
    border:var(--bw) solid var(--line);
    background:var(--bg2);
    box-shadow:var(--sh-block);
    position:relative;
    overflow:hidden;
}

.bbb-swim-art img
{
    width:100%;
    image-rendering:pixelated;
}

.bbb-swim-art--portrait .bbb-mount
{
    display:grid;
    place-items:center;
    padding:20px;
    background:var(--bg2);
}

.bbb-swim-art--portrait img
{
    width:auto;
    max-width:100%;
    max-height:min(58vh,430px);
}

.bbb-swim-art .bbb-mount::after
{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(180deg,transparent 62%, color-mix(in srgb,var(--bg) 78%,transparent));
}

.bbb-swim-deal
{
    border-radius:var(--r);
    position:absolute;
    right:-6px;
    bottom:-14px;
    z-index:2;
    background:var(--accent);
    color:var(--on-accent);
    border-bottom:5px solid var(--accent-dk);
    padding:11px 15px 12px;
    font-family:var(--font-display);
    line-height:1.05;
    box-shadow:var(--sh-block);
}

.bbb-swim-deal b
{
    display:block;
    font-size:27px;
    font-weight:400;
    line-height:1;
}

.bbb-swim-deal span
{
    display:block;
    font-family:var(--font-ui);
    font-size:9px;
    letter-spacing:.1em;
    text-transform:uppercase;
    opacity:.85;
    margin-top:6px;
}

.bbb-swim-deal.bbb-swim-deal--bottom-left
{
    right:auto;
    left:-6px;
}

.bbb-swim-deal.bbb-swim-deal--top-left
{
    right:auto;
    bottom:auto;
    left:-6px;
    top:-14px;
}

.bbb-swim-deal.bbb-swim-deal--top-right
{
    bottom:auto;
    top:-14px;
}

/* ---------- fact strip ---------- */ .bbb-stats
{
    background:var(--bg2);
    border-bottom:var(--bw) solid var(--line);
}

.bbb-stats--strip .bbb-stats-grid
{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:0;
    border-left:1px solid var(--line);
    border-right:1px solid var(--line);
}

.bbb-stats-row
{
    padding:20px 16px;
    border-bottom:1px solid var(--line);
    border-right:1px solid var(--line);
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
}

.bbb-stats--strip .bbb-stats-row:nth-child(2n)
{
    border-right:0;
}

.bbb-stats-glyph
{
    border-radius:var(--r);
    width:42px;
    height:42px;
    flex:none;
    display:grid;
    place-items:center;
    border:max(2px, calc(var(--bw) - 1px)) solid var(--line);
    background:var(--surface);
}

.bbb-stats-glyph svg
{
    width:22px;
    height:22px;
}

.bbb-stats-body
{
    min-width:0;
}

.bbb-stats-term
{
    display:block;
    font-family:var(--font-ui);
    font-size:9.5px;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--ink3);
}

.bbb-stats-figure
{
    display:block;
    font-family:var(--font-display);
    font-size:24px;
    color:var(--ink);
    line-height:1.15;
    margin-top:6px;
    overflow-wrap:break-word;
    hyphens:auto;
}

.bbb-stats-figure.bbb-hue-amber
{
    color:var(--accent);
}

.bbb-stats-figure.bbb-hue-water
{
    color:var(--diamond);
}

.bbb-stats-figure.bbb-hue-reed
{
    color:var(--emerald);
}

.bbb-stats--cards
{
    background:transparent;
    border-bottom:0;
    padding:26px 0 4px;
}

.bbb-stats--cards .bbb-stats-grid
{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
    border:0;
}

.bbb-stats--cards .bbb-stats-row
{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    padding:16px 15px;
    border:var(--bw) solid var(--line);
    border-radius:var(--r-lg);
    background:var(--surface);
    box-shadow:var(--sh-block);
}

.bbb-stats--cards .bbb-stats-row .bbb-stats-term,.bbb-stats--cards .bbb-stats-row .bbb-stats-figure
{
    display:block;
}

.bbb-stats--cards .bbb-stats-figure
{
    margin-top:2px;
}

.bbb-stats--list
{
    background:var(--bg2);
    border-bottom:var(--bw) solid var(--line);
    padding:6px 0;
}

.bbb-stats--list .bbb-stats-grid
{
    display:grid;
    grid-template-columns:1fr;
    gap:0 34px;
    border:0;
}

.bbb-stats--list .bbb-stats-row
{
    display:grid;
    grid-template-columns:34px 1fr auto;
    align-items:center;
    gap:12px;
    padding:13px 2px;
    border:0;
    border-bottom:1px dashed var(--line);
}

.bbb-stats--list .bbb-stats-row:last-child
{
    border-bottom:0;
}

@media (min-width:760px)
{
    .bbb-stats--list .bbb-stats-grid
    {
        grid-template-columns:1fr 1fr;
    }
    .bbb-stats--list .bbb-stats-row:nth-last-child(2)
    {
        border-bottom:0;
    }
}

.bbb-stats--list .bbb-stats-glyph
{
    width:34px;
    height:34px;
    border:0;
    background:transparent;
    color:var(--accent);
}

.bbb-stats--list .bbb-stats-glyph svg
{
    width:20px;
    height:20px;
}

.bbb-stats--list .bbb-stats-term
{
    font-family:var(--font-ui);
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--ink3);
}

.bbb-stats--list .bbb-stats-figure
{
    margin:0;
    font-family:var(--font-display);
    font-size:19px;
    color:var(--ink);
    text-align:right;
    line-height:1.2;
}

/* ---------- page shell ---------- */ .bbb-body
{
    display:grid;
    gap:34px;
    padding:38px 0 56px;
    align-items:start;
}

/* Long compounds (Finnish, German, Dutch) blow past a 320px column otherwise.    `hyphens` needs the document language, which the head already declares. */ .bbb-swim h1,.bbb-copy h2,.bbb-copy h3,.bbb-asked-q,.bbb-index-items a,.bbb-vazi
{
    overflow-wrap:break-word;
    hyphens:auto;
}

/* ---------- prose ---------- */ .bbb-copy
{
    min-width:0;
    font-size:16.5px;
}

.bbb-copy > * + *
{
    margin-top:19px;
}

.bbb-copy h2
{
    font-family:var(--font-display);
    font-weight:400;
    font-size:clamp(25px,3.7vw,var(--h2-max));
    line-height:1.16;
    letter-spacing:.004em;
    margin-top:52px;
    padding-top:4px;
    position:relative;
    padding-left:26px;
    text-wrap:balance;
    scroll-margin-top:90px;
}

.bbb-copy h2::before
{
    content:"";
    position:absolute;
    left:0;
    top:.42em;
    width:14px;
    height:14px;
    background:var(--accent);
    box-shadow:0 -8px 0 -3px var(--sky), 0 8px 0 -3px var(--emerald);
}

.bbb-copy h3
{
    font-family:var(--font-body);
    font-weight:700;
    font-size:clamp(18px,2.6vw,21px);
    line-height:1.32;
    margin-top:34px;
    color:var(--ink);
    text-wrap:balance;
    scroll-margin-top:90px;
}

.bbb-copy h2 + h3, .bbb-copy h2 + p, .bbb-copy h2 + ul, .bbb-copy h2 + ol, .bbb-copy h2 + .bbb-sheet
{
    border-radius:var(--r-lg);
    margin-top:17px;
}

.bbb-copy p
{
    color:var(--ink2);
}

.bbb-copy strong
{
    color:var(--ink);
    font-weight:600;
}

.bbb-copy .bbb-highlightline
{
    font-size:17px;
    color:var(--ink);
    font-weight:600;
    border-left:4px solid var(--accent);
    padding-left:14px;
}

.bbb-copy ul
{
    display:grid;
    gap:11px;
}

.bbb-copy ul > li
{
    position:relative;
    padding-left:29px;
    color:var(--ink2);
}

.bbb-copy ul > li::before
{
    content:"";
    position:absolute;
    left:2px;
    top:.56em;
    width:11px;
    height:11px;
    background:var(--sky);
    box-shadow:inset 0 2px 0 rgba(255,255,255,.35);
}

.bbb-copy ul > li > ul
{
    margin-top:10px;
}

.bbb-copy ul > li > ul > li::before
{
    background:var(--stone);
}

.bbb-copy li p
{
    margin-top:8px;
}

.bbb-copy ol
{
    counter-reset:step;
    display:grid;
    gap:15px;
}

.bbb-copy ol > li
{
    position:relative;
    padding-left:48px;
    counter-increment:step;
    color:var(--ink2);
}

.bbb-copy ol > li::before
{
    content:counter(step);
    position:absolute;
    left:0;
    top:0;
    width:33px;
    height:33px;
    display:grid;
    place-items:center;
    font-family:var(--font-ui);
    font-size:13px;
    background:var(--surface2);
    color:var(--accent);
    border:max(2px, calc(var(--bw) - 1px)) solid var(--line);
}

.bbb-copy ol > li > ul
{
    margin-top:11px;
}

.bbb-sheet
{
    overflow-x:auto;
    border:var(--bw) solid var(--line);
    background:var(--surface);
    box-shadow:var(--sh-block);
    -webkit-overflow-scrolling:touch;
    background-image:     linear-gradient(to right, var(--surface), color-mix(in srgb, var(--surface) 0%, transparent)),     linear-gradient(to left, var(--surface), color-mix(in srgb, var(--surface) 0%, transparent)),     linear-gradient(to right, rgba(0,0,0,.42), rgba(0,0,0,0)),     linear-gradient(to left, rgba(0,0,0,.42), rgba(0,0,0,0));
    background-position:0 0, 100% 0, 0 0, 100% 0;
    background-repeat:no-repeat;
    background-size:26px 100%, 26px 100%, 14px 100%, 14px 100%;
    background-attachment:local, local, scroll, scroll;
}

.bbb-sheet table
{
    width:100%;
    min-width:520px;
    font-size:15px;
}

.bbb-sheet th,.bbb-sheet td
{
    padding:12px 15px;
    text-align:left;
    border-bottom:1px solid var(--line);
    vertical-align:top;
}

.bbb-sheet thead th
{
    background:var(--surface2);
    color:var(--ink);
    font-family:var(--font-ui);
    font-size:10.5px;
    letter-spacing:.09em;
    text-transform:uppercase;
    border-bottom:var(--bw) solid var(--line);
    position:sticky;
    top:0;
    white-space:nowrap;
}

.bbb-sheet tbody tr:last-child td
{
    border-bottom:0;
}

.bbb-sheet tbody tr:nth-child(even)
{
    background:color-mix(in srgb,var(--surface2) 45%,transparent);
}

.bbb-sheet td
{
    color:var(--ink2);
}

.bbb-sheet td:first-child
{
    color:var(--ink);
    font-weight:500;
}

.bbb-sheet td strong
{
    color:var(--accent);
    font-weight:600;
}

.bbb-sheet-note
{
    display:none;
    align-items:center;
    gap:6px;
    margin-top:8px;
    font-size:12px;
    color:var(--ink3);
}

html:not(.bbb-scripted) .bbb-sheet-note
{
    display:flex;
}

.bbb-sheet.bbb-pans + .bbb-sheet-note
{
    display:flex;
}

.bbb-sheet-note svg
{
    width:13px;
    height:13px;
}

/* ---------- faq ---------- */ .bbb-asked
{
    display:grid;
    gap:10px;
    margin-top:20px;
}

.bbb-asked-row
{
    border-radius:var(--r);
    border:var(--bw) solid var(--line);
    background:var(--surface);
}

.bbb-asked-q
{
    margin:0;
    font-family:var(--font-body);
    font-size:16.5px;
    font-weight:600;
    line-height:1.45;
}

.bbb-asked-switch
{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    background:none;
    border:0;
    padding:16px 17px;
    text-align:left;
    cursor:pointer;
    color:var(--ink);
    font:inherit;
}

.bbb-asked-switch:hover
{
    color:var(--accent);
}

.bbb-asked-glyph
{
    width:26px;
    height:26px;
    flex:none;
    position:relative;
    border:max(2px, calc(var(--bw) - 1px)) solid var(--line);
    background:var(--surface2);
    transition:.18s;
}

.bbb-asked-glyph::before,.bbb-asked-glyph::after
{
    content:"";
    position:absolute;
    background:var(--accent);
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
}

.bbb-asked-glyph::before
{
    width:11px;
    height:3px;
}

.bbb-asked-glyph::after
{
    width:3px;
    height:11px;
    transition:opacity .18s;
}

.bbb-asked-switch[aria-expanded="true"] .bbb-asked-glyph
{
    background:var(--accent);
    border-color:var(--accent);
}

.bbb-asked-switch[aria-expanded="true"] .bbb-asked-glyph::before
{
    background:var(--on-accent);
}

.bbb-asked-switch[aria-expanded="true"] .bbb-asked-glyph::after
{
    opacity:0;
}

.bbb-asked-a
{
    padding:0 17px 17px;
    border-top:1px solid var(--line);
    padding-top:15px;
}

.bbb-asked-a > * + *
{
    margin-top:14px;
}

.bbb-asked-a p
{
    color:var(--ink2);
    font-size:15.5px;
}

.bbb-asked-a[hidden]
{
    display:none;
}

details.bbb-asked-row summary
{
    list-style:none;
    cursor:pointer;
}

details.bbb-asked-row summary::-webkit-details-marker
{
    display:none;
}

details.bbb-asked-row .bbb-asked-switch
{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 17px;
    color:var(--ink);
}

details.bbb-asked-row .bbb-asked-q
{
    margin:0;
    font-family:var(--font-body);
    font-size:16.5px;
    font-weight:600;
    line-height:1.45;
}

details.bbb-asked-row summary:hover .bbb-asked-q
{
    color:var(--accent);
}

details.bbb-asked-row[open] .bbb-asked-glyph
{
    background:var(--accent);
    border-color:var(--accent);
}

details.bbb-asked-row[open] .bbb-asked-glyph::before
{
    background:var(--on-accent);
}

details.bbb-asked-row[open] .bbb-asked-glyph::after
{
    opacity:0;
}

details.bbb-asked-row .bbb-asked-a
{
    padding:0 17px 17px;
    border-top:1px solid var(--line);
    padding-top:15px;
}

/* ---------- sidebar ---------- */ .bbb-column
{
    display:grid;
    gap:20px;
    min-width:0;
}

.bbb-box
{
    border-radius:var(--r-lg);
    border:var(--bw) solid var(--line);
    background:var(--surface);
    box-shadow:var(--sh-block);
}

.bbb-box-top
{
    padding:13px 16px;
    border-bottom:var(--bw) solid var(--line);
    background:var(--surface2);
    font-family:var(--font-ui);
    font-size:10.5px;
    letter-spacing:.11em;
    text-transform:uppercase;
    color:var(--ink);
    display:flex;
    align-items:center;
    gap:9px;
}

.bbb-box-top svg
{
    width:17px;
    height:17px;
    color:var(--accent);
}

.bbb-box-fill
{
    padding:16px;
}

.bbb-deal
{
    border-color:var(--accent);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent), var(--sh-block);
}

.bbb-deal .bbb-box-top
{
    background:var(--accent);
    color:var(--on-accent);
    border-bottom-color:var(--accent-dk);
}

.bbb-deal .bbb-box-top svg
{
    color:var(--on-accent);
}

.bbb-deal-figure
{
    font-family:var(--font-display);
    font-size:clamp(30px,4.6vw,38px);
    color:var(--accent);
    line-height:1.06;
}

.bbb-deal-note
{
    font-family:var(--font-display);
    font-size:21px;
    color:var(--ink);
    margin-top:6px;
    line-height:1.1;
}

.bbb-deal-terms
{
    font-size:12px;
    color:var(--ink3);
    margin-top:12px;
    line-height:1.5;
}

.bbb-deal .bbb-hook
{
    margin-top:15px;
}

.bbb-datasheet dl
{
    display:grid;
    gap:0;
}

.bbb-datasheet .bbb-pair
{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:10px 0;
    border-bottom:1px dashed var(--line);
}

.bbb-datasheet .bbb-pair:last-child
{
    border-bottom:0;
}

.bbb-datasheet dt
{
    font-size:13px;
    color:var(--ink3);
    letter-spacing:.03em;
}

.bbb-datasheet dd
{
    margin:0;
    font-family:var(--font-display);
    font-size:18px;
    color:var(--ink);
    text-align:right;
    line-height:1.25;
}

/* ---------- page contents ---------- */ .bbb-index
{
    background:var(--bg2);
    border-bottom:var(--bw) solid var(--line);
    padding:18px 0 20px;
}

.bbb-index-bar
{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:34px;
}

.bbb-index-label
{
    display:flex;
    align-items:center;
    gap:9px;
    font-family:var(--font-ui);
    font-size:10.5px;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--ink2);
}

.bbb-index-label svg
{
    width:16px;
    height:16px;
    color:var(--accent);
    flex:none;
}

.bbb-index-switch
{
    border-radius:var(--r);
    display:none;
    align-items:center;
    gap:10px;
    cursor:pointer;
    background:var(--surface);
    border:max(2px, calc(var(--bw) - 1px)) solid var(--line);
    padding:8px 12px;
    font-family:var(--font-ui);
    font-size:10px;
    letter-spacing:.09em;
    text-transform:uppercase;
    color:var(--ink2);
}

.bbb-index-switch:hover
{
    border-color:var(--accent);
    color:var(--accent);
}

.bbb-index-glyph
{
    width:16px;
    height:16px;
    flex:none;
    position:relative;
}

.bbb-index-glyph::before,.bbb-index-glyph::after
{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    background:var(--accent);
}

.bbb-index-glyph::before
{
    width:11px;
    height:3px;
}

.bbb-index-glyph::after
{
    width:3px;
    height:11px;
    transition:opacity .18s;
}

.bbb-index-switch[aria-expanded="true"] .bbb-index-glyph::after
{
    opacity:0;
}

.bbb-index-items
{
    counter-reset:pn;
    display:grid;
    grid-template-columns:1fr;
    gap:2px;
    margin-top:14px;
}

.bbb-index-items li
{
    counter-increment:pn;
    min-width:0;
}

.bbb-index-items a
{
    display:flex;
    gap:11px;
    padding:9px 11px;
    text-decoration:none;
    font-size:14px;
    line-height:1.4;
    color:var(--ink2);
    border-left:3px solid transparent;
    transition:color .15s,background .15s,border-color .15s;
}

.bbb-index-items a::before
{
    content:counter(pn,decimal-leading-zero);
    font-family:var(--font-ui);
    font-size:10px;
    color:var(--ink3);
    flex:none;
    padding-top:3px;
}

.bbb-index-items a:hover
{
    color:var(--accent);
    background:var(--surface);
    border-left-color:var(--accent);
}

.bbb-index-items a.bbb-here
{
    color:var(--accent);
    background:var(--surface);
    border-left-color:var(--accent);
}

/* ---------- in-content promo band ---------- */ .bbb-promo
{
    border-radius:var(--r-lg);
    position:relative;
    overflow:hidden;
    border:3px solid var(--accent);
    background:linear-gradient(135deg,var(--surface2),var(--surface));
    padding:24px 22px;
    display:grid;
    gap:18px;
    box-shadow:var(--sh-block);
}

.bbb-promo::before
{
    content:"";
    position:absolute;
    inset:0;
    opacity:.16;
    pointer-events:none;
    background:repeating-linear-gradient(45deg,var(--accent) 0 8px,transparent 8px 24px);
}

.bbb-promo > *
{
    position:relative;
}

.bbb-promo-head
{
    font-family:var(--font-display);
    font-size:clamp(24px,3.6vw,30px);
    line-height:1.14;
    color:var(--ink);
}

.bbb-promo-head em
{
    font-style:normal;
    color:var(--accent);
}

.bbb-promo-line
{
    font-size:15px;
    color:var(--ink2);
    margin-top:8px;
}

.bbb-promo-small
{
    font-size:11.5px;
    color:var(--ink3);
    margin-top:11px;
}

/* ---------- pickaxe tier strip ---------- */ .bbb-tawe
{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
}

@media (min-width:400px)
{
    .bbb-tawe
    {
        grid-template-columns:repeat(2,1fr);
    }
}

.bbb-grade
{
    min-width:0;
    border-radius:var(--r);
    border:var(--bw) solid var(--line);
    background:var(--surface);
    padding:15px 14px;
    text-align:center;
}

.bbb-grade-glyph
{
    border-radius:var(--r);
    display:grid;
    place-items:center;
    width:52px;
    height:52px;
    margin:0 auto 12px;
    border:max(2px, calc(var(--bw) - 1px)) solid var(--line);
    background:var(--surface2);
}

.bbb-grade-glyph svg
{
    width:30px;
    height:30px;
}

.bbb-grade-name
{
    font-family:var(--font-display);
    font-size:20px;
    line-height:1.1;
}

.bbb-grade-bar
{
    display:flex;
    gap:3px;
    margin-top:11px;
    justify-content:center;
}

.bbb-grade-bar i
{
    display:block;
    width:11px;
    height:11px;
    background:var(--line);
}

.bbb-grade-bar i.bbb-filled
{
    background:var(--tnt);
}

.bbb-grade-note
{
    font-size:12px;
    color:var(--ink3);
    margin-top:9px;
    line-height:1.45;
    display:block;
}

.bbb-grade--wood
{
    color:#c08c53;
}

.bbb-grade--stone
{
    color:var(--stone);
}

.bbb-grade--iron
{
    color:#dfe6ee;
}

.bbb-grade--diamond
{
    color:var(--diamond);
}

.bbb-grade-name
{
    color:currentColor;
}

.bbb-grade-glyph
{
    color:currentColor;
}

/* ---------- gallery ---------- */ .bbb-stills
{
    display:grid;
    gap:14px;
    grid-template-columns:1fr;
    align-items:start;
}

.bbb-still
{
    border-radius:var(--r-lg);
    border:var(--bw) solid var(--line);
    background:var(--bg2);
    box-shadow:var(--sh-block);
    overflow:hidden;
}

.bbb-still img
{
    width:100%;
    image-rendering:pixelated;
}

.bbb-still figcaption
{
    padding:11px 14px;
    font-size:12.5px;
    color:var(--ink3);
    border-top:1px solid var(--line);
}

/* ---------- footer ---------- */ .bbb-base
{
    background:var(--bg2);
    border-top:var(--bw) solid var(--line);
    padding:42px 0 0;
    font-size:14.5px;
}

.bbb-base-grid
{
    display:grid;
    gap:30px;
    grid-template-columns:1fr;
}

.bbb-base-col h2
{
    font-family:var(--font-ui);
    font-size:10px;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--ink);
    margin-bottom:14px;
}

.bbb-base-col ul
{
    display:grid;
    gap:9px;
}

.bbb-base-col a
{
    color:var(--ink3);
    text-decoration:none;
    transition:color .15s;
}

.bbb-base-col a:hover
{
    color:var(--accent);
}

.bbb-methods
{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.bbb-methods span
{
    border-radius:var(--r);
    border:max(2px, calc(var(--bw) - 1px)) solid var(--line);
    background:var(--surface);
    padding:7px 11px;
    font-family:var(--font-ui);
    font-size:9.5px;
    letter-spacing:.05em;
    color:var(--ink3);
}

.bbb-care
{
    margin-top:34px;
    border-top:1px solid var(--line);
    padding:24px 0;
    display:grid;
    gap:16px;
    align-items:center;
}

.bbb-care-tags
{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    align-items:center;
}

.bbb-care-tag
{
    border-radius:var(--r);
    display:inline-flex;
    align-items:center;
    gap:7px;
    border:max(2px, calc(var(--bw) - 1px)) solid var(--line);
    padding:7px 12px;
    font-size:12px;
    color:var(--ink2);
    background:var(--surface);
}

.bbb-care-tag b
{
    font-family:var(--font-ui);
    color:var(--tnt-ink);
    font-size:12px;
    letter-spacing:.04em;
}

.bbb-care-tag svg
{
    width:15px;
    height:15px;
    color:var(--ink3);
}

.bbb-care p
{
    color:var(--ink3);
    font-size:13px;
    line-height:1.6;
}

.bbb-care a
{
    color:var(--ink2);
}

.bbb-base-strip
{
    border-top:1px solid var(--line);
    padding:18px 0 30px;
    color:var(--ink3);
    font-size:12.5px;
    display:grid;
    gap:8px;
}

/* ---------- sticky mobile CTA ---------- */ .bbb-dock
{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:80;
    background:color-mix(in srgb, var(--bg2) 96%, transparent);
    backdrop-filter:blur(10px);
    border-top:var(--bw) solid var(--line);
    padding:10px 0 calc(10px + env(safe-area-inset-bottom));
    box-shadow:0 -10px 24px -14px rgba(0,0,0,.7);
}

.bbb-dock-bar
{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}

.bbb-dock-text
{
    flex:1 1 auto;
    min-width:0;
    line-height:1.15;
}

.bbb-dock-text b
{
    display:block;
    font-family:var(--font-display);
    font-size:18px;
    color:var(--accent);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.bbb-dock-text span
{
    display:block;
    font-family:var(--font-ui);
    font-size:9.5px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink3);
    margin-top:4px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

@media (max-width:359px)
{
    .bbb-dock-bar
    {
        gap:10px;
    }
    .bbb-dock .bbb-hook
    {
        padding-left:14px;
        padding-right:14px;
    }
    .bbb-dock-text span
    {
        display:none;
    }
}

.bbb-dock .bbb-hook
{
    flex:none;
    white-space:nowrap;
}

.bbb-scripted .bbb-dock
{
    transform:translateY(110%);
    transition:transform .28s ease;
    will-change:transform;
}

.bbb-scripted .bbb-dock.bbb-lifted
{
    transform:none;
}

.bbb-tacklebox-out .bbb-dock
{
    display:none;
}

/* ---------- 404 ---------- */ .bbb-snagged
{
    min-height:62vh;
    display:grid;
    place-items:center;
    text-align:center;
    padding:60px 0;
}

.bbb-snagged-code
{
    font-family:var(--font-display);
    font-size:clamp(84px,22vw,170px);
    line-height:.86;
    color:var(--accent);
    text-shadow:7px 7px 0 var(--surface2);
}

.bbb-snagged h1
{
    font-family:var(--font-display);
    font-size:clamp(28px,5.2vw,40px);
    margin-top:20px;
    font-weight:400;
}

.bbb-snagged p
{
    color:var(--ink2);
    margin-top:14px;
    max-width:52ch;
    margin-inline:auto;
}

.bbb-snagged .bbb-snagged-code
{
    color:var(--accent);
    max-width:none;
    margin-top:0;
}

.bbb-snagged .bbb-swim-cta
{
    justify-content:center;
}

.bbb-snagged-links
{
    margin-top:30px;
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    justify-content:center;
}

.bbb-snagged-links a
{
    border-radius:var(--r);
    border:max(2px, calc(var(--bw) - 1px)) solid var(--line);
    background:var(--surface);
    padding:9px 14px;
    text-decoration:none;
    font-size:13.5px;
    color:var(--ink2);
    transition:.15s;
}

.bbb-snagged-links a:hover
{
    border-color:var(--accent);
    color:var(--accent);
}

/* ---------- reveal ---------- */ .bbb-scripted .bbb-emerge
{
    opacity:0;
    transform:translateY(16px);
}

.bbb-scripted .bbb-emerge.bbb-landed
{
    opacity:1;
    transform:none;
    transition:opacity .5s ease,transform .5s ease;
}

/* ---------- breadcrumb ---------- */ .bbb-path
{
    padding:14px 0;
    font-size:13px;
    color:var(--ink3);
    border-bottom:1px solid var(--line);
    background:var(--bg2);
}

.bbb-path ol
{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    align-items:center;
}

.bbb-path a
{
    color:var(--ink2);
    text-decoration:none;
}

.bbb-path a:hover
{
    color:var(--accent);
}

.bbb-path li + li::before
{
    content:"›";
    margin-right:7px;
    color:var(--ink3);
}

.bbb-path li
{
    display:flex;
    align-items:center;
}

.bbb-path [aria-current]
{
    color:var(--ink3);
}

/* ---------- responsive ---------- */ @media (max-width:719px)
{
    .bbb-index-switch
    {
        display:inline-flex;
    }
    .bbb-scripted .bbb-index-items
    {
        display:none;
    }
    .bbb-scripted .bbb-index.bbb-unfolded .bbb-index-items
    {
        display:grid;
    }
}

@media (max-width:599px)
{
    .bbb-swim-deal
    {
        position:static;
        margin-top:-2px;
        padding:13px 16px;
        text-align:center;
        border-radius:0 0 var(--r-lg) var(--r-lg);
        box-shadow:none;
    }
    .bbb-swim-deal b
    {
        font-size:23px;
    }
}

@media (min-width:600px)
{
    .bbb-index-items
    {
        grid-template-columns:1fr 1fr;
    }
    .bbb-stats--cards .bbb-stats-grid
    {
        grid-template-columns:repeat(3,1fr);
    }
    .bbb-stats--strip .bbb-stats-grid
    {
        grid-template-columns:repeat(3,1fr);
    }
    .bbb-stats--strip .bbb-stats-row:nth-child(2n)
    {
        border-right:1px solid var(--line);
    }
    .bbb-stats--strip .bbb-stats-row:nth-child(3n)
    {
        border-right:0;
    }
    .bbb-tawe
    {
        grid-template-columns:repeat(4,1fr);
    }
    .bbb-promo
    {
        grid-template-columns:1fr auto;
        align-items:center;
        gap:26px;
        padding:28px 26px;
    }
    .bbb-care
    {
        grid-template-columns:auto 1fr;
        gap:24px;
    }
    .bbb-base-strip
    {
        grid-template-columns:1fr auto;
        align-items:center;
    }
    .bbb-stills
    {
        grid-template-columns:2fr 1fr;
    }
}

@media (max-width:899px)
{
    .bbb-swim-bar--art-left .bbb-swim-copy
    {
        order:-1;
    }
}

@media (min-width:900px)
{
    .bbb-swim-bar.bbb-swim-bar--art-left
    {
        grid-template-columns:.94fr 1.06fr;
    }
    .bbb-swim-bar.bbb-swim-bar--art-wide
    {
        grid-template-columns:1fr;
        gap:26px;
        align-items:start;
        text-align:center;
        padding:34px 0 40px;
    }
    .bbb-swim-bar--art-wide h1
    {
        font-size:clamp(32px,5vw,50px);
    }
    .bbb-swim-bar--art-wide .bbb-swim-copy
    {
        max-width:none;
    }
    .bbb-swim-bar--art-wide h1
    {
        margin-inline:auto;
    }
    .bbb-swim-bar--art-wide .bbb-swim-intro
    {
        max-width:56ch;
        margin-inline:auto;
    }
    .bbb-swim-bar--art-wide .bbb-swim-cta,   .bbb-swim-bar--art-wide .bbb-swim-small
    {
        justify-content:center;
    }
    .bbb-swim-bar--art-wide .bbb-swim-small
    {
        align-items:center;
    }
    .bbb-index
    {
        padding:22px 0 26px;
    }
    .bbb-index-items
    {
        grid-template-columns:repeat(3,1fr);
        gap:2px 18px;
        margin-top:16px;
    }
    .bbb-swim-bar
    {
        grid-template-columns:1.06fr .94fr;
        align-items:center;
        gap:44px;
        padding:52px 0 60px;
    }
    .bbb-stats--cards .bbb-stats-grid
    {
        grid-template-columns:repeat(6,1fr);
    }
    .bbb-stats--strip .bbb-stats-grid
    {
        grid-template-columns:repeat(6,1fr);
    }
    .bbb-stats--strip .bbb-stats-row:nth-child(3n)
    {
        border-right:1px solid var(--line);
    }
    .bbb-stats--strip .bbb-stats-row:nth-child(6n)
    {
        border-right:0;
    }
    .bbb-stats-row
    {
        flex-direction:column;
        align-items:flex-start;
        gap:11px;
        padding:20px 15px;
    }
    .bbb-tacklebox
    {
        display:none;
    }
}

@media (max-width:1079px)
{
    body
    {
        padding-bottom:78px;
    }
}

@media (min-width:1080px)
{
    .bbb-dock
    {
        display:none;
    }
    .bbb-routes
    {
        display:block;
    }
    .bbb-latch
    {
        display:none;
    }
    .bbb-masthead-cta
    {
        display:inline-flex;
    }
    .bbb-body
    {
        grid-template-columns:minmax(0,1fr) 316px;
        gap:42px;
        padding:44px 0 72px;
    }
    .bbb-body--side-left
    {
        grid-template-columns:316px minmax(0,1fr);
    }
    .bbb-column
    {
        position:sticky;
        top:88px;
        max-height:calc(100vh - 104px);
        overflow-y:auto;
        overflow-x:hidden;
        padding:0 10px 10px 0;
        margin-right:-10px;
        scrollbar-width:thin;
        scrollbar-color:var(--line) transparent;
    }
    .bbb-column::-webkit-scrollbar
    {
        width:8px;
    }
    .bbb-column::-webkit-scrollbar-thumb
    {
        background:var(--line);
    }
    .bbb-column::-webkit-scrollbar-track
    {
        background:transparent;
    }
    .bbb-base-grid
    {
        grid-template-columns:1.5fr 1fr 1fr 1fr;
    }
}

@media (prefers-reduced-motion:reduce)
{
    html
    {
        scroll-behavior:auto;
    }
    *,*::before,*::after
    {
        animation-duration:.001ms !important;
        transition-duration:.001ms !important;
    }
    .bbb-scripted .bbb-emerge
    {
        opacity:1;
        transform:none;
    }
}

@media print
{
    .bbb-masthead,.bbb-column,.bbb-promo,.bbb-swim-cta,.bbb-latch,.bbb-tacklebox,.bbb-index,.bbb-dock
    {
        display:none !important;
    }
    body
    {
        background:#fff;
        color:#000;
    }
    .bbb-copy p,.bbb-copy li
    {
        color:#222;
    }
}

