/* eccholabs chrome: the ecchoverse.com header, menu, buttons and footer, shared by every tool.
   Prefixed el- so a tool's own styles never collide with it. Tokens and shapes are the ones of ecchoverse.com. */
@font-face{font-family:"Aeonik";font-weight:400;font-style:normal;font-display:swap;src:url(/assets/aeonik-regular.woff2) format("woff2")}
@font-face{font-family:"Aeonik";font-weight:500;font-style:normal;font-display:swap;src:url(/assets/aeonik-medium.woff2) format("woff2")}
@font-face{font-family:"Aeonik";font-weight:700;font-style:normal;font-display:swap;src:url(/assets/aeonik-bold.woff2) format("woff2")}
:root{
  --tile:polygon(0 16px,100% 0,calc(100% - 14px) 100%,8px calc(100% - 16px));
  --tile-soft:polygon(0 7px,100% 0,calc(100% - 3px) 100%,0 calc(100% - 4px));
  --cut:polygon(0 16%,100% 0,97% 100%,2% 88%);
  --crest:polygon(24.5% 16.7%,82.4% 6.5%,93.5% 53.7%,32% 93.5%,6.5% 65.7%);
  --purple:#7322FF;--purple-deep:#5A1ACC;--blue:#4FE4FF;--off:#F5F0F0;--off-2:#FBF9F9;--ink:#0A0A0A;
  --off-70:rgba(245,240,240,.72);--off-16:rgba(245,240,240,.16);--off-08:rgba(245,240,240,.08);
  --fs-xl:clamp(36px,7vw,72px);--fs-l:clamp(32px,6vw,60px);--fs-m:clamp(18px,2.2vw,22px);--fs-s:16px;--fs-xs:13px;
  --el-max:1120px;--el-pad:clamp(20px,5vw,56px);--ease:cubic-bezier(.2,.8,.2,1);
}
.el-wrap{max-width:var(--el-max);margin:0 auto;padding-left:var(--el-pad);padding-right:var(--el-pad)}

/* scroll progress, as on ecchoverse.com */
.el-prog{position:fixed;top:0;left:0;right:0;height:3px;background:var(--blue);transform-origin:0 50%;transform:scaleX(0);z-index:80;pointer-events:none}
@supports (animation-timeline:scroll()){.el-prog{animation:el-growx linear both;animation-timeline:scroll(root block)}}
@keyframes el-growx{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* header */
.el-nav{position:sticky;top:0;z-index:60;padding-top:env(safe-area-inset-top);background:rgba(115,34,255,.82);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);color:var(--off);border-bottom:1px solid var(--off-16);font-family:"Aeonik",Helvetica,Arial,sans-serif}
.el-light .el-nav{background:rgba(245,240,240,.86);color:var(--purple);border-bottom-color:rgba(115,34,255,.16)}
.el-nav .el-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:70px;max-width:1320px}
@media(min-width:720px){.el-nav .el-wrap{height:80px}}
.el-home{display:block;color:inherit;flex:none}
.el-lk{display:block;height:30px;aspect-ratio:1036/332;background:currentColor;-webkit-mask:url(/assets/eccholabs-wordmark.v5.png) center/contain no-repeat;mask:url(/assets/eccholabs-wordmark.v5.png) center/contain no-repeat}
@media(min-width:720px){.el-nav .el-lk{height:36px}}
.el-sec{display:none}
@media(min-width:1000px){
  .el-sec{display:flex;gap:2px;margin:0 auto;min-width:0}
  .el-sec a{position:relative;display:flex;align-items:baseline;gap:7px;padding:10px 11px;color:inherit;text-decoration:none;font-weight:500;font-size:var(--fs-s);white-space:nowrap;transition:color .25s ease}
  .el-sec .el-n{font-weight:700;letter-spacing:.12em;color:var(--blue)}
  .el-light .el-sec .el-n{color:var(--purple-deep)}
  .el-sec a::after{content:"";position:absolute;left:11px;bottom:2px;width:0;height:5px;background:var(--blue);clip-path:polygon(0 40%,100% 0,100% 60%,0 100%);transition:width .35s var(--ease)}
  .el-light .el-sec a::after{background:var(--purple)}
  .el-sec a.on::after{width:calc(100% - 22px)}
  .el-sec .el-badge{margin-left:2px}
}
@media(hover:hover) and (pointer:fine){.el-sec a:hover{color:var(--blue)}.el-light .el-sec a:hover{color:var(--purple-deep)}}
.el-r{display:flex;align-items:center;gap:8px;flex:none}
.el-me{display:grid;place-items:center;width:44px;height:44px;clip-path:var(--crest);background:var(--off);color:var(--purple);font-weight:700;font-size:14px;text-decoration:none;flex:none}
.el-light .el-me{background:var(--purple);color:var(--off)}
.el-burger{display:grid;place-items:center;width:44px;height:44px;border:0;background:none;color:inherit;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}
.el-burger span{display:block;width:24px;height:3px;background:currentColor;margin:3px auto;clip-path:polygon(0 30%,100% 0,100% 70%,0 100%)}
@media(min-width:1000px){.el-burger{display:none}}
.el-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;background:var(--blue);color:var(--ink);font-size:12px;font-weight:700;letter-spacing:0;clip-path:var(--cut)}

/* buttons, the ecchoverse cut with the off white wipe */
.el-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--blue);color:var(--ink);text-decoration:none;font-family:inherit;font-weight:700;font-size:var(--fs-s);padding:12px 22px;min-height:46px;border:0;border-radius:0;clip-path:var(--cut);cursor:pointer;overflow:hidden;isolation:isolate;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:transform .18s var(--ease)}
.el-btn>*{position:relative;z-index:1}
.el-btn::before{content:"";position:absolute;inset:0;background:var(--off);transform:scaleX(0);transform-origin:left;transition:transform .38s var(--ease);z-index:0}
.el-light .el-btn::before{background:var(--purple-deep)}
.el-btn:active{transform:scale(.96)}
@media(hover:hover) and (pointer:fine){.el-btn:hover{transform:translateY(-2px)}.el-btn:hover::before{transform:scaleX(1)}.el-light .el-btn:hover{color:var(--off)}}
@media(max-width:599px){.el-r .el-btn{display:none}}

/* full screen menu on small screens */
.el-menu{position:fixed;inset:0;z-index:90;background:var(--purple);color:var(--off);display:flex;flex-direction:column;padding:max(16px,env(safe-area-inset-top)) var(--el-pad) max(24px,env(safe-area-inset-bottom));clip-path:polygon(0 0,100% 0,100% 0,0 0);transition:clip-path .55s cubic-bezier(.7,0,.2,1);pointer-events:none;overflow:auto;font-family:"Aeonik",Helvetica,Arial,sans-serif}
.el-menu.open{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);pointer-events:auto}
.el-menu-top{display:flex;align-items:center;justify-content:space-between;height:70px}
.el-menu-top a{color:inherit}
.el-x{width:44px;height:44px;border:0;background:none;color:inherit;cursor:pointer;position:relative}
.el-x::before,.el-x::after{content:"";position:absolute;left:50%;top:50%;width:26px;height:3px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg);clip-path:polygon(0 30%,100% 0,100% 70%,0 100%)}
.el-x::after{transform:translate(-50%,-50%) rotate(-45deg)}
.el-menu-links{display:grid;margin:auto 0;padding:18px 0}
.el-menu-links a{display:flex;align-items:baseline;gap:14px;padding:14px 0;color:inherit;text-decoration:none;font-weight:700;font-size:var(--fs-l);line-height:1.05;letter-spacing:-.015em;border-bottom:1px solid rgba(245,240,240,.18);opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.el-menu.open .el-menu-links a{opacity:1;transform:none;transition-delay:calc(var(--i)*60ms + 180ms)}
.el-menu-links .el-n{font-size:var(--fs-s);font-weight:700;letter-spacing:.14em;color:var(--blue)}
.el-menu-foot{display:flex;flex-wrap:wrap;gap:12px;align-items:center;opacity:0;transition:opacity .45s var(--ease) .42s}
.el-menu.open .el-menu-foot{opacity:1}
.el-menu-foot .el-who{flex-basis:100%;font-size:var(--fs-xs);color:var(--off-70)}
.el-ghost{background:var(--off-16);color:var(--off)}
@media(min-width:1000px){.el-menu{display:none}}
html.el-menu-open{overflow:hidden}

/* footer */
.el-foot{padding:34px 0 calc(34px + env(safe-area-inset-bottom));font-family:"Aeonik",Helvetica,Arial,sans-serif}
.el-foot .el-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;border-top:1px solid var(--off-16);padding-top:24px}
.el-light .el-foot .el-wrap{border-top-color:rgba(115,34,255,.16)}
.el-foot .el-lk{height:26px}
.el-foot .el-sep{opacity:.6}
.el-grp{display:block;height:15px;aspect-ratio:2694/213;background:currentColor;opacity:.85;-webkit-mask:url(/assets/eccholine-group.v2.png) left center/contain no-repeat;mask:url(/assets/eccholine-group.v2.png) left center/contain no-repeat}
.el-foot a{color:inherit}

/* sticky call to action on phones, like the bar on ecchoverse.com */
.el-bar{display:none}
@media(max-width:599px){
  .el-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;padding:10px max(14px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-right));background:rgba(90,26,204,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--off-16)}
  .el-bar .el-btn{flex:1}
  .el-light .el-bar{background:rgba(245,240,240,.92);border-top-color:rgba(115,34,255,.16)}
  body:has(.el-bar) .el-foot{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
}
