/*
Theme Name: Harsh Sahu Personal
Theme URI: https://harshsahu.in
Author: Harsh Sahu
Author URI: https://harshsahu.in
Description: Custom personal theme for harshsahu.in. One design system site-wide (v4.7): cinematic dark front page plus pages, posts, blog listing, archives, search and 404 in the same glass-and-gradient language, with readability-first tokens (bright body text, generous line-height, capped line length).
Version: 1.3.0
License: GPLv2 or later
Text Domain: harsh-sahu
*/

/* ============ DESIGN TOKENS — identical to the v4.7 homepage ============ */
:root{--bg:#05080F;--bg2:#090E1A;--panel:rgba(255,255,255,.035);--line:rgba(160,180,220,.14);--ink:#EDF2FF;--dim:#C6D2EA;--faint:#9DB0D6;--blue:#2563EB;--blue2:#2E6BFF;--sky:#38BDF8;--teal:#00C2B8;--mint:#7EF0D4;--gold:#D8B56B;--card:linear-gradient(165deg,rgba(20,30,55,.94),rgba(11,17,33,.96));--rad:24px}

/* ============ BASE ============ */
body.hs-inner{background:var(--bg);color:var(--ink);font-family:'Inter',system-ui,sans-serif;font-size:17px;line-height:1.7;margin:0;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.hs-inner ::selection{background:var(--teal);color:#03202B}
.hs-inner h1,.hs-inner h2,.hs-inner h3,.hs-inner h4{font-family:'Sora',sans-serif;line-height:1.18;color:var(--ink)}
.hs-inner em{font-family:'Fraunces',serif;font-style:italic;font-weight:560}
.hs-inner a:focus-visible,.hs-inner button:focus-visible{outline:2px solid var(--sky);outline-offset:3px;border-radius:4px}
.hs-ambience{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;background:radial-gradient(720px 480px at 82% -6%,rgba(0,194,184,.16),transparent 62%),radial-gradient(900px 620px at -12% 34%,rgba(46,107,255,.15),transparent 60%),radial-gradient(620px 460px at 55% 108%,rgba(216,181,107,.07),transparent 60%)}

/* ============ NAV — same blur chrome as the homepage ============ */
.hs-nav{position:fixed;top:0;left:0;right:0;z-index:50;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(5,8,15,.55);border-bottom:1px solid rgba(160,180,220,.08)}
.hs-nav-in{max-width:1120px;margin:0 auto;padding:0 32px;display:flex;justify-content:space-between;align-items:center;height:66px}
.hs-logo{font-family:'Sora',sans-serif;font-weight:800;letter-spacing:.28em;font-size:14px;text-decoration:none;color:var(--ink);white-space:nowrap}
.hs-logo span{color:var(--teal)}
.hs-links{display:flex;gap:34px;align-items:center}
.hs-links a{color:var(--dim);text-decoration:none;font-size:14.5px;font-weight:500;letter-spacing:.04em;background-image:linear-gradient(90deg,var(--teal),var(--teal));background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .35s ease,color .25s}
.hs-links a:hover{color:#fff;background-size:100% 1px}
.hs-links a.hs-ncta{border:1px solid rgba(237,242,255,.35);color:#fff;padding:10px 20px;border-radius:999px;background-image:none;white-space:nowrap}
.hs-links a.hs-ncta:hover{background:#fff;color:#05080F}

/* ============ LAYOUT ============ */
.hs-main{max-width:1120px;margin:0 auto;padding:136px 32px 30px;position:relative;z-index:3}
.hs-wrap{max-width:1120px;margin:0 auto;padding:0 32px;position:relative;z-index:3}

/* ============ HERO BAND (pages, blog, archives, search) ============ */
.hs-hero{margin-bottom:54px}
.hs-eyebrow{display:inline-flex;gap:12px;align-items:center;font-family:'JetBrains Mono',monospace;font-size:13.5px;letter-spacing:.3em;color:var(--mint);text-transform:uppercase;margin-bottom:22px}
.hs-eyebrow:before{content:"";width:38px;height:1px;background:var(--teal)}
.hs-hero-top{display:flex;justify-content:space-between;align-items:flex-end;gap:26px;flex-wrap:wrap}
.hs-title{font-size:clamp(36px,4.8vw,58px);font-weight:800;line-height:1.08;letter-spacing:-.01em;margin:0;max-width:20ch}
.hs-no{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.26em;color:#9FD8CF;border:1px solid var(--line);border-radius:99px;padding:8px 14px;background:rgba(255,255,255,.025);white-space:nowrap}
.hs-lead{font-size:19px;line-height:1.75;color:var(--dim);max-width:65ch;margin-top:22px}
.hs-rule{height:1px;background:linear-gradient(90deg,var(--blue2),var(--teal),transparent);margin-top:38px;opacity:.65}

/* ============ BUTTONS (homepage .btn system) ============ */
.hs-btn{position:relative;display:inline-block;padding:18px 34px;border-radius:999px;font-weight:600;font-size:15.5px;text-decoration:none;color:#fff;background:linear-gradient(94deg,var(--blue2),var(--teal));box-shadow:0 18px 44px rgba(0,194,184,.28);transition:transform .25s cubic-bezier(.16,.8,.24,1),box-shadow .25s;overflow:hidden}
.hs-btn:hover{transform:translateY(-3px);box-shadow:0 26px 54px rgba(0,194,184,.38);color:#fff}
.hs-btn2{display:inline-block;padding:18px 30px;border-radius:999px;font-weight:500;font-size:15.5px;text-decoration:none;color:var(--ink);border:1px solid rgba(237,242,255,.28);transition:all .25s}
.hs-btn2:hover{border-color:#fff;background:rgba(255,255,255,.05);color:#fff}
.hs-cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}

/* ============ PROSE (page + article body) ============ */
.hs-prose{color:var(--dim)}
.hs-prose p,.hs-prose ul,.hs-prose ol,.hs-prose blockquote{max-width:68ch}
.hs-prose p{font-size:17px;line-height:1.7;color:var(--dim);margin:0 0 1em}
.hs-prose p b,.hs-prose p strong,.hs-prose li b,.hs-prose li strong{color:var(--ink)}
.hs-prose h2{font-size:clamp(26px,3.4vw,34px);font-weight:800;margin:46px 0 14px;letter-spacing:-.01em}
.hs-prose h3{font-size:22px;font-weight:700;margin:34px 0 10px}
.hs-prose h4{font-size:18px;font-weight:700;margin:26px 0 8px}
.hs-prose a{color:var(--mint);text-decoration:underline;text-underline-offset:3px}
.hs-prose a:hover{color:#fff}
.hs-prose ul,.hs-prose ol{margin:0 0 1em;padding-left:24px}
.hs-prose li{font-size:17px;line-height:1.7;color:var(--dim);margin-bottom:.45em}
.hs-prose li::marker{color:var(--teal)}
.hs-prose blockquote{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:18px;padding:28px 30px;margin:32px 0;font-family:'Fraunces',serif;font-style:italic;font-size:21px;line-height:1.55;color:var(--ink)}
.hs-prose blockquote p{font-family:inherit;font-style:inherit;font-size:inherit;line-height:inherit;color:inherit;max-width:none}
.hs-prose blockquote cite{display:block;margin-top:14px;font-family:'JetBrains Mono',monospace;font-style:normal;font-size:13.5px;letter-spacing:.18em;color:var(--faint);text-transform:uppercase}
.hs-prose img{max-width:100%;height:auto;border-radius:16px}
.hs-prose figure{margin:30px 0}
.hs-prose figcaption,.hs-prose .wp-caption-text{color:var(--faint);font-size:14px;line-height:1.6;text-align:center;margin-top:10px}
.hs-prose hr{border:0;height:1px;background:var(--line);margin:42px 0}
.hs-prose table{border-collapse:collapse;margin:26px 0;font-size:16px;color:var(--dim)}
.hs-prose th,.hs-prose td{border:1px solid var(--line);padding:12px 16px;text-align:left}
.hs-prose th{color:var(--ink);font-family:'Sora',sans-serif}
/* galleries — designed grids, top-anchored crops, caption bars */
.hs-prose .wp-block-gallery,.hs-prose .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0;max-width:none}
.hs-prose .wp-block-gallery figure,.hs-prose .gallery .gallery-item{border-radius:20px;overflow:hidden;position:relative;border:1px solid var(--line);margin:0;width:auto!important;float:none!important}
.hs-prose .wp-block-gallery img,.hs-prose .gallery .gallery-item img{width:100%;height:330px;object-fit:cover;object-position:50% 15%;display:block;border:0!important;border-radius:0;filter:saturate(.88);transition:transform .9s cubic-bezier(.16,.8,.24,1),filter .6s}
.hs-prose .wp-block-gallery figure:hover img,.hs-prose .gallery .gallery-item:hover img{transform:scale(1.06);filter:saturate(1.05)}
.hs-prose .wp-block-gallery figcaption,.hs-prose .gallery .gallery-item figcaption,.hs-prose .gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 13px;font-size:14px;font-weight:600;line-height:1.45;color:var(--ink);text-align:left;margin:0;background:linear-gradient(transparent,rgba(3,7,15,.88))}
.hs-prose .wp-block-button__link{display:inline-block;padding:16px 32px;border-radius:999px;font-weight:600;font-size:15.5px;text-decoration:none;color:#fff;background:linear-gradient(94deg,var(--blue2),var(--teal));box-shadow:0 18px 44px rgba(0,194,184,.25)}
/* forms (contact page) */
.hs-prose label{display:block;font-size:15.5px;font-weight:500;color:var(--dim);margin-bottom:8px}
.hs-prose input[type="text"],.hs-prose input[type="email"],.hs-prose input[type="tel"],.hs-prose input[type="url"],.hs-prose textarea,.hs-prose select{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px;color:var(--ink);font-family:'Inter',sans-serif;font-size:16.5px;padding:14px 16px;margin-bottom:20px}
.hs-prose input[type="submit"],.hs-prose button[type="submit"]{padding:16px 32px;border:0;border-radius:999px;font-weight:600;font-size:15.5px;color:#fff;background:linear-gradient(94deg,var(--blue2),var(--teal));cursor:pointer}

/* ============ POST CARDS (cloned from the homepage .post design) ============ */
.hs-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.hs-card{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border-radius:var(--rad);overflow:hidden;border:1px solid var(--line);background:var(--card);transition:transform .35s,box-shadow .35s,border-color .35s}
.hs-card-im{display:block;overflow:hidden;height:250px;flex:none;background:linear-gradient(150deg,rgba(37,99,235,.35),rgba(0,194,184,.18))}
.hs-card-im img{width:100%;height:100%;object-fit:cover;object-position:50% 8%;display:block;transition:transform .8s cubic-bezier(.16,.8,.24,1)}
.hs-card-ph{display:flex;align-items:center;justify-content:center;height:100%;font-family:'Sora',sans-serif;font-weight:800;font-size:64px;color:transparent;-webkit-text-stroke:1px rgba(160,180,220,.35)}
.hs-card-bd{padding:26px;display:flex;flex-direction:column;flex:1}
.hs-card-tag{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.22em;color:var(--mint);text-transform:uppercase}
.hs-card h3{font-size:21px;line-height:1.35;margin:11px 0 8px}
.hs-card h3 a{color:var(--ink);text-decoration:none}
.hs-card h3 a:hover{color:var(--mint)}
.hs-card p{font-size:16px;line-height:1.7;color:var(--dim);margin:0}
.hs-card-date{font-family:'JetBrains Mono',monospace;font-size:13.5px;letter-spacing:.14em;color:var(--faint);margin-top:auto;padding-top:16px}
@media(pointer:fine){.hs-card:hover{transform:translateY(-6px);border-color:rgba(0,194,184,.45);box-shadow:0 24px 50px rgba(2,6,16,.55)}.hs-card:hover .hs-card-im img{transform:scale(1.06)}}

/* ============ PAGINATION ============ */
.hs-pager{margin-top:48px}
.hs-pager .pagination{display:block}
.hs-pager .nav-links{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hs-pager .page-numbers{display:inline-block;padding:11px 18px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03);color:var(--dim);text-decoration:none;font-size:15.5px;font-weight:500;transition:all .25s}
.hs-pager .page-numbers:hover{color:#fff;border-color:rgba(237,242,255,.4)}
.hs-pager .page-numbers.current{background:linear-gradient(94deg,var(--blue2),var(--teal));color:#fff;border-color:transparent}
.hs-pager .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============ SINGLE POST ============ */
.hs-article{max-width:840px;margin:0 auto}
.hs-meta{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-family:'JetBrains Mono',monospace;font-size:13.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:20px}
.hs-meta a{color:var(--mint);text-decoration:none}
.hs-meta a:hover{text-decoration:underline;text-underline-offset:3px}
.hs-featured{border-radius:var(--rad);overflow:hidden;border:1px solid var(--line);margin:36px 0 44px;aspect-ratio:16/9;background:linear-gradient(150deg,rgba(37,99,235,.25),rgba(0,194,184,.12))}
.hs-featured img{width:100%;height:100%;object-fit:cover;object-position:50% 8%;display:block}
.hs-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.hs-tags a{font-family:'JetBrains Mono',monospace;font-size:13.5px;letter-spacing:.12em;color:var(--dim);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:8px 15px;background:rgba(255,255,255,.03)}
.hs-tags a:hover{color:#fff;border-color:rgba(237,242,255,.4)}
.hs-author{display:flex;gap:22px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:28px;margin-top:48px}
.hs-author img{width:92px;height:92px;border-radius:50%;object-fit:cover;border:2px solid rgba(0,194,184,.55);flex:none}
.hs-author h4{font-size:19px;margin:0 0 4px}
.hs-author .hs-author-role{font-family:'JetBrains Mono',monospace;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mint);margin-bottom:8px}
.hs-author p{font-size:16px;line-height:1.65;color:var(--dim);margin:0;max-width:56ch}
.hs-author p a{color:var(--mint);text-decoration:underline;text-underline-offset:3px}
.hs-navposts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}
.hs-navpost{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:24px 26px;text-decoration:none;transition:transform .35s,border-color .35s}
.hs-navpost small{display:block;font-family:'JetBrains Mono',monospace;font-size:13.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:9px}
.hs-navpost span{font-family:'Sora',sans-serif;font-weight:700;font-size:18px;line-height:1.35;color:var(--ink)}
.hs-navpost:hover{transform:translateY(-4px);border-color:rgba(0,194,184,.45)}
.hs-navpost.next{text-align:right}

/* ============ SEARCH ============ */
.hs-searchform{display:flex;gap:12px;max-width:640px;margin-top:30px}
.hs-searchform input[type="search"]{flex:1;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:999px;color:var(--ink);font-size:16.5px;padding:15px 22px;font-family:'Inter',sans-serif}
.hs-searchform button,.hs-searchform input[type="submit"]{padding:15px 28px;border:0;border-radius:999px;font-weight:600;font-size:15.5px;color:#fff;background:linear-gradient(94deg,var(--blue2),var(--teal));cursor:pointer}
.hs-empty{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:34px}
.hs-empty p{font-size:17px;color:var(--dim);max-width:62ch;margin:0}

/* ============ 404 ============ */
.hs-404-num{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(110px,20vw,230px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(160,180,220,.3);user-select:none;margin-bottom:10px}

/* ============ FOOTER — same language as the homepage footer, extended ============ */
.hs-foot{border-top:1px solid var(--line);margin-top:80px;padding:56px 0 40px;position:relative;z-index:3;overflow:hidden}
.hs-mega{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(60px,12.5vw,180px);line-height:1;text-align:center;color:transparent;-webkit-text-stroke:1px rgba(160,180,220,.22);user-select:none;white-space:nowrap;transition:letter-spacing .6s ease}
.hs-mega:hover{background:linear-gradient(92deg,#EDF2FF 10%,var(--sky) 48%,var(--teal) 90%);-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:1px transparent;letter-spacing:.01em}
.hs-fcols{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.4fr;gap:34px;margin-top:52px}
.hs-fcol h4{font-size:15.5px;letter-spacing:.06em;margin:0 0 16px}
.hs-fcol a{display:block;color:var(--dim);text-decoration:none;font-size:16px;line-height:1.5;margin-bottom:10px}
.hs-fcol a:hover{color:#fff}
.hs-fcol p{color:var(--dim);font-size:16px;line-height:1.65;margin:0 0 16px;max-width:34ch}
.hs-fcol .hs-mini{display:inline-block;padding:13px 24px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;color:#fff;background:linear-gradient(94deg,var(--blue2),var(--teal));margin:0}
.hs-frow{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:44px;padding-top:26px;border-top:1px solid var(--line);font-family:'JetBrains Mono',monospace;font-size:13.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.hs-frow a{color:var(--mint);text-decoration:underline;text-underline-offset:3px}

/* ============ WP CORE ============ */
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.alignleft{float:left;margin:6px 24px 14px 0}
.alignright{float:right;margin:6px 0 14px 24px}
.wp-block-image img{border-radius:16px}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============ RESPONSIVE — same breakpoints as the homepage ============ */
@media(max-width:1000px){.hs-grid{grid-template-columns:1fr}.hs-fcols{grid-template-columns:1fr 1fr}}
@media(max-width:820px){
  .hs-links a:not(.hs-ncta){display:none}
  .hs-links{gap:0}
  .hs-nav-in,.hs-wrap{padding:0 20px}
  .hs-main{padding:118px 20px 26px}
  .hs-hero-top{flex-direction:column;align-items:flex-start;gap:14px}
  .hs-prose .wp-block-gallery,.hs-prose .gallery{grid-template-columns:1fr}
  .hs-prose .wp-block-gallery img,.hs-prose .gallery .gallery-item img{height:260px}
  .hs-author{flex-direction:column;align-items:flex-start}
  .hs-navposts{grid-template-columns:1fr}
  .hs-navpost.next{text-align:left}
  .hs-card-im{height:auto;aspect-ratio:4/3}
  .hs-card-ph{font-size:52px}
  .hs-mega{font-size:clamp(38px,11.8vw,120px)}
  .hs-searchform{flex-direction:column}
  .hs-searchform button,.hs-searchform input[type="submit"]{width:100%}
}
@media(max-width:520px){
  .hs-title{font-size:clamp(31px,9vw,40px)}
  .hs-lead{font-size:17.5px}
  .hs-btn,.hs-btn2{width:100%;text-align:center;padding:16px 26px}
  .hs-cta-row{flex-direction:column}
  .hs-fcols{grid-template-columns:1fr}
  .hs-card-bd{padding:20px}
  .hs-prose blockquote{padding:22px;font-size:19px}
  .hs-featured{aspect-ratio:4/3}
  .hs-author{padding:22px}
  .hs-frow{flex-direction:column;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  .hs-card,.hs-card-im img,.hs-navpost,.hs-mega,.hs-btn{transition:none}
}
