:root{
  --bg:#0f1115;--panel:#171a21;--panel2:#1d212b;--line:#2a2f3a;--txt:#d6dae3;--txt2:#98a2b3;--accent:#4a9eff;--green:#3ddc84;
  font-family:"Noto Sans CJK SC","Microsoft YaHei","PingFang SC",system-ui,sans-serif;color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:radial-gradient(circle at 50% -15%,rgba(74,158,255,.12),transparent 38%),var(--bg);color:var(--txt)}
.shell{width:min(1120px,calc(100% - 40px));margin:auto}
.hero{padding:72px 0 38px}
.eyebrow{font:10px ui-monospace,monospace;letter-spacing:2.2px;color:var(--accent)}
h1{margin:15px 0 14px;font-size:clamp(22px,5.2vw,60px);line-height:1.06;letter-spacing:-2.2px;white-space:nowrap}
h1 em{color:var(--accent);font-style:normal}
.hero p{max-width:620px;margin:0;color:var(--txt2);font-size:14px;line-height:1.8}
.page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-bottom:42px}
.page-card{position:relative;display:flex;min-height:352px;flex-direction:column;padding:25px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel2) 84%,transparent),var(--panel));color:var(--txt);text-decoration:none;overflow:hidden;isolation:isolate;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease,background .3s ease}
.page-card::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 88% 8%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 42%);opacity:.55;transition:opacity .3s ease}
.page-card:is(a):hover,.page-card:is(a):focus-visible{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 75%,var(--line));box-shadow:0 16px 34px rgba(0,0,0,.24);outline:none}
.page-card:is(a):hover::before,.page-card:is(a):focus-visible::before{opacity:1}
.card-state{position:absolute;top:25px;right:25px;border:1px solid var(--line);border-radius:999px;padding:4px 9px;color:var(--txt2);font-size:10px}
.card-state.available{border-color:color-mix(in srgb,var(--green) 42%,var(--line));color:var(--green);background:color-mix(in srgb,var(--green) 7%,transparent)}
.page-card h2{max-width:calc(100% - 92px);margin:0;font-size:20px}
.card-visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:142px;margin:20px 0 17px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel2) 68%,transparent),color-mix(in srgb,var(--bg) 58%,transparent));overflow:hidden}
.card-visual::after{content:"";position:absolute;inset:auto 8% 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 52%,transparent),transparent)}
.hardware-visual{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:14px;padding:9px 24px}
.hardware-device{display:grid;min-width:0;grid-template-rows:82px auto;align-items:end;justify-items:center;text-align:center}
.hardware-device img{display:block;width:100%;height:82px;object-fit:contain;filter:drop-shadow(0 10px 11px rgba(0,0,0,.3))}
.hardware-device span{margin-top:4px;color:var(--txt2);font:9px ui-monospace,monospace;letter-spacing:.7px}
.hardware-more{align-self:center;justify-self:center;color:var(--accent);font-size:25px;letter-spacing:2px;transform:translateY(-4px)}
.curve-visual{padding:10px 14px 22px}
.curve-visual svg{width:100%;height:100px;overflow:visible}
.curve-visual span{position:absolute;left:16px;bottom:7px;color:var(--txt2);font:8px ui-monospace,monospace;letter-spacing:1px}
.chart-grid path{fill:none;stroke:var(--line);stroke-width:1}.curve-one,.curve-two{fill:none;vector-effect:non-scaling-stroke}.curve-one{stroke:var(--accent);stroke-width:2.4}.curve-two{stroke:var(--green);stroke-width:1.7;opacity:.8}
.format-visual{position:relative;padding:0;cursor:crosshair}
.format-nodes{position:absolute;inset:0}
.format-nodes span{position:absolute;z-index:2;display:grid;place-items:center;width:44px;height:44px;border:1px solid color-mix(in srgb,var(--accent) 62%,var(--line));border-radius:50%;background:color-mix(in srgb,var(--panel2) 82%,transparent);color:var(--accent);font:700 10px ui-monospace,monospace;box-shadow:inset 6px 7px 12px rgba(255,255,255,.035),0 7px 15px rgba(0,0,0,.2);will-change:transform}
.format-nodes span:nth-child(1){left:5%;top:12px}.format-nodes span:nth-child(2){left:29%;top:78px}.format-nodes span:nth-child(3){left:24%;top:16px}.format-nodes span:nth-child(4){left:63%;top:76px}.format-nodes span:nth-child(5){left:49%;top:9px}.format-nodes span:nth-child(6){left:8%;top:80px}.format-nodes span:nth-child(7){left:76%;top:19px}.format-nodes span:nth-child(8){left:88%;top:80px}
.format-visual.is-physics .format-nodes span{left:0;top:0}
.format-nodes span.is-kicked{animation:bubble-flash .24s ease-out}
@keyframes bubble-flash{50%{border-color:#fff;box-shadow:inset 5px 6px 12px rgba(255,255,255,.16),0 0 18px color-mix(in srgb,var(--accent) 72%,transparent)}}
.protocol-visual{gap:8px;padding:8px 15px}.protocol-visual span{display:grid;place-items:center;padding:5px;border:1px solid currentColor;font:700 10px/1.05 system-ui,sans-serif;text-align:center}.protocol-visual span:nth-of-type(1),.protocol-visual span:nth-of-type(2),.protocol-visual span:nth-of-type(5){width:56px;height:56px;border-radius:50%;writing-mode:vertical-rl;text-orientation:upright;letter-spacing:2px}.protocol-visual span:nth-of-type(3){width:38px;height:86px;border-radius:999px;writing-mode:vertical-rl;text-orientation:upright;letter-spacing:2px}.protocol-visual span:nth-of-type(4){width:76px;height:42px;border-radius:999px;writing-mode:horizontal-tb;letter-spacing:1px}.protocol-visual i{position:relative;width:10px;height:1px;background:currentColor;opacity:.55}.protocol-visual i::after{content:"";position:absolute;right:-1px;top:-3px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.network-visual span{position:absolute;display:grid;place-items:center;width:53px;height:53px;border:1px solid currentColor;border-radius:50%;font:700 11px ui-monospace,monospace}.network-visual span:nth-child(1){left:18%;top:22px}.network-visual span:nth-child(2){right:18%;top:22px}.network-visual span:nth-child(3){bottom:17px}.network-visual b{width:46%;height:52%;border-left:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);opacity:.35}
.links-visual{gap:14px}.links-visual span{padding:12px 14px;border:1px solid currentColor;border-radius:999px;font:700 10px ui-monospace,monospace}.links-visual i{font-style:normal;font-size:18px;opacity:.7}
.about-visual{gap:14px}.about-visual img{width:72px;height:72px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px var(--line)}.about-visual>span{font-size:17px;font-weight:750}.about-visual small{display:block;margin-top:5px;color:var(--txt2);font:8px ui-monospace,monospace;letter-spacing:1px}
.page-card p{max-width:520px;margin:0;color:var(--txt2);font-size:12px;line-height:1.75}
.card-action{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:17px;color:var(--accent);font-size:12px;font-weight:650}
.card-action b{font-size:16px;transition:transform .2s ease}.page-card:is(a):hover .card-action b{transform:translateX(4px)}
.page-card.pending{filter:saturate(.12);background:#17191f;border-color:#292c34;color:#858c98;cursor:not-allowed}
.page-card.pending::before{display:none}.page-card.pending .card-state,.page-card.pending p,.page-card.pending .card-action{color:#858c98}.page-card.pending .card-action{font-weight:500}
footer{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;padding:4px 20px 30px;color:var(--txt2);font-size:10px}
.site-version{min-height:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
.site-version:empty{display:none}
.site-version #hcommit:not(:empty)+#hmodtime:not(:empty)::before{content:" ";}
html[data-skin="dark"] .page-card{background:linear-gradient(145deg,#2b2e3b,#242732)}
html[data-skin="dark"] .page-card.pending{background:#20222a;border-color:#333642;color:#858c98}
html[data-skin="light"] body{background:radial-gradient(circle at 50% -15%,rgba(11,99,206,.08),transparent 38%),var(--bg)}
html[data-skin="light"] .page-card{background:linear-gradient(145deg,#fff,#f8fafc);box-shadow:0 2px 8px rgba(31,36,48,.05)}
html[data-skin="light"] .page-card:is(a):hover,html[data-skin="light"] .page-card:is(a):focus-visible{box-shadow:0 14px 30px rgba(31,36,48,.12)}
html[data-skin="light"] .page-card.pending{background:#eef1f5;border-color:#d7dce4;color:#596579}
html[data-skin="light"] .page-card.pending :is(p,.card-state,.card-action){color:#596579}
html[data-skin="light"] .card-visual{background:linear-gradient(180deg,#f8fafc,#eef3f8)}
@media(max-width:720px){
  .shell{width:calc(100% - 24px)}.hero{padding:46px 0 26px}h1{font-size:clamp(21px,6.2vw,28px);letter-spacing:-1px}.page-grid{grid-template-columns:1fr;gap:10px}.page-card{min-height:330px;padding:22px}.card-state{top:22px;right:22px}.card-visual{min-height:132px}.hardware-visual{gap:8px;padding:9px 14px}.hardware-device{grid-template-rows:76px auto}.hardware-device img{height:76px}.protocol-visual{gap:4px;padding:7px}.protocol-visual span{font-size:9px}.protocol-visual span:nth-of-type(1),.protocol-visual span:nth-of-type(2),.protocol-visual span:nth-of-type(5){width:46px;height:46px}.protocol-visual span:nth-of-type(3){width:32px;height:78px}.protocol-visual span:nth-of-type(4){width:60px;height:38px}.protocol-visual i{width:6px}.format-nodes span:nth-child(2){top:69px}.format-nodes span:nth-child(4){top:66px}.format-nodes span:nth-child(6){top:72px}.format-nodes span:nth-child(8){top:74px}.format-visual.is-physics .format-nodes span{top:0}
}
@media(prefers-reduced-motion:reduce){.page-card,.page-card::before,.card-action b{transition:none!important}.page-card:is(a):hover,.page-card:is(a):focus-visible{transform:none}}
