@font-face{
  font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/fonts/ibm-plex-mono-400.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/fonts/ibm-plex-mono-500.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fonts/ibm-plex-mono-600.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';font-style:normal;font-weight:700;font-display:swap;
  src:url('/assets/fonts/ibm-plex-mono-700.woff2') format('woff2');
}
:root{
  --bg:#060a08; --panel:#0c1410; --panel-2:#0a100c;
  --green:#33ff99; --green-dim:rgba(51,255,153,.14); --green-line:#173626;
  --text:#e7fbef; --muted:#7c9c8c; --line:#152019;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  background:var(--bg);color:var(--text);font-family:var(--mono);
  font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;
  background-image:radial-gradient(circle at 15% 0%, rgba(51,255,153,.06), transparent 45%);
}
::selection{background:var(--green);color:#04140c}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible{outline:1px solid var(--green);outline-offset:3px}
.wrap{max-width:640px;margin:0 auto;padding:56px 24px 72px}

.path{font-size:13px;color:var(--muted);margin-bottom:16px;letter-spacing:.02em}
.path b{color:var(--green);font-weight:500}
.path .blink{display:inline-block;width:8px;color:var(--green);animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

.nav{font-size:13px;color:var(--muted);margin-bottom:32px}
.nav a{color:var(--muted)}
.nav a:hover{color:var(--green)}

.hero{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.avatar{
  width:64px;height:64px;border-radius:50%;flex:none;
  border:1px solid var(--green-line);background:var(--panel);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:18px;color:var(--green);
  overflow:hidden;
}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}

h1{
  font-weight:700;font-size:clamp(26px,7vw,34px);line-height:1.15;letter-spacing:-.01em;
  text-shadow:0 0 8px rgba(51,255,153,.12);
}
.tag{font-size:15px;color:var(--green);margin:14px 0 20px;max-width:48ch}
.intro{color:#c7ded0;margin-bottom:32px;max-width:58ch}

.cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 22px;border:1px solid var(--green);border-radius:6px;
  color:var(--green);font-weight:600;font-size:15px;margin-bottom:48px;
  transition:background .15s,color .15s,box-shadow .15s;
}
.cta:hover{
  background:var(--green);color:#04140c;text-decoration:none;
  box-shadow:0 0 12px rgba(51,255,153,.2);
}
.cta .arrow{transition:transform .15s}
.cta:hover .arrow{transform:translateX(3px)}

h2.label{font-size:12px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px}
.section{margin-bottom:44px}

.fit-list{list-style:none;display:grid;gap:10px;margin-bottom:16px}
.fit-list li{padding-left:24px;position:relative;color:#c7ded0;font-size:14.5px;max-width:56ch}
.fit-list li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}
.fit-note{color:var(--muted);font-size:13.5px;max-width:56ch}

.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:420px){.stats{grid-template-columns:1fr}}
.stat{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:16px 16px}
.stat .num{font-weight:700;font-size:18.5px;color:var(--green);line-height:1.25;display:block;margin-bottom:6px}
.stat .d{color:var(--muted);font-size:12.5px;line-height:1.5}

.measure{border-left:2px solid var(--green-line);padding-left:16px;max-width:56ch}
.measure .not{color:var(--muted);font-size:13.5px;margin-bottom:8px;text-decoration:line-through;text-decoration-color:var(--line)}
.measure .yes{color:var(--text);font-size:15px}

.doors{display:grid;gap:12px;list-style:none;margin-bottom:16px}
.door{border:1px solid var(--line);background:var(--panel);border-radius:8px;transition:border-color .15s,background .15s}
.door:hover{border-color:var(--green-line);background:var(--panel-2)}
.door>a{display:block;padding:16px 18px;text-decoration:none;color:var(--text)}
.door>a:hover{text-decoration:none}
.door .k{font-size:11.5px;color:var(--muted);display:block;margin-bottom:4px;letter-spacing:.04em}
.door .t{font-weight:600;font-size:17px;color:var(--text)}
.door .t .go{color:var(--green)}
.door .d{color:var(--muted);font-size:13.5px;margin-top:4px}

.signup{
  border:1px solid var(--line);background:var(--panel);border-radius:8px;
  padding:20px 18px;margin-bottom:40px;
}
.signup p{color:var(--muted);font-size:13.5px;margin-bottom:14px}

.signup-form{display:flex;gap:10px;flex-wrap:wrap}
.signup-form input[type=email]{
  flex:1;min-width:180px;
  background:#060a08;border:1px solid var(--green-line);border-radius:6px;
  padding:12px 14px;color:var(--text);font-family:var(--mono);font-size:14px;
}
.signup-form input[type=email]::placeholder{color:var(--muted)}
.signup-form input[type=email]:focus{outline:1px solid var(--green);outline-offset:1px}
.signup-form button{
  border:1px solid var(--green);border-radius:6px;background:var(--green);color:#04140c;
  font-family:var(--mono);font-weight:600;font-size:14px;padding:12px 18px;cursor:pointer;
  transition:box-shadow .15s;
}
.signup-form button:hover{box-shadow:0 0 10px rgba(51,255,153,.2)}
.signup-form button:disabled{opacity:.6;cursor:default}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;overflow:hidden}
.signup-msg{margin-top:10px;font-size:13px}
.signup-msg.ok{color:var(--green)}
.signup-msg.err{color:#ff6b6b}

.sub{font-size:13.5px;margin-top:14px;color:#c7ded0}
footer{margin-top:48px;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:18px}

/* blog */
.post-list{list-style:none;display:grid;gap:14px}
.post-item{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:18px}
.post-item a{color:var(--text);font-weight:600;font-size:16px}
.post-item .date{color:var(--muted);font-size:12px;display:block;margin-bottom:6px}
.post-item .excerpt{color:var(--muted);font-size:13.5px;margin-top:6px}

article.post h1{margin-bottom:8px}
article.post .date{color:var(--muted);font-size:13px;margin-bottom:28px}
article.post p{color:#c7ded0;margin-bottom:18px;max-width:60ch}
article.post p.lede{color:var(--text);font-size:17px}
