/* ============================================================
   PRANIT.TECH — shared blog theme (matches main portfolio)
   ============================================================ */
:root{
  --bg:#0a0908;
  --ink:#ebe7df;
  --dim:#8f8a80;
  --line:rgba(235,231,223,.16);
  --line2:rgba(235,231,223,.08);
  --hot:#ff9a1f;
  --hot2:#ff4d1f;
  --sans:'Archivo',sans-serif;
  --mono:'Space Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55;overflow-x:hidden;cursor:none}
@media (hover:none),(max-width:760px){body{cursor:auto}}
::selection{background:var(--hot);color:#0a0908}
a{color:inherit;text-decoration:none;cursor:none}
@media (hover:none),(max-width:760px){a{cursor:pointer}}
img{max-width:100%;display:block}

#fluid{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;display:block}
.noise{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* cursor */
#xh-v,#xh-h{position:fixed;z-index:60;pointer-events:none;background:rgba(235,231,223,.14)}
#xh-v{top:0;bottom:0;width:1px;left:-10px}
#xh-h{left:0;right:0;height:1px;top:-10px}
#xh-dot{position:fixed;z-index:61;width:5px;height:5px;background:var(--hot);pointer-events:none;transform:translate(-50%,-50%);left:-10px;top:-10px}
#xh-coords{position:fixed;z-index:61;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--dim);pointer-events:none;transform:translate(14px,14px);white-space:nowrap;left:-100px;top:-100px}
#xh-label{position:fixed;z-index:61;font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--hot);pointer-events:none;transform:translate(14px,-18px);white-space:nowrap;left:-100px;top:-100px;text-transform:uppercase}
@media (hover:none),(max-width:760px){#xh-v,#xh-h,#xh-dot,#xh-coords,#xh-label{display:none}}

/* loader */
#loader{position:fixed;inset:0;background:var(--bg);z-index:100;display:flex;flex-direction:column;justify-content:space-between;padding:34px 40px;transition:clip-path 1s cubic-bezier(.85,0,.15,1)}
#loader.done{clip-path:inset(0 0 100% 0)}
#loader .l-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--dim);text-transform:uppercase}
#loader .l-mid{font-family:var(--mono);font-size:11px;color:var(--dim);letter-spacing:.1em}
#loader .l-mid span{color:var(--hot)}
#loader .l-pct{font-family:var(--sans);font-weight:900;font-size:clamp(5rem,18vw,13rem);line-height:.85;letter-spacing:-.03em;align-self:flex-end}

/* shell */
.shell{position:relative;z-index:2}
.frame{width:min(1180px,100%);margin:0 auto;padding:0 clamp(18px,4vw,56px)}

/* top bar */
header.bar{position:fixed;top:0;left:0;right:0;z-index:40;border-bottom:1px solid var(--line2);background:linear-gradient(180deg,rgba(10,9,8,.82),rgba(10,9,8,0));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.bar-in{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(18px,4vw,56px);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.bar-in .brand{font-weight:700;color:var(--ink)}
.bar-in .brand em{color:var(--hot);font-style:normal}
.bar-nav{display:flex;gap:clamp(14px,3vw,36px)}
.bar-nav a{color:var(--dim);transition:color .25s}
.bar-nav a:hover{color:var(--hot)}

/* page head */
.page-head{padding:clamp(140px,22vh,220px) 0 clamp(40px,7vh,70px)}
.kicker{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--hot);text-transform:uppercase;display:flex;align-items:center;gap:12px;margin-bottom:18px}
.kicker::before{content:"";width:30px;height:1px;background:var(--hot)}
.page-title{font-weight:900;text-transform:uppercase;letter-spacing:-.028em;line-height:.88;font-size:clamp(3rem,11vw,9rem)}
.page-title .stroke{color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.page-sub{color:var(--dim);max-width:52ch;margin-top:26px;font-size:clamp(1rem,1.5vw,1.15rem)}
.page-sub b{color:var(--ink);font-weight:600}
.page-meta{display:flex;gap:26px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-top:1px solid var(--line);margin-top:34px;padding-top:16px}
.page-meta b{color:var(--hot);font-weight:400}

/* sections */
section{position:relative;padding:clamp(40px,7vh,80px) 0;border-top:1px solid var(--line)}
.sec-idx{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--hot);text-transform:uppercase;margin-bottom:26px}
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s cubic-bezier(.19,1,.22,1)}
.rv.on{opacity:1;transform:none}

/* featured post */
.featured{border:1px solid var(--line);padding:clamp(26px,4vw,52px);position:relative;overflow:hidden;display:block;transition:background .35s}
.featured:hover{background:rgba(255,154,31,.05)}
.featured .f-tag{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--hot);text-transform:uppercase;display:block;margin-bottom:18px}
.featured h2{font-weight:900;text-transform:uppercase;font-size:clamp(1.5rem,3.6vw,2.8rem);line-height:1;letter-spacing:-.01em;margin-bottom:14px;max-width:24ch}
.featured p{color:var(--dim);max-width:60ch;font-size:.98rem}
.featured .f-meta{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:22px;display:flex;gap:24px;flex-wrap:wrap}
.featured .f-arrow{position:absolute;top:22px;right:26px;font-size:20px;color:var(--dim);transition:transform .35s,color .35s}
.featured:hover .f-arrow{transform:translate(4px,-4px);color:var(--hot)}

/* post list */
.post-rows{border-top:1px solid var(--line)}
.post-row{display:grid;grid-template-columns:120px 100px minmax(0,1fr) 26px;gap:18px;align-items:baseline;padding:24px 8px;border-bottom:1px solid var(--line);transition:background .3s,padding .3s}
.post-row:hover{background:rgba(235,231,223,.035);padding-left:20px}
.post-row .d{font-family:var(--mono);font-size:11px;color:var(--hot);letter-spacing:.08em}
.post-row .t{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--dim);border:1px solid var(--line);padding:3px 8px;text-align:center;text-transform:uppercase;width:max-content}
.post-row .e{font-size:1.02rem;color:var(--dim)}
.post-row .e b{color:var(--ink);font-weight:700}
.post-row .a{font-family:var(--mono);color:var(--dim);font-size:12px}
.post-row.placeholder .e,.post-row.placeholder .d{color:rgba(143,138,128,.55)}
.post-row.placeholder{background:repeating-linear-gradient(-45deg,transparent,transparent 12px,rgba(235,231,223,.02) 12px,rgba(235,231,223,.02) 13px)}
@media(max-width:700px){.post-row{grid-template-columns:100px 1fr;grid-template-areas:"d t" "e e"}.post-row .d{grid-area:d}.post-row .t{grid-area:t;justify-self:end}.post-row .e{grid-area:e}.post-row .a{display:none}}

/* buttons */
.act{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);padding:15px 26px;position:relative;overflow:hidden;transition:color .35s,border-color .35s;display:inline-block;z-index:1;background:transparent;color:var(--ink)}
.act::after{content:"";position:absolute;inset:0;background:var(--hot);transform:scaleY(0);transform-origin:bottom;transition:transform .35s cubic-bezier(.65,0,.35,1);z-index:-1}
.act:hover{color:#0a0908;border-color:var(--hot)}
.act:hover::after{transform:scaleY(1)}
.act.solid{background:var(--ink);color:#0a0908;border-color:var(--ink)}

/* ================= ARTICLE / POST PAGE ================= */
.post-head{padding:clamp(140px,20vh,200px) 0 clamp(30px,5vh,50px)}
.post-head h1{font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.95;font-size:clamp(2.2rem,6.5vw,4.6rem);max-width:20ch}
.post-head .p-meta{display:flex;gap:22px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:24px}
.post-head .p-meta b{color:var(--hot);font-weight:400}
.post-body{max-width:70ch;padding-bottom:clamp(50px,8vh,90px)}
.post-body p{color:var(--dim);font-size:1.05rem;line-height:1.75;margin-bottom:22px}
.post-body p b,.post-body p strong{color:var(--ink);font-weight:600}
.post-body h2{font-weight:900;text-transform:uppercase;font-size:clamp(1.3rem,2.6vw,1.9rem);letter-spacing:-.01em;margin:44px 0 16px;padding-top:26px;border-top:1px solid var(--line)}
.post-body h2 span{color:var(--hot)}
.post-body h3{font-weight:800;text-transform:uppercase;font-size:1.05rem;margin:30px 0 12px;color:var(--ink)}
.post-body ul,.post-body ol{margin:0 0 22px 0;list-style:none;display:flex;flex-direction:column;gap:10px}
.post-body li{color:var(--dim);padding-left:22px;position:relative;line-height:1.65}
.post-body li::before{content:"—";position:absolute;left:0;color:var(--hot)}
.post-body blockquote{border-left:2px solid var(--hot);padding:8px 0 8px 20px;margin:28px 0;color:var(--ink);font-size:1.15rem;font-weight:500}
.post-body blockquote cite{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:10px;font-style:normal}
.post-body code{font-family:var(--mono);font-size:.88em;color:var(--hot);background:rgba(255,154,31,.08);padding:2px 7px;border:1px solid rgba(255,154,31,.2)}
.post-body pre{background:rgba(235,231,223,.04);border:1px solid var(--line);padding:20px 24px;overflow-x:auto;margin:0 0 22px;font-family:var(--mono);font-size:.85rem;line-height:1.6;color:var(--ink)}
.post-body pre code{background:none;border:0;padding:0;color:var(--ink)}
.post-body img{border:1px solid var(--line);margin:28px 0}
.post-body figcaption{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:-18px 0 28px;padding-top:8px}
.post-body a{color:var(--hot);border-bottom:1px solid rgba(255,154,31,.4)}
.post-body a:hover{border-bottom-color:var(--hot)}
.post-body hr{border:0;border-top:1px dashed var(--line);margin:36px 0}
.post-nav{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:26px;margin-bottom:60px;flex-wrap:wrap}

/* author card */
.author{border:1px solid var(--line);padding:clamp(22px,3vw,36px);display:flex;gap:22px;align-items:center;margin-bottom:clamp(50px,8vh,90px);flex-wrap:wrap}
.author .av{width:64px;height:64px;object-fit:cover;border:1px solid var(--line);filter:grayscale(1)}
.author b{font-family:var(--sans);font-weight:800;text-transform:uppercase;display:block}
.author span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.author a{color:var(--hot)}

/* ================= COLLAPSIBLE POST TILES ================= */
.bp{border-top:1px solid var(--line)}
.bp-item{border-bottom:1px solid var(--line)}
.bp-head{display:grid;grid-template-columns:64px minmax(0,1fr) 40px;gap:18px;align-items:center;padding:26px 8px;transition:background .3s,padding .3s;cursor:none}
@media (hover:none),(max-width:760px){.bp-head{cursor:pointer}}
.bp-head:hover{background:rgba(235,231,223,.035);padding-left:20px}
.bp-num{font-family:var(--mono);font-size:11px;color:var(--dim)}
.bp-title{font-weight:800;text-transform:uppercase;font-size:clamp(1.05rem,2.4vw,1.7rem);letter-spacing:-.01em;line-height:1.12}
.bp-meta{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:8px;display:flex;gap:18px;flex-wrap:wrap}
.bp-meta b{color:var(--hot);font-weight:400}
.bp-tog{font-family:var(--mono);font-size:18px;color:var(--dim);text-align:center;transition:transform .45s cubic-bezier(.65,0,.35,1),color .3s}
.bp-item.open .bp-tog{transform:rotate(45deg);color:var(--hot)}
.bp-body{max-height:0;overflow:hidden;transition:max-height .8s cubic-bezier(.65,0,.35,1)}
.bp-body-in{padding:10px 8px 44px;display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px}
.bp-body-in>span{display:block}
.bp-body .post-body{padding-bottom:0}
.bp-sig{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-top:1px dashed var(--line);padding-top:16px;margin-top:30px;max-width:70ch}
.bp-sig b{color:var(--hot);font-weight:400}
@media(max-width:760px){.bp-head{grid-template-columns:44px minmax(0,1fr) 30px}.bp-body-in{grid-template-columns:1fr}.bp-body-in>span:first-child{display:none}}

/* footer */
footer{border-top:1px solid var(--line);padding:22px 0 30px;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
footer b{color:var(--hot);font-weight:400}
