/* abeldev.org — extracted from inline; edit here. */
    :root{
      --bg:#050507; --bg-elevated:#0c0c10; --bg-card:#0a0a0e; --border:#16161c; --border-strong:#25252e;
      --text:#f5f5f7; --text-muted:#94949f; --text-subtle:#5a5a66;
      --accent:#60d4ff; --accent-dim:#38bdf8; --accent-2:#b794f6; --accent-glow:rgba(96,212,255,0.18); --success:#4ade80;
      --display:'Space Grotesk',-apple-system,system-ui,sans-serif;
      --sans:'Inter',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
      --mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
      --ease-out:cubic-bezier(0.16,1,0.3,1);
    }
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{background:var(--bg);scroll-behavior:smooth}
    body{font-family:var(--sans);color:var(--text);background:var(--bg);line-height:1.6;min-height:100vh;
      background-image:radial-gradient(900px 520px at 12% -5%,rgba(96,212,255,.06),transparent 60%),radial-gradient(820px 520px at 100% 8%,rgba(183,148,246,.05),transparent 55%);}
    .grid-bg{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
      background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);
      background-size:48px 48px;mask-image:radial-gradient(circle at 50% 20%,#000,transparent 80%);}
    .container{max-width:1040px;margin:0 auto;padding:0 24px;position:relative;z-index:2}
    .sysbar{font-family:var(--mono);font-size:11px;color:var(--text-subtle);letter-spacing:.06em;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:8px 24px;position:relative;z-index:3}
    .sysbar .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 6px var(--success);margin-right:6px}
    .sysbar .sep{opacity:.4;margin:0 8px}
    nav{border-bottom:1px solid var(--border);position:relative;z-index:3}
    .nav-inner{max-width:1040px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}
    .brand{font-family:var(--mono);font-size:14px;font-weight:500;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:10px}
    .brand-mark{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px}
    .brand-mark img,.brand-mark svg{width:100%;height:100%;display:block}
    .nav-links{display:flex;gap:24px;list-style:none}
    .nav-links a{color:var(--text-muted);text-decoration:none;font-size:13.5px;font-weight:500;transition:color .2s}
    .nav-links a:hover,.nav-links a.active{color:var(--text)}
    .nav-cta{font-family:var(--mono);font-size:12.5px;font-weight:500;color:var(--accent);text-decoration:none;border:1px solid var(--border-strong);border-radius:8px;padding:8px 14px;transition:border-color .2s,box-shadow .2s}
    .nav-cta:hover{border-color:var(--accent);box-shadow:0 0 16px -4px var(--accent)}
    header.page{padding:64px 0 28px;max-width:760px}
    .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin-bottom:14px}
    h1{font-family:var(--display);font-size:clamp(36px,6vw,60px);font-weight:700;line-height:1.02;letter-spacing:-.02em;margin-bottom:18px}
    .lede{color:var(--text-muted);font-size:18.5px;line-height:1.65}
    .lede b{color:var(--text);font-weight:600}
    /* capabilities */
    .caps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:38px 0 8px}
    @media(max-width:760px){.caps{grid-template-columns:1fr}}
    .cap{border:1px solid var(--border);border-radius:12px;padding:18px;background:linear-gradient(180deg,var(--bg-card),#08080b)}
    .cap h2{font-family:var(--display);font-size:16px;margin-bottom:6px}
    .cap p{font-size:13.5px;color:var(--text-muted);line-height:1.55}
    .stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
    .chip{font-family:var(--mono);font-size:11.5px;color:var(--text-muted);border:1px solid var(--border-strong);border-radius:999px;padding:5px 11px}
    .secbar{display:flex;align-items:center;gap:14px;margin:60px 0 24px}
    .secbar .ln{height:1px;background:var(--border-strong);flex:1}
    .secbar span{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle)}
    /* work cards */
    .work{display:grid;grid-template-columns:1fr 1fr;gap:18px}
    @media(max-width:760px){.work{grid-template-columns:1fr}}
    .card{display:block;text-decoration:none;color:inherit;border:1px solid var(--border-strong);border-radius:14px;overflow:hidden;background:linear-gradient(180deg,var(--bg-card),#08080b);transition:transform .18s var(--ease-out),border-color .18s,box-shadow .25s}
    .card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 18px 50px -24px var(--accent)}
    .card .thumb{height:150px;position:relative;border-bottom:1px solid var(--border);overflow:hidden;display:grid;place-items:center}
    .thumb.site{background:radial-gradient(500px 200px at 50% 0%,rgba(96,212,255,.18),transparent 70%),#070709}
    .thumb.signal{background:radial-gradient(500px 200px at 50% 0%,rgba(183,148,246,.18),transparent 70%),#070709}
    .thumb .big{font-family:var(--display);font-weight:700;font-size:30px;letter-spacing:-.02em}
    .thumb .big .a{color:var(--accent)} .thumb .big .p{color:var(--accent-2)}
    .thumb .mini{position:absolute;inset:0;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:22px 22px;mask-image:radial-gradient(circle at 50% 40%,#000,transparent 75%)}
    .card .body{padding:18px}
    .card .klabel{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:8px;display:flex;justify-content:space-between}
    .card .klabel .live{color:var(--success)}
    .card h2{font-family:var(--display);font-size:19px;margin-bottom:7px}
    .card p{font-size:14px;color:var(--text-muted);line-height:1.55}
    .card .tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px}
    .card .tags span{font-family:var(--mono);font-size:10.5px;color:var(--text-subtle);border:1px solid var(--border);border-radius:6px;padding:3px 8px}
    .card .go{margin-top:14px;font-family:var(--mono);font-size:12.5px;color:var(--accent)}
    /* placeholder card */
    .card.soon{border-style:dashed;cursor:default}
    .card.soon:hover{transform:none;border-color:var(--border-strong);box-shadow:none}
    .card.soon .body{display:flex;flex-direction:column;justify-content:center;min-height:150px}
    .card.soon h2{color:var(--text-muted)}
    /* cta */
    .cta{margin:64px 0 20px;border:1px solid var(--border-strong);border-radius:16px;padding:34px;text-align:center;background:radial-gradient(600px 200px at 50% 0%,rgba(96,212,255,.08),transparent 70%),linear-gradient(180deg,var(--bg-card),#08080b)}
    .cta h2{font-family:var(--display);font-size:26px;margin-bottom:8px}
    .cta p{color:var(--text-muted);margin-bottom:18px}
    .btn{display:inline-block;font-family:var(--mono);font-size:13.5px;font-weight:500;color:#03121a;background:var(--accent);border-radius:9px;padding:12px 22px;text-decoration:none;transition:transform .12s,box-shadow .2s}
    .btn:hover{transform:translateY(-1px);box-shadow:0 8px 26px -8px var(--accent)}
    footer{border-top:1px solid var(--border);padding:30px 0;margin-top:40px;position:relative;z-index:2}
    .foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:var(--mono);font-size:11.5px;color:var(--text-subtle)}
    .foot a{color:var(--text-muted);text-decoration:none}.foot a:hover{color:var(--accent)}
    @media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
      body{cursor:none}
    #bg-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;opacity:.5;pointer-events:none}
    .ambient{position:fixed;pointer-events:none;z-index:0;opacity:.5}
    .ambient-1{top:-10%;left:20%;width:600px;height:600px;background:radial-gradient(circle, var(--accent) 0%, transparent 70%);animation:drift1 22s ease-in-out infinite}
    .ambient-2{top:40%;right:-10%;width:500px;height:500px;background:radial-gradient(circle, var(--accent-2) 0%, transparent 70%);opacity:.32;animation:drift2 28s ease-in-out infinite}
    @keyframes drift1{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,60px)}}
    @keyframes drift2{0%,100%{transform:translate(0,0)}50%{transform:translate(-60px,40px)}}
    .spotlight{position:fixed;width:600px;height:600px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,var(--accent-glow) 0%,transparent 60%);transform:translate(-50%,-50%);transition:opacity .3s;mix-blend-mode:screen;will-change:transform}
    .cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;will-change:transform;transition:opacity .2s}
    .cursor-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px var(--accent)}
    .cursor-ring{width:32px;height:32px;border:1px solid var(--accent);border-radius:50%;transform:translate(-50%,-50%);transition:transform .18s var(--ease-out),width .2s,height .2s,opacity .2s;opacity:.6}
    .cursor-ring.hover{width:56px;height:56px;background:var(--accent-glow)}
    @media (hover:none),(pointer:coarse){body{cursor:auto}.cursor-dot,.cursor-ring,.spotlight{display:none}}
    @media (prefers-reduced-motion: reduce){#bg-canvas,.ambient{display:none}}
  