.hub-section{padding-top:74px;padding-bottom:85px}.hub-intro{max-width:1100px}.hub-intro p{max-width:750px;font-size:1.05rem}.hub-board{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,1.2fr) minmax(220px,1fr);align-items:stretch;gap:20px;margin:38px 0 18px;position:relative}.hub-board:before,.hub-board:after{content:"";position:absolute;top:50%;width:20px;border-top:2px dashed var(--accent);opacity:.55}.hub-board:before{left:calc((100% - 40px)/3 - 1px)}.hub-board:after{right:calc((100% - 40px)/3 - 1px)}.hub-rail{display:grid;grid-template-rows:repeat(3,1fr);gap:12px}.route-card{display:flex;align-items:center;gap:14px;min-height:119px;border:1px solid #415b5c;border-radius:12px;background:#142427;padding:16px;transition:transform .2s,border-color .2s,background .2s}.route-card:hover{transform:translateY(-3px);border-color:var(--accent);background:#193032}.route-logo{position:relative;display:grid;place-items:center;flex:none;height:54px;width:54px;border-radius:13px;background:var(--tint);border:1px solid var(--line);color:var(--accent);font-size:1.4rem;font-weight:700;overflow:hidden}.route-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#f3f7f4;padding:7px}.route-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.route-copy b{font-size:1.25rem;letter-spacing:-.045em;white-space:nowrap}.route-copy small{color:#a1b7b7;font-size:.82rem;white-space:nowrap}.route-copy em{color:var(--accent);font:11px 'DM Mono',monospace;font-style:normal;margin-top:4px}.route-arrow{margin-left:auto;color:var(--accent);font-size:1.2rem}.route-future{opacity:.7}.hub-core{border:1px solid var(--accent);border-radius:17px;background:radial-gradient(circle at 50% 18%,var(--tint),#101f22 70%);box-shadow:0 0 60px color-mix(in srgb,var(--accent) 13%,transparent),inset 0 0 40px #0005;padding:30px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:380px;position:relative;overflow:hidden}.hub-orbit{height:80px;width:80px;border-radius:50%;border:1px solid var(--accent);box-shadow:0 0 28px color-mix(in srgb,var(--accent) 38%,transparent);display:grid;place-items:center;margin-bottom:21px}.hub-glyph{color:var(--accent);font-size:3.2rem;line-height:1}.hub-label{font:12px 'DM Mono',monospace;color:var(--accent);letter-spacing:.12em}.hub-core h3{font-size:clamp(2.1rem,3vw,3.7rem);letter-spacing:-.08em;line-height:1.01;margin:15px 0 24px}.hub-core h3 span{color:var(--accent)}.hub-core-stats{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:25px}.hub-core-stats span{border:1px solid #4e6966;border-radius:4px;padding:7px;font:10px 'DM Mono',monospace;color:#b9d1ce}.hub-status{display:flex;gap:15px;flex-wrap:wrap;border:1px solid #344f50;border-radius:8px;padding:14px 16px;background:#101f21;font:11px 'DM Mono',monospace;color:#a8bebd;line-height:1.5}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.live{background:#6beab4;box-shadow:0 0 8px #6beab4}.status-dot.pending{background:#b6a173}.how-header{margin-top:76px}.how-header h3{font-size:clamp(2.3rem,4vw,4.7rem);letter-spacing:-.075em;line-height:1;margin:13px 0 26px}.how-header h3 em{font-style:normal;color:var(--accent)}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.how-grid a{border-top:2px solid var(--line);background:#122326;border-radius:0 0 10px 10px;padding:23px;display:flex;flex-direction:column;gap:16px;min-height:220px}.how-grid a:hover{border-color:var(--accent)}.how-grid small,.how-grid b{font:12px 'DM Mono',monospace;color:var(--accent)}.how-grid strong{font-size:1.65rem;letter-spacing:-.055em}.how-grid span{color:#adbfbe;line-height:1.5}.how-grid b{margin-top:auto}.hub-fine{font-size:.84rem!important;color:#90a9aa!important;max-width:1100px!important;margin-top:22px;line-height:1.6}.hub-fine a{color:var(--accent);text-decoration:underline}@media(max-width:1180px){.hub-board{grid-template-columns:minmax(180px,1fr) minmax(275px,1.2fr) minmax(180px,1fr);gap:13px}.hub-board:before,.hub-board:after{display:none}.route-card{padding:12px;gap:9px}.route-logo{height:42px;width:42px}.route-copy b{font-size:1.1rem}.route-copy small{font-size:.72rem}}@media(max-width:930px){.hub-board{grid-template-columns:1fr 1fr}.hub-core{grid-column:1/-1;grid-row:1;min-height:300px}.hub-rail{grid-template-rows:auto}.route-card{min-height:104px}.how-grid{grid-template-columns:1fr}.how-grid a{min-height:185px}}@media(max-width:600px){.hub-board{display:flex;flex-direction:column}.hub-core{order:-1}.hub-rail{display:grid;grid-template-rows:auto}.route-card{min-height:90px}.route-copy b{font-size:1.2rem}.route-copy small{font-size:.82rem}.hub-status{display:grid;gap:8px}.how-header{margin-top:54px}}
/* Dark treatment for venue favicons served on white tiles. */
.route-logo{background:#0d1d20;border-color:#395154}
.route-logo img{filter:none;background:#101d20;padding:9px}.route-card:has(img[src*="long-dark.svg"]) .route-logo img{background:#101d20;padding:6px}.route-card:has(img[src*="hyperliquid.png"]) .route-logo img{background:#082520;padding:6px}.route-future{opacity:1}.route-future .route-copy{opacity:.72}

/* One combined hub: existing launch routes and external swap tools. */
.hub-rail{grid-template-rows:repeat(5,minmax(0,1fr))}.hub-core{min-height:540px}.route-card{min-height:100px}.route-card:has(img[src*="jupiter-official.svg"]) .route-logo img,.route-card:has(img[src*="0x-official.svg"]) .route-logo img,.route-card:has(img[src*="lifi-mark.png"]) .route-logo img{background:#142427;padding:9px}.route-card:has(img[src*="pancakeswap-official.png"]) .route-logo img{background:#142427;padding:4px}.route-card:has(img[src*="lifi-mark.png"]) .route-logo img{padding:6px}.hub-status{margin-top:17px}@media(max-width:930px){.hub-rail{grid-template-rows:auto}.hub-core{min-height:310px}}@media(max-width:600px){.route-card{min-height:90px}}

.route-card[data-wallet-route]{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer}
.route-card:has(img[src*="metamask-official.png"]) .route-logo img{background:#142427;padding:6px}

.hub-orbit{overflow:hidden;background:#000}.hub-g-logo{display:block;width:72px;height:72px;object-fit:contain;border-radius:50%}
.hub-chart{position:absolute;right:17px;top:12%;width:44%;height:48%;pointer-events:none;opacity:.86;z-index:0;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end}.hub-chart svg{width:100%;height:100%;overflow:visible}.hub-chart-grid{fill:none;stroke:var(--accent);stroke-width:.6;opacity:.13}.hub-chart-area{fill:url(#hub-chart-fill);opacity:0;animation:hubArea 7s ease-in-out infinite}.hub-chart-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 7px var(--accent));animation:hubDraw 7s ease-in-out infinite}.hub-chart-end{fill:var(--accent);filter:drop-shadow(0 0 8px var(--accent));opacity:0;animation:hubEnd 7s ease-in-out infinite}.hub-chart-label{position:absolute;right:0;bottom:-14px;color:var(--accent);font:9px 'DM Mono',monospace;letter-spacing:.1em;opacity:.7;white-space:nowrap}.hub-core>:not(.hub-chart){position:relative;z-index:1}@keyframes hubDraw{0%,8%{stroke-dashoffset:100;opacity:.15}52%,87%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:100;opacity:.15}}@keyframes hubArea{0%,37%{opacity:0}57%,87%{opacity:1}100%{opacity:0}}@keyframes hubEnd{0%,49%{opacity:0}57%,87%{opacity:1}100%{opacity:0}}@media(max-width:930px){.hub-chart{width:46%;height:52%;top:10%}}@media(max-width:600px){.hub-chart{width:43%;height:160px;top:34px;right:15px;opacity:.72}.hub-chart-label{font-size:7px}.hub-core h3{max-width:100%}}@media(prefers-reduced-motion:reduce){.hub-chart-line{animation:none;stroke-dashoffset:0}.hub-chart-area{animation:none;opacity:1}.hub-chart-end{animation:none;opacity:1}}

.hub-core{overflow:visible}.hub-chart-escape{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 8px var(--accent));animation:hubEscape 7s ease-in-out infinite}.hub-chart-end{animation:hubEscapeEnd 7s ease-in-out infinite}@keyframes hubEscape{0%,50%{stroke-dashoffset:100;opacity:0}54%{opacity:1}76%,87%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:100;opacity:0}}@keyframes hubEscapeEnd{0%,73%{opacity:0}77%,87%{opacity:1}100%{opacity:0}}@media(max-width:600px){.hub-chart-escape,.hub-chart-end{transform:scale(.56);transform-origin:433px 16px}}@media(prefers-reduced-motion:reduce){.hub-chart-escape{animation:none;stroke-dashoffset:0}.hub-chart-end{animation:none;opacity:1}}
/* The rising line briefly knocks a notch out of the card rim. */
.hub-core .hub-fracture{position:absolute;top:-17px;right:-14px;width:92px;height:92px;pointer-events:none;z-index:3;opacity:0;animation:hubFracture 7s ease-in-out infinite}.hub-fracture:before,.hub-fracture:after{content:"";position:absolute;background:#0b1113;box-shadow:0 0 9px #0b1113}.hub-fracture:before{top:15px;right:17px;width:51px;height:5px;transform:rotate(-5deg)}.hub-fracture:after{top:16px;right:12px;width:5px;height:32px;transform:rotate(7deg)}.hub-fracture i{position:absolute;display:block;height:2px;width:25px;background:var(--accent);border-radius:3px;box-shadow:0 0 12px var(--accent);transform-origin:center;animation:hubShard 7s ease-out infinite}.hub-fracture i:nth-child(1){top:10px;right:48px;--tx:-15px;--ty:-20px;--rot:-35deg}.hub-fracture i:nth-child(2){top:17px;right:18px;width:19px;--tx:20px;--ty:-15px;--rot:46deg}.hub-fracture i:nth-child(3){top:31px;right:4px;width:16px;--tx:29px;--ty:8px;--rot:70deg}.hub-fracture i:nth-child(4){top:6px;right:7px;width:13px;--tx:6px;--ty:-25px;--rot:-60deg}@keyframes hubFracture{0%,55%{opacity:0}59%,75%{opacity:1}87%,100%{opacity:0}}@keyframes hubShard{0%,55%{opacity:0;transform:translate(0,0) rotate(0)}59%{opacity:1}74%{opacity:.85;transform:translate(var(--tx),var(--ty)) rotate(var(--rot))}87%,100%{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(var(--rot))}}@media(max-width:600px){.hub-core .hub-fracture{transform:scale(.65);transform-origin:top right}}@media(prefers-reduced-motion:reduce){.hub-core .hub-fracture{display:none}}
