:root{
  --bg0:#0b1020;
  --bg1:#101a33;
  --card:rgba(255,255,255,.08);
  --stroke:rgba(255,255,255,.16);
  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.72);
  --accent:#ffcc66;
  --accent2:#7ee787;
  --shadow:0 20px 80px rgba(0,0,0,.45);
  --mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  --sans:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
  --serif: ui-serif, Georgia, "Times New Roman", Times, serif;
}

/* Slightly nicer long-form typography without loading external fonts. */
.content{max-width: 88ch; overflow-wrap:anywhere; word-break:break-word}
.content p{margin: 12px 0}
.content ul, .content ol{padding-left: 1.2em}
.content li{margin: 6px 0}
.content blockquote{
  margin: 14px 0;
  padding: 10px 12px;
  border-left: 3px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.06);
  border-radius: 12px;
  color: rgba(255,255,255,.86);
}
.content hr{border:0;border-top:1px solid rgba(255,255,255,.12);margin:18px 0}

.content img{
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 18px 60px rgba(0,0,0,.35);
  display:block;
  margin: 14px auto;
  cursor: zoom-in;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--text);
  position:relative;
  background:var(--bg0);
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:-12%;
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(130% 95% at 12% 6%, rgba(255,204,102,.20) 0%, rgba(255,204,102,.11) 38%, rgba(255,204,102,.05) 58%, rgba(255,204,102,0) 88%),
    radial-gradient(125% 92% at 88% 16%, rgba(126,231,135,.18) 0%, rgba(126,231,135,.10) 36%, rgba(126,231,135,.04) 56%, rgba(126,231,135,0) 88%),
    radial-gradient(130% 120% at 50% 115%, rgba(120,160,255,.18) 0%, rgba(120,160,255,.10) 36%, rgba(120,160,255,.04) 60%, rgba(120,160,255,0) 92%),
    linear-gradient(180deg,var(--bg0),var(--bg1));
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:0.06;
  mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='noStitch'/%3E%3C/filter%3E%3Crect width='512' height='512' filter='url(%23n)' opacity='0.18'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-size:cover;
}

.wrap{min-height:100%;display:grid;place-items:center;padding:40px 18px;position:relative;z-index:1}
.shell{width:min(100%, 92vw);max-width:1320px}

.card{
  border-radius:22px;
  background:var(--card);
  border:1px solid var(--stroke);
  box-shadow:var(--shadow);
  overflow:visible;
}
@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))){
  .card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
}

.top{
  padding:18px 22px;
  display:flex;
  gap:14px;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.brand{display:flex;gap:14px;align-items:center;min-width:0}
.dots{display:flex;gap:10px;align-items:center;flex:0 0 auto}
.dot{width:12px;height:12px;border-radius:999px;opacity:.9}
.dot.red{background:#ff5f57}
.dot.yellow{background:#febc2e}
.dot.green{background:#28c840}
.title{font-weight:650;letter-spacing:.2px;color:rgba(255,255,255,.85);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.nav a{color:rgba(255,255,255,.82);font-size:13px;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06)}
.nav a:hover{text-decoration:none;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.09)}

.body{padding:22px;display:grid;gap:18px}

.hero{display:grid;gap:10px;padding:16px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}
.hero h1{margin:0;font-size:clamp(28px,3.1vw,44px);line-height:1.05;letter-spacing:-.7px}
.hero p{margin:0;color:var(--muted);font-size:16px;line-height:1.65;max-width:75ch}

.grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px}
.grid > *{min-width:0}
@media (max-width: 1366px){.grid{grid-template-columns:1fr}}
@media (min-width: 1400px){.grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}

.article .grid{grid-template-columns:minmax(0,2.4fr) minmax(0,.5fr)}
@media (max-width: 1366px){.article .grid{grid-template-columns:1fr}}
@media (min-width: 1400px){.article .grid{grid-template-columns:minmax(0,2.7fr) minmax(0,.55fr)}}

.panel{padding:16px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);min-width:0;min-height:0}
.panel h2{margin:0 0 10px;font-size:14px;color:rgba(255,255,255,.82);letter-spacing:.2px}

.postlist{display:grid;gap:12px}
.post{
  display:grid;
  gap:8px;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(10,16,32,.25);
}
.post a{color:rgba(255,255,255,.94);text-decoration:none}
.post a:hover{text-decoration:underline}
.meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:rgba(255,255,255,.68);font-size:13px}
.tags{display:flex;gap:8px;flex-wrap:wrap}
.tag{font-size:12px;color:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);padding:4px 8px;border-radius:999px}

.pills{display:flex;flex-wrap:wrap;gap:10px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(10,16,32,.35);color:rgba(255,255,255,.86);font-size:13px}
.pill .k{width:7px;height:7px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 4px rgba(255,204,102,.15)}
.pill.ok .k{background:var(--accent2);box-shadow:0 0 0 4px rgba(126,231,135,.12)}

.search{display:grid;gap:10px}
.input{
  display:flex;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.20);
}
.input input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:rgba(255,255,255,.92);
  font-size:14px;
}
.input .hint{color:rgba(255,255,255,.55);font-size:12px;white-space:nowrap;flex:0 0 auto;margin-left:auto}

.article{display:grid;gap:14px}
.article h1{margin:0;font-size:clamp(28px,3.1vw,42px);letter-spacing:-.6px;line-height:1.1}
.article .lead{color:var(--muted);line-height:1.7;margin:0;max-width:78ch}
.article img{max-width:100%;height:auto;display:block;border-radius:16px;border:1px solid rgba(255,255,255,.10);box-shadow:0 18px 60px rgba(0,0,0,.35)}
.content{line-height:1.85;color:rgba(255,255,255,.90);font-size:16px}
.content h2{margin:22px 0 10px;font-size:18px}
.content h3{margin:18px 0 8px;font-size:16px;color:rgba(255,255,255,.86)}
.content a{color:var(--accent)}
.content code{font-family:var(--mono);font-size:.95em;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.10);padding:2px 6px;border-radius:9px}
.content pre{background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:14px;overflow:auto;position:relative}
.content pre code{background:transparent;border:0;padding:0}

.copybtn{
  position:absolute;
  top:10px;
  right:10px;
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.2px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.92);
  border-radius:10px;
  padding:6px 8px;
  cursor:pointer;
}
.copybtn:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}
.copybtn:active{transform:translateY(1px)}

.toc{font-size:13px;color:rgba(255,255,255,.74);overflow-wrap:anywhere;word-break:break-word}
.toc a{color:rgba(255,255,255,.80)}
.toc a:hover{color:rgba(255,255,255,.95)}

.foot{padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:rgba(255,255,255,.70);border-top:1px solid rgba(255,255,255,.10);font-size:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:rgba(255,255,255,.92);font-weight:650;letter-spacing:.2px}
.btn:active{transform:translateY(1px)}

@media (prefers-reduced-motion: no-preference){
  .card{animation:rise 900ms cubic-bezier(.2,.8,.2,1) both}
  .post{animation:pop 650ms cubic-bezier(.2,.8,.2,1) both}
  .post:nth-child(2){animation-delay:70ms}
  .post:nth-child(3){animation-delay:140ms}
  .post:nth-child(4){animation-delay:210ms}
  @keyframes rise{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}
  @keyframes pop{from{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
}

/* Lightbox library styles */
@import url("vendor/lightbox/basiclightbox.min.css");
