@import url('https://fonts.googleapis.com/css2?family=MuseoModerno:wght@600;800&family=Inter+Tight:wght@700;800&family=IBM+Plex+Sans:wght@400;600&family=IBM+Plex+Mono:wght@500&display=swap');
.tbx-anchors{--m:#d01e98;--c:#383838;--bg:#f4f2ee;display:flex;align-items:stretch;border:1px solid var(--c);background:var(--bg);color:var(--c);font:500 14px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:0;text-transform:uppercase;height:40px;min-height:40px;box-sizing:border-box;width:100%;overflow:hidden;flex:none}
.tbx-anchors *{box-sizing:border-box}
.tbx-anchors button{all:unset;cursor:pointer;display:flex;align-items:center;gap:6px;padding:0 8px;border-right:1px solid var(--c);white-space:nowrap;flex:1 1 auto;justify-content:center;min-width:0}
.tbx-anchors button:last-child{border-right:0}
.tbx-anchors button:hover,.tbx-anchors button:focus-visible{background:var(--c);color:#fff}
.tbx-anchors button[data-k="05"]{box-shadow:inset 0 0 0 2px var(--m)}
.tbx-anchors i{display:inline-block;width:10px;height:10px;background:var(--m);flex:none}
.tbx-anchors .n{opacity:.7}.tbx-anchors .t{overflow:visible}
.tbx-anchors button.s{flex:0 0 auto}
.tbx-anchors--fixed{position:fixed;left:0;right:0;bottom:0;z-index:60}
@media(max-width:1100px){.tbx-anchors .t{display:none}.tbx-anchors button.s .t,.tbx-anchors button[data-k="05"] .t{display:inline}}
@media(max-width:600px){.tbx-anchors button{padding:0 2px;gap:3px;flex:1 1 0}.tbx-anchors i{width:8px;height:8px}.tbx-anchors button[data-k="05"] .t{display:none}.tbx-anchors button.s .t{display:none}}
.tbx-sheet{--m:#d01e98;--c:#383838;position:fixed;inset:0;z-index:1000;background:rgba(56,56,56,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.tbx-sheet[hidden]{display:none}
.tbx-card{background:#f4f2ee;color:var(--c);border:2px solid var(--c);width:min(980px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;font:400 20px/1.35 "IBM Plex Sans",system-ui,sans-serif;overflow:hidden}
.tbx-card header{display:flex;justify-content:space-between;align-items:center;background:var(--c);color:#fff;font:500 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;padding:0 0 0 14px;height:44px;flex:none}
.tbx-card header i{display:inline-block;width:12px;height:12px;background:var(--m);margin-right:8px;vertical-align:-1px}
.tbx-card header button{all:unset;cursor:pointer;height:44px;padding:0 16px;border-left:1px solid #fff}
.tbx-card header button:hover{background:var(--m)}
.tbx-body{padding:20px 24px;display:grid;grid-template-columns:1fr 1fr;gap:20px;min-height:0;overflow:hidden}
.tbx-body h2{grid-column:1/-1;margin:0;font:800 clamp(32px,5vw,64px)/1.05 "Inter Tight",sans-serif;letter-spacing:-.04em}
.tbx-body h2 em{font-style:normal;color:var(--m)}
.tbx-lab{font:500 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--m);margin:0 0 6px}
.tbx-body p{margin:0}
.tbx-rows{display:flex;flex-direction:column;gap:14px}
.tbx-vis{border:1px solid var(--c);padding:14px;display:flex;flex-direction:column;justify-content:center;gap:8px;font:500 14px/1.2 "IBM Plex Mono",monospace;text-transform:uppercase}
.tbx-bar{height:28px;background:var(--c);color:#fff;display:flex;align-items:center;padding:0 8px}
.tbx-bar.m{background:var(--m)}.tbx-bar.o{background:transparent;color:var(--c);border:1px dashed var(--c)}
.tbx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--c);border-left:1px solid var(--c)}
.tbx-grid div{border-right:1px solid var(--c);border-bottom:1px solid var(--c);padding:8px;min-height:64px;display:flex;flex-direction:column;justify-content:space-between;gap:4px;font:500 14px/1.15 "IBM Plex Sans",sans-serif;text-transform:none}
.tbx-grid b{font:800 20px/1 "Inter Tight",sans-serif}
.tbx-grid div.p{background:var(--m);color:#fff}
.tbx-steps{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--c)}
.tbx-steps a{border:1px solid var(--c);border-left:0;padding:10px;color:var(--c);text-decoration:none;display:flex;flex-direction:column;gap:6px;font:400 14px/1.25 "IBM Plex Sans",sans-serif}
.tbx-steps a b{font:800 18px/1 "Inter Tight",sans-serif}.tbx-steps a span.pr{font:500 14px/1 "IBM Plex Mono",monospace;color:var(--m)}
.tbx-steps a:hover{background:var(--c);color:#fff}
.tbx-links{display:flex;flex-wrap:wrap;gap:10px}
.tbx-links a{border:2px solid var(--c);padding:10px 14px;color:var(--c);text-decoration:none;font:500 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase}
.tbx-links a.m{background:var(--m);border-color:var(--m);color:#fff}
.tbx-wide{grid-column:1/-1}
@media(max-width:700px){.tbx-body{grid-template-columns:1fr;padding:14px;gap:12px}.tbx-card{font-size:18px}.tbx-grid div{min-height:0;padding:6px}.tbx-grid b{font-size:16px}.tbx-steps{grid-template-columns:1fr 1fr}.tbx-steps a{padding:8px}.tbx-body h2{font-size:34px}}

.tbx-big{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--c)}.tbx-big div{padding:8px 14px;font:500 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase;display:flex;flex-direction:column;gap:4px}.tbx-big b{font:800 clamp(44px,7vw,80px)/1 "Inter Tight",sans-serif;letter-spacing:-.04em}.tbx-big div.m{background:var(--m);color:#fff}

/* 2026-10-25 flip tiles: front = number + name; pressed = formula card flips in over the grid */
.tbx-grid{position:relative;perspective:1400px}
.tbx-grid .tbx-tile{all:unset;box-sizing:border-box;cursor:pointer;border-right:1px solid var(--c);border-bottom:1px solid var(--c);min-height:64px;display:flex;color:var(--c);font:500 14px/1.15 "IBM Plex Sans",sans-serif}
.tbx-grid .tbx-tile.p{background:var(--m);color:#fff}
.tbx-grid .tbx-tile:focus-visible{outline:3px solid var(--m);outline-offset:-3px}
.tbx-grid .tbx-tile.p:focus-visible{outline-color:#383838}
.tbx-in{display:flex;flex:1}
.tbx-f{flex:1;padding:8px;display:flex;flex-direction:column;justify-content:space-between;gap:4px}
.tbx-f:after{content:"f(x) \21BB";font:500 14px/1 "IBM Plex Mono",monospace;opacity:.7;align-self:flex-end}
.tbx-bk{display:none;position:absolute;inset:0;z-index:3;background:#383838;color:#fff;box-shadow:inset 0 0 0 3px var(--m);padding:12px 16px;flex-direction:column;justify-content:center;gap:8px;backface-visibility:hidden;transform-origin:50% 50%;animation:tbxflip .5s cubic-bezier(.3,.7,.2,1)}
.tbx-tile[aria-pressed=true] .tbx-bk{display:flex}
@keyframes tbxflip{from{transform:rotateY(-180deg)}to{transform:rotateY(0)}}
@keyframes tbxfade{from{opacity:0}to{opacity:1}}
.tbx-k{font:500 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:#f7a8dc}
.tbx-m{font:italic 400 20px/1.5 "Cambria Math","STIX Two Math","Latin Modern Math",Georgia,serif;color:#fff}
.tbx-m sub,.tbx-m sup{font-size:15px;line-height:0}
.tbx-m .fr{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;margin:0 3px;line-height:1.25}
.tbx-m .fr>span:first-child{border-bottom:1.5px solid currentColor;padding:0 3px 2px}
.tbx-m .fr>span:last-child{padding:2px 3px 0}
.tbx-m .op{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;line-height:1;margin:0 2px}
.tbx-m .op>span{font-size:24px;font-style:normal}.tbx-m .op sub,.tbx-m .op sup{line-height:1}
.tbx-w{font:400 16px/1.3 "IBM Plex Sans",sans-serif;font-style:normal}
@media(max-width:700px){.tbx-grid .tbx-tile{min-height:0}.tbx-f{padding:6px}.tbx-f:after{display:none}.tbx-bk{padding:8px 10px;gap:6px}.tbx-m{font-size:17px;line-height:1.4}.tbx-m sub,.tbx-m sup{font-size:14px}.tbx-w{font-size:14px}}
@media(prefers-reduced-motion:reduce){.tbx-bk{animation:tbxfade .3s ease}}

/* 2026-10-30 mobile-only: sheet content scrolls instead of being clipped; respects safe areas */
@media(max-width:700px){.tbx-sheet{padding:max(12px,env(safe-area-inset-top)) 10px max(12px,env(safe-area-inset-bottom))}.tbx-card{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-width:0}.tbx-body{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-width:0}.tbx-body>*{min-width:0}.tbx-links a{white-space:normal}}

/* 2026-10-31 one menu, one thin line: numbered strip removed from view everywhere */
.tbx-anchors.tbx-anchors--off{display:none!important}
.tbx-anchors.tbx-anchors--line{display:flex;justify-content:flex-end;align-items:center;background:transparent;border:0!important;height:44px;min-height:44px;overflow:visible}
.tbx-anchors .tbx-line{all:unset;box-sizing:border-box;display:grid;place-items:center;width:44px;height:44px;flex:none;cursor:pointer;color:var(--c);border:0!important}
.tbx-anchors .tbx-line:hover,.tbx-anchors .tbx-line:focus-visible{background:transparent;color:var(--c)}
.tbx-anchors .tbx-line i{display:block;width:2px;height:26px;border-radius:1px;background:currentColor;opacity:.75;transition:opacity .25s,transform .35s cubic-bezier(.2,.7,.2,1)}
.tbx-anchors .tbx-line:hover i,.tbx-line[aria-expanded="true"] i{opacity:1}.tbx-line[aria-expanded="true"] i{transform:scaleY(.8)}
.tbx-anchors .tbx-line:focus-visible{outline:3px solid #d01e98;outline-offset:-3px}
.tbx-menu{--m:#d01e98;--c:#383838;position:fixed;inset:0;z-index:990;background:rgba(20,20,20,.5);display:flex;justify-content:flex-end}
.tbx-menu[hidden]{display:none}
.tbx-menu-panel{width:min(380px,100%);height:100%;background:var(--c);color:#fff;display:flex;flex-direction:column;gap:20px;padding:max(72px,calc(env(safe-area-inset-top) + 64px)) 28px max(24px,env(safe-area-inset-bottom));overflow-y:auto;box-shadow:-2px 0 0 #fff2;animation:tbxin .32s cubic-bezier(.2,.7,.2,1)}
@keyframes tbxin{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.tbx-menu-list{display:flex;flex-direction:column;border-top:1px solid #ffffff33}
.tbx-menu-list button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 0;border-bottom:1px solid #ffffff33;font:800 24px/1.1 "Inter Tight","IBM Plex Sans",sans-serif;letter-spacing:-.01em}
.tbx-menu-list button i{width:10px;height:10px;background:var(--m);flex:none}
.tbx-menu-list button:hover,.tbx-menu-list button:focus-visible{color:#f7a8dc}
.tbx-menu-list button:focus-visible{outline:2px solid var(--m);outline-offset:2px}
.tbx-menu-cta{align-self:flex-start;background:var(--m);color:#fff;text-decoration:none;font:500 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;padding:14px 18px}
.tbx-menu-site{display:flex;flex-direction:column;gap:12px;margin-top:auto}
.tbx-menu-site a{color:#ffffffcc;text-decoration:none;font:500 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}
.tbx-menu-site a:hover{color:#fff}
@media(prefers-reduced-motion:reduce){.tbx-menu-panel{animation:none}}
.tbx-body{overflow-y:auto}
/* About / CORE */
.tbx-body.tbx-s-00{display:block}
.tbx-about{display:flex;flex-direction:column;gap:22px}
.tbx-about h2,.tbx-about h3{margin:0;font:800 clamp(26px,3vw,38px)/1.05 "Inter Tight",sans-serif;letter-spacing:-.02em}
.tbx-about .tbx-core h2{font-size:clamp(44px,6vw,72px)}
.tbx-about h3 em{font-style:normal;color:var(--m)}
.tbx-about section{border-top:2px solid var(--c);padding-top:14px;display:flex;flex-direction:column;gap:10px}
.tbx-about .tbx-core{display:flex;flex-direction:column;gap:8px}
.tbx-about .tbx-core .tbx-lab{font-size:15px;margin:0}
.tbx-quote{background:var(--c);color:#fff;padding:12px 14px;font-weight:600}
.tbx-contrast{border-left:3px solid var(--m);padding-left:10px;font-weight:600}
.tbx-nine,.tbx-ks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--c);border-left:1px solid var(--c);font:500 15px/1.2 "IBM Plex Sans",sans-serif}
.tbx-nine li,.tbx-ks li{border-right:1px solid var(--c);border-bottom:1px solid var(--c);padding:8px;display:flex;flex-direction:column;gap:4px}
.tbx-nine b{font:800 18px/1 "Inter Tight",sans-serif}
.tbx-nine li.p{background:var(--m);color:#fff}
.tbx-ks{grid-template-columns:repeat(4,1fr)}.tbx-ks li{font-weight:600}
.tbx-eco{display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:start}
.tbx-stack{position:relative;border:2px dashed var(--c);padding:30px 14px 14px;display:flex;flex-direction:column;gap:8px;font:500 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}
.tbx-stack-l{position:absolute;top:8px;left:12px;color:var(--m)}
.tbx-stack span:not(.tbx-stack-l){position:relative;background:var(--c);color:#fff;padding:12px 10px}
.tbx-stack .s2{margin-left:14px}.tbx-stack .s3{margin-left:28px;background:var(--m)!important}
.tbx-stack .s1:after,.tbx-stack .s2:after{content:"\2193";position:absolute;right:10px}
@media(max-width:700px){.tbx-nine{grid-template-columns:1fr 1fr}.tbx-ks{grid-template-columns:1fr 1fr}.tbx-eco{grid-template-columns:1fr}.tbx-about{gap:18px}.tbx-menu-panel{width:100%;padding-left:22px;padding-right:22px}.tbx-menu-list button{font-size:22px}}
.tbx-menu-panel{position:relative}
.tbx-menu-x{all:unset;position:absolute;top:max(14px,env(safe-area-inset-top));right:16px;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;color:#fff}
.tbx-menu-x i{display:block;width:2px;height:26px;border-radius:1px;background:currentColor;transform:rotate(45deg)}
.tbx-menu-x i:after{content:"";display:block;width:2px;height:26px;border-radius:1px;background:currentColor;transform:rotate(90deg)}
.tbx-menu-x:focus-visible{outline:2px solid #d01e98}
/* 2026-10-31 menu groups: category education, then products */
.tbx-menu-list{border-top:0}
.tbx-menu-grp{margin:0;padding:0 0 8px;border-bottom:1px solid #ffffff33;font:500 12px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:#ffffff8c}
.tbx-menu-div{margin-top:18px;padding-top:16px;border-top:1px solid #ffffff1f}
/* 2026-10-31 line breaks: no widows, balanced short lines (Safari falls back to nbsp joins in anchors.js) */
.tbx-card p,.tbx-card li,.tbx-steps a,.tbx-w,.tbx-menu-panel p{text-wrap:pretty}
.tbx-card h2,.tbx-card h3,.tbx-lab,.tbx-wc,.tbx-quote,.tbx-contrast,.tbx-f,.tbx-steps a b,.tbx-steps .pr,.tbx-about .tbx-core p{text-wrap:balance}
.tbx-why .tbx-wt p,.tbx-why .tbx-wc{text-wrap:balance}

.tbx-about .tbx-core .tbx-note{margin-top:10px;padding-left:10px;border-left:3px solid #d01e98;font-size:14px;line-height:1.3;text-wrap:balance}
.tbx-about .tbx-tagline{margin:0 0 18px;font:800 clamp(24px,3vw,36px)/1.1 "Inter Tight",sans-serif;letter-spacing:-.01em;color:#383838;text-wrap:balance}
.tbx-why-open{margin:0 0 20px;font:800 clamp(22px,6vw,40px)/1.1 "Inter Tight",sans-serif;letter-spacing:-.01em;color:#383838;text-wrap:balance}
.tbx-card h2.tbx-why-open,h2.tbx-why-open{font-size:clamp(22px,6vw,36px)!important;line-height:1.12!important;letter-spacing:-.01em!important}

/* Rounded language (2026-10-31): pills for buttons, 16px panels and tiles, 8px inputs. Echoes the orb. */
.tbx-card{border-radius:18px}
.tbx-card header button,.tbx-card header i{border-radius:0 16px 0 0}
.tbx-links a,.tbx-menu-cta,.tbx-menu-x,.tbx-anchors button,.tbx-wn button{border-radius:999px}
.tbx-links a{padding:11px 18px}
.tbx-steps a,.tbx-menu-panel,.tbx-vis .tbx-bar{border-radius:14px}
.tbx-grid{gap:6px;border:0}
.tbx-grid .tbx-tile,.tbx-grid div{border:1px solid var(--c);border-radius:12px;overflow:hidden}
.tbx-grid .tbx-tile .tbx-in,.tbx-grid .tbx-tile .tbx-bk{border-radius:11px}
.tbx-grid .tbx-tile:focus-visible{outline-offset:2px}
