/* Ledgerlyne — standalone product site
   Palette carried forward from the approved Ledgerlyne page. */
:root{
  --bg:#06101B;--panel:#091A2A;--cyan:#1AE0FF;--violet:#7566FF;--pink:#FF2ED6;
  --green:#34D399;--orange:#FB923C;--text:#F4FAFF;--muted:#9CB2CB;--line:rgba(26,224,255,.16)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
[id]{scroll-margin-top:110px}
body{margin:0;font-family:Inter,-apple-system,Segoe UI,Arial,sans-serif;color:var(--text);
  overflow-x:hidden;
  background:radial-gradient(circle at 82% -4%,rgba(117,102,255,.20),transparent 34%),radial-gradient(circle at 6% 20%,rgba(255,46,214,.10),transparent 28%),var(--bg)}
a{color:inherit;text-decoration:none}
a.tl{color:var(--cyan)}
a.tl:hover{text-decoration:underline}
img,svg{max-width:100%}
.wrap{max-width:1180px;margin:auto;padding:0 26px}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:12px;top:12px;z-index:200;background:#0B2036;padding:10px 14px;border-radius:10px}

/* ---------- header ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(6,16,27,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav>.wrap{position:static}
.navin{min-height:76px;display:flex;align-items:center;gap:22px;padding:12px 0}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto}
.brand b{font:700 20px 'Space Grotesk',sans-serif;letter-spacing:-.01em;display:block;line-height:1}
.brand small{display:block;color:var(--muted);letter-spacing:.16em;font-size:9.5px;margin-top:5px}
.mark{width:42px;height:42px;flex:0 0 42px;border-radius:12px;border:1px solid rgba(26,224,255,.55);
  display:grid;place-items:center;box-shadow:0 0 22px rgba(26,224,255,.18);background:rgba(26,224,255,.05)}
.links{display:flex;gap:22px;align-items:center;font-size:14px;font-weight:600;color:#D6E5F5}
.links a:hover{color:var(--cyan)}
.links a[aria-current="page"]{color:var(--cyan)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:13px;padding:14px 20px;
  font-weight:800;font-size:15px;border:1px solid rgba(255,255,255,.14);transition:.2s;text-align:center;cursor:pointer}
.btn.primary{background:linear-gradient(90deg,#1AA6FF,#7566FF,#FF2ED6);box-shadow:0 0 26px rgba(117,102,255,.26);border-color:transparent}
.btn.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn.secondary{background:rgba(255,255,255,.04)}
.btn.secondary:hover{border-color:rgba(26,224,255,.5)}
.btn.small{padding:11px 15px;font-size:13.5px}
.nav .btn{padding:12px 16px;font-size:13.5px;white-space:nowrap}
.menu{display:none}
.menu>summary{list-style:none;cursor:pointer;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.16);
  display:grid;place-items:center;background:rgba(255,255,255,.04)}
.menu>summary::-webkit-details-marker{display:none}
.menu .bars{display:grid;gap:4px}
.menu .bars i{display:block;width:18px;height:2px;background:#D6E5F5;border-radius:2px}
.menu[open]>summary{border-color:rgba(26,224,255,.5)}
.menu[open] .mlinks{position:absolute;left:0;right:0;top:100%;width:100%;background:#07131F;border-bottom:1px solid rgba(255,255,255,.1);
  padding:10px 26px 20px;display:grid;gap:2px;box-shadow:0 24px 50px rgba(0,0,0,.5)}
.mlinks a{padding:13px 4px;font-weight:600;font-size:15px;border-bottom:1px solid rgba(255,255,255,.06)}
.mlinks a:last-child{border-bottom:0}
.mlinks a[aria-current="page"]{color:var(--cyan)}

/* ---------- hero ---------- */
.hero{padding:84px 0 64px;border-bottom:1px solid rgba(255,255,255,.06)}
.heroGrid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.eyebrow{color:var(--cyan);letter-spacing:.2em;font-size:11.5px;font-weight:800;line-height:1.6}
h1.grad{font:700 clamp(34px,5vw,62px)/1.05 'Space Grotesk',sans-serif;letter-spacing:-.04em;margin:18px 0 0;
  background:linear-gradient(92deg,#8FF4FF,#9C8CFF 52%,#FF88E6);-webkit-background-clip:text;background-clip:text;color:transparent}
.tag{font:600 clamp(18px,2.1vw,25px)/1.35 'Space Grotesk',sans-serif;margin:18px 0 14px;color:#EAF4FF}
p.lede{color:#B4C6DA;font-size:17px;line-height:1.72;margin:0;max-width:620px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.facts{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px;color:#A9BED4;font-size:13px}
.facts span{display:block}
.facts span:before{content:"—";color:var(--cyan);margin-right:8px}
.hero.slim{padding:70px 0 54px}
.hero.slim .tag{max-width:760px}

/* ---------- diagram ---------- */
.diagram{border:1px solid var(--line);border-radius:26px;padding:26px;background:linear-gradient(165deg,rgba(12,32,52,.95),rgba(6,15,27,.96));
  box-shadow:0 24px 70px rgba(0,0,0,.45)}
.diagram h3{font:700 15px 'Space Grotesk',sans-serif;margin:0 0 4px;letter-spacing:.02em}
.diagram .dsub{color:var(--muted);font-size:12.5px;margin:0 0 20px;line-height:1.6}
.devices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.device{border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px 10px;text-align:center;background:rgba(255,255,255,.03)}
.device b{display:block;font:700 13px 'Space Grotesk',sans-serif;margin-top:8px}
.device small{color:var(--muted);font-size:11px;display:block;line-height:1.4}
.dglyph{font-size:20px;color:var(--cyan);line-height:1}
.flow{display:grid;place-items:center;color:rgba(26,224,255,.65);font-size:20px;padding:12px 0 8px;letter-spacing:.4em}
.filecard{border:1px solid rgba(52,211,153,.4);border-radius:16px;padding:16px;background:rgba(52,211,153,.06)}
.filecard b{font:700 14px 'Space Grotesk',sans-serif;color:#B7F4DC;word-break:break-word}
.filecard p{margin:6px 0 0;font-size:12.5px;color:#A9C6BE;line-height:1.6}
.revnote{margin-top:14px;border-top:1px dashed rgba(255,255,255,.12);padding-top:14px;font-size:12.5px;color:var(--muted);line-height:1.65}

/* ---------- sections ---------- */
.section{padding:84px 0}
.section.tight{padding:62px 0}
.section.rule{border-top:1px solid rgba(255,255,255,.06)}
.kicker{color:var(--cyan);letter-spacing:.19em;font-size:11.5px;font-weight:800}
.section h2{font:700 clamp(26px,3.5vw,42px)/1.12 'Space Grotesk',sans-serif;letter-spacing:-.03em;margin:12px 0 16px}
.section h3.sub{font:700 clamp(20px,2.4vw,26px) 'Space Grotesk',sans-serif;margin:0 0 12px;letter-spacing:-.02em}
.section p.lead{color:var(--muted);font-size:16.5px;line-height:1.75;max-width:760px;margin:0}
.section p.lead+p.lead{margin-top:14px}
.center{text-align:center}
.center p.lead{margin:0 auto}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:36px}
.grid2>.card{display:flex;flex-direction:column}
.grid2>.card>.actions{margin-top:auto}
.card{border:1px solid var(--line);border-radius:20px;padding:26px;background:linear-gradient(180deg,rgba(11,27,44,.94),rgba(6,13,24,.94))}
.card:hover{border-color:rgba(26,224,255,.4)}
.ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font:700 15px 'Space Grotesk',sans-serif;
  border:1px solid rgba(26,224,255,.4);color:var(--cyan);margin-bottom:16px;background:rgba(26,224,255,.06)}
.ico.v{border-color:rgba(117,102,255,.45);color:#A79BFF;background:rgba(117,102,255,.08)}
.ico.p{border-color:rgba(255,46,214,.4);color:#FF8FE6;background:rgba(255,46,214,.07)}
.ico.g{border-color:rgba(52,211,153,.4);color:#6EE7B7;background:rgba(52,211,153,.07)}
.ico.o{border-color:rgba(251,146,60,.4);color:#FDBA74;background:rgba(251,146,60,.07)}
.card h3{font:700 19px 'Space Grotesk',sans-serif;margin:0 0 9px;letter-spacing:-.01em}
.card p{color:var(--muted);line-height:1.68;margin:0;font-size:14.5px}
.card p+p{margin-top:10px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start;margin-top:40px}
.split.wide{grid-template-columns:1.1fr .9fr;align-items:center}
.panel{border:1px solid rgba(255,255,255,.09);border-radius:24px;padding:32px;background:linear-gradient(150deg,rgba(12,28,48,.9),rgba(6,12,23,.94))}
.panel h3{font:700 23px 'Space Grotesk',sans-serif;margin:0 0 12px;letter-spacing:-.02em}
.panel p{color:var(--muted);line-height:1.72;margin:0 0 6px;font-size:15px}
.panel .note{margin-top:16px;font-size:13.5px;color:#8FA6BE}
.list{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.list li{position:relative;padding-left:26px;font-size:14.5px;color:#D3E1F0;line-height:1.6}
.list li:before{content:"›";position:absolute;left:6px;top:-1px;color:var(--cyan);font-weight:800}
.list.no li:before{content:"×";color:#93A7BD}
.list.yes li:before{content:"✓";color:var(--green);font-size:13px;top:1px}
.list.two{grid-template-columns:1fr 1fr}

/* ---------- steps ---------- */
.steps{counter-reset:s;margin:38px 0 0;padding:0;list-style:none;display:grid;gap:16px}
.steps li{counter-increment:s;position:relative;padding:22px 24px 22px 66px;border:1px solid rgba(255,255,255,.09);
  border-radius:18px;background:rgba(255,255,255,.025)}
.steps li:before{content:counter(s);position:absolute;left:22px;top:22px;width:28px;height:28px;border-radius:9px;
  display:grid;place-items:center;font:700 13px 'Space Grotesk',sans-serif;color:var(--cyan);
  border:1px solid rgba(26,224,255,.4);background:rgba(26,224,255,.07)}
.steps b{display:block;font:700 16.5px 'Space Grotesk',sans-serif;margin-bottom:6px}
.steps p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.68}

/* ---------- mockups ---------- */
.mock{border:1px solid var(--line);border-radius:22px;background:linear-gradient(165deg,rgba(12,32,52,.95),rgba(6,15,27,.97));
  box-shadow:0 24px 70px rgba(0,0,0,.45);overflow:hidden}
.mockbar{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
.mockbar b{font:700 13px 'Space Grotesk',sans-serif;letter-spacing:.02em}
.mockbar span{color:var(--muted);font-size:11.5px;margin-left:auto;text-align:right}
.mockbody{padding:6px 4px 10px;overflow-x:auto;-webkit-overflow-scrolling:touch}
table.led{width:100%;border-collapse:collapse;font-size:12.5px;min-width:460px}
table.led.compact{min-width:320px}
table.led caption{caption-side:top;text-align:left;padding:12px 16px 8px;color:var(--muted);font-size:11.5px;letter-spacing:.1em;font-weight:700}
table.led th{text-align:left;padding:9px 16px;color:#8FA6BE;font-size:10.5px;letter-spacing:.12em;font-weight:800;
  border-bottom:1px solid rgba(255,255,255,.1);white-space:nowrap}
table.led td{padding:9px 16px;border-bottom:1px solid rgba(255,255,255,.05);color:#D3E1F0;white-space:nowrap}
table.led td.num,table.led th.num{text-align:right;font-variant-numeric:tabular-nums}
table.led tr.total td{border-top:1px solid rgba(26,224,255,.3);border-bottom:0;font-weight:800;color:#EAF4FF}
table.led td.pos{color:#6EE7B7}
table.led td.neg{color:#FFB4B4}
.mockfoot{padding:12px 18px;border-top:1px solid rgba(255,255,255,.08);color:#8FA6BE;font-size:11.5px;line-height:1.6}

/* ---------- pricing ---------- */
.pricing{max-width:720px;margin:44px auto 0;border:1px solid rgba(26,224,255,.35);border-radius:26px;padding:38px;
  background:linear-gradient(150deg,rgba(11,34,56,.95),rgba(14,10,38,.96));box-shadow:0 0 50px rgba(26,224,255,.1)}
.badge{display:inline-block;padding:7px 12px;border-radius:999px;background:rgba(26,224,255,.12);color:var(--cyan);
  font-size:11px;font-weight:800;letter-spacing:.11em}
.price{font:700 clamp(40px,7vw,62px) 'Space Grotesk',sans-serif;margin:16px 0 0;line-height:1}
.price span{font:500 17px Inter,sans-serif;color:var(--muted)}
.pricing .list{grid-template-columns:1fr 1fr;margin-top:22px}
.fine{font-size:12.5px;color:#8398AF;line-height:1.75;margin-top:18px}
.fine a{color:var(--cyan)}
.fine+.fine{margin-top:12px}

/* ---------- availability ---------- */
.avail{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}
.avail.three{grid-template-columns:repeat(3,1fr)}
.avail>div{border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:24px;background:rgba(255,255,255,.025)}
.avail b{font:700 17px 'Space Grotesk',sans-serif;display:block;margin-bottom:8px}
.avail p{color:var(--muted);font-size:14px;line-height:1.65;margin:0}
.avail p+p{margin-top:9px}
.status{font-size:10.5px;font-weight:800;letter-spacing:.12em;padding:5px 9px;border-radius:999px;display:inline-block;margin-bottom:12px;line-height:1.4}
.status.on{background:rgba(52,211,153,.12);color:#6EE7B7}
.status.off{background:rgba(255,255,255,.06);color:#9CB2CB}
.status.soon{background:rgba(117,102,255,.14);color:#A79BFF}

/* ---------- notices ---------- */
.notice{border:1px solid rgba(251,146,60,.38);border-left-width:4px;border-radius:16px;padding:22px 24px;
  background:rgba(251,146,60,.07);margin-top:32px}
.notice.info{border-color:rgba(26,224,255,.35);background:rgba(26,224,255,.05)}
.notice.plain{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.03)}
.notice b{display:block;font:700 16.5px 'Space Grotesk',sans-serif;margin-bottom:8px}
.notice p{margin:0;color:#C6D6E7;font-size:14.5px;line-height:1.72}
.notice p+p{margin-top:10px}
.notice ol,.notice ul{margin:12px 0 0;padding-left:22px;color:#C6D6E7;font-size:14.5px;line-height:1.75}

/* ---------- faq ---------- */
.faq{max-width:900px;margin:36px auto 0}
.faq details{border-bottom:1px solid rgba(255,255,255,.09);padding:18px 4px}
.faq summary{cursor:pointer;font-weight:700;font-size:16.5px;font-family:'Space Grotesk',sans-serif;line-height:1.45}
.faq p{color:var(--muted);line-height:1.75;font-size:15px}
.faq p:last-child{margin-bottom:0}

/* ---------- prose (legal) ---------- */
.prose{max-width:820px;margin:0 auto;color:#C9D6E7;line-height:1.85;font-size:15.5px}
.prose h2{font:700 21px 'Space Grotesk',sans-serif;color:#EAF4FF;margin:38px 0 10px;letter-spacing:-.01em}
.prose p{margin:0 0 14px}
.prose a{color:var(--cyan)}
.prose a:hover{text-decoration:underline}
.eff{color:#8FA6BE;font-size:13.5px;margin:14px 0 0}

/* ---------- cta + footer ---------- */
.cta{max-width:1060px;margin:30px auto 88px;border:1px solid rgba(117,102,255,.34);border-radius:26px;padding:48px 32px;text-align:center;
  background:radial-gradient(circle at 20% 25%,rgba(255,46,214,.12),transparent 34%),radial-gradient(circle at 82% 20%,rgba(26,224,255,.12),transparent 32%),#08182A}
.cta h2{font:700 clamp(25px,3.6vw,38px) 'Space Grotesk',sans-serif;margin:14px 0 10px;letter-spacing:-.03em}
.cta p{color:var(--muted);margin:0 auto 26px;max-width:600px;line-height:1.72}
.cta .actions{justify-content:center}
.footer{border-top:1px solid rgba(255,255,255,.08);padding:38px 0 52px;color:#8399B0;font-size:13px}
.footgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.footgrid h4{font:700 11px 'Space Grotesk',sans-serif;letter-spacing:.16em;color:#B4C6DA;margin:0 0 14px}
.footgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footgrid a:hover{color:var(--cyan)}
.footnote{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.07);display:flex;gap:16px;
  justify-content:space-between;flex-wrap:wrap;font-size:12.5px;line-height:1.7}
.footnote p{margin:0;max-width:660px}

/* ---------- responsive ---------- */
@media(max-width:1020px){
  .avail{grid-template-columns:1fr 1fr}
  .footgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:960px){
  .links,.nav .btn.nav-cta{display:none}
  .menu{display:block}
  .heroGrid{grid-template-columns:1fr;gap:36px}
  .grid3{grid-template-columns:1fr 1fr}
  .split,.split.wide{grid-template-columns:1fr}
  .pricing .list{grid-template-columns:1fr}
}
@media(max-width:700px){
  .grid3,.grid2,.avail,.avail.three,.list.two{grid-template-columns:1fr}
}
@media(max-width:640px){
  .wrap{padding:0 18px}
  .mlinks{padding:10px 18px 20px}
  .hero{padding:52px 0 44px}
  .hero.slim{padding:44px 0 40px}
  .section{padding:56px 0}
  .section.tight{padding:48px 0}
  .actions .btn{width:100%}
  .pricing{padding:26px 20px}
  .panel{padding:24px 20px}
  .diagram{padding:20px 16px}
  .devices{grid-template-columns:1fr}
  .steps li{padding:20px 18px 20px 58px}
  .steps li:before{left:16px;top:20px}
  .notice{padding:20px 18px}
  .cta{margin:16px 18px 56px;padding:32px 20px;border-radius:22px}
  table.led{font-size:11.5px;min-width:430px}
  table.led.compact{min-width:275px}
  table.led th,table.led td{padding:8px 10px}
  table.led th{letter-spacing:.05em}
  table.led caption{padding:12px 12px 8px;letter-spacing:.06em}
  /* the register has too many columns for a phone — stack each row instead of clipping it */
  table.led.reg{display:block;min-width:0}
  table.led.reg caption{display:block}
  table.led.reg thead{display:none}
  table.led.reg tbody,table.led.reg tr{display:block;width:100%}
  table.led.reg tr{padding:10px 12px 12px;border-bottom:1px solid rgba(255,255,255,.06)}
  table.led.reg td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
    padding:3px 0;border:0;white-space:normal;text-align:right}
  table.led.reg td:before{content:attr(data-label);color:#8FA6BE;font-size:10px;letter-spacing:.1em;
    font-weight:800;text-transform:uppercase;text-align:left;flex:0 0 auto}
  table.led.reg tr.total{border-bottom:0;border-top:1px solid rgba(26,224,255,.3)}
  table.led.reg tr.total td[colspan]{display:none}
  .mockbody:has(table.reg){overflow-x:visible}
  .mockbar,.mockfoot{padding:12px 14px}
  .mockbar{flex-wrap:wrap;gap:4px}
  .mockbar span{margin-left:0;text-align:left;width:100%}
  .brand small{letter-spacing:.12em}
  .footgrid{grid-template-columns:1fr;gap:24px}
}
@media(max-width:400px){.brand small{display:none}.brand b{font-size:18px}}
