/* ============================================================
   Mirajon — "The Command Line" theme
   Terminal aesthetic · pure information design · JetBrains Mono
   ============================================================ */
:root{
  --bg:#08090A; --bg2:#0b0c0d; --bg3:#060607;
  --gold:#C49A3A; --gold2:#DDB96A;
  --cream:#EDE3D0; --text:#D8D2C4; --muted:#9b9279;
  --dim:#8a8472; --dimmer:#6E6A5F; --dimmest:#5c5848;
  --line:rgba(196,154,58,.20); --line-soft:rgba(196,154,58,.12);
  --mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --maxw:1280px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--mono);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{text-decoration:none;color:inherit;}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--gold);color:var(--bg);}
.wrap{max-width:var(--maxw);margin:0 auto;width:100%;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}

@keyframes cl-blink{0%,49%{opacity:1;}50%,100%{opacity:0;}}
@keyframes cl-dot{0%,100%{opacity:.4;}50%{opacity:1;}}

/* ---------- scroll progress ---------- */
.cl-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);
  transform-origin:left;background:var(--gold);z-index:100;}

/* ---------- nav ---------- */
.cl-nav{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;align-items:center;
  justify-content:space-between;padding:22px 48px;border-bottom:1px solid var(--line-soft);
  background:rgba(8,9,10,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.cl-logo{font-weight:700;font-size:22px;letter-spacing:4px;color:var(--cream);}
.cl-logo span{color:var(--gold);}
.cl-navlinks{display:flex;align-items:center;gap:34px;}
.cl-navlinks a{font-size:11px;letter-spacing:1px;color:var(--dim);transition:color .25s;}
.cl-navlinks a:hover{color:var(--gold);}
.cl-navlinks a.is-cta{color:var(--gold);letter-spacing:2px;}
.cl-burger{display:none;background:none;border:1px solid rgba(196,154,58,.35);color:var(--gold);
  font-family:var(--mono);font-size:11px;letter-spacing:2px;padding:8px 14px;
  transition:border-color .25s;}
.cl-burger:hover{border-color:var(--gold);}

/* ---------- sections ---------- */
.cl-section{padding:100px 48px;}
.cl-sectionhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px;}
.cl-label{font-size:13px;letter-spacing:2px;color:var(--cream);}
.cl-status{display:flex;align-items:center;gap:9px;}
.cl-status .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);animation:cl-dot 1.6s ease-in-out infinite;}
.cl-status span{font-size:11px;letter-spacing:2px;color:var(--gold);}
.cl-viewall{font-size:11px;letter-spacing:2px;color:var(--gold);transition:opacity .25s;}
.cl-viewall:hover{opacity:.7;}

/* ---------- hero terminal ---------- */
.cl-hero{padding:160px 48px 90px;min-height:100vh;display:flex;align-items:center;
  background:radial-gradient(80% 70% at 22% 30%,#0e0f10,var(--bg) 70%);}
.cl-prompt{font-size:11px;letter-spacing:2px;color:var(--dimmest);margin-bottom:30px;}
.cl-terminal{font-size:clamp(1.05rem,2.4vw,1.95rem);line-height:1.75;}
.cl-tline{margin-bottom:6px;}
.cl-tline--gap{margin-bottom:26px;}
.cl-key{color:var(--gold);}
.cl-idx{color:var(--dimmer);}
.cl-terminal a{color:var(--text);border-bottom:1px solid transparent;transition:color .2s,border-color .2s;}
.cl-terminal a:hover{color:var(--gold2);border-bottom-color:rgba(196,154,58,.4);}
.cl-cursor{display:inline-block;width:.62ch;height:1.05em;background:var(--gold2);
  margin-left:6px;vertical-align:-2px;animation:cl-blink 1.05s step-end infinite;}

/* ---------- stats strip ---------- */
.cl-stats{background:var(--cream);color:#1A1712;}
.cl-statgrid{display:grid;grid-template-columns:repeat(4,1fr);max-width:var(--maxw);margin:0 auto;}
.cl-stat{padding:38px 40px;border-right:1px solid rgba(26,23,18,.14);}
.cl-stat:last-child{border-right:none;}
.cl-stat__num{font-size:2.4rem;font-weight:500;color:#1A1712;line-height:1;}
.cl-stat__label{font-size:10px;letter-spacing:2px;color:#9A7A2E;margin-top:12px;}

/* ---------- services.exe ---------- */
.cl-svcgrid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);}
.cl-cell{padding:34px 28px;border-right:1px solid var(--line);transition:background .3s;}
.cl-cell:last-child{border-right:none;}
.cl-cell:hover{background:rgba(196,154,58,.05);}
.cl-cell__name{font-size:12px;letter-spacing:1px;color:var(--gold);margin-bottom:18px;}
.cl-cell__desc{font-size:12.5px;line-height:1.8;color:var(--muted);margin:0;}

/* ---------- portfolio.log ---------- */
.cl-logrow{display:flex;align-items:baseline;gap:14px;padding:18px 0;
  font-size:clamp(.95rem,1.8vw,1.3rem);transition:background .3s;border-bottom:1px solid var(--line-soft);}
.cl-logrow:hover{background:rgba(196,154,58,.04);}
.cl-logrow .gt{color:var(--gold);}
.cl-logrow .name{color:var(--cream);}
.cl-logrow .dots{flex:1;border-bottom:1px dotted rgba(196,154,58,.4);transform:translateY(-4px);}
.cl-logrow .cat{color:var(--muted);font-size:12px;letter-spacing:1px;}
.cl-logrow .metric{color:var(--gold2);min-width:150px;text-align:right;}

/* ---------- growth_framework.sys ---------- */
.cl-framework{background:var(--bg2);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.cl-fwgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
.cl-step__name{font-size:12px;letter-spacing:1px;color:var(--gold);margin-bottom:18px;}
.cl-step__desc{font-size:12.5px;line-height:1.8;color:var(--muted);margin:0 0 18px;}
.cl-step__track{height:3px;background:rgba(196,154,58,.14);overflow:hidden;}
.cl-step__bar{height:100%;width:0;background:var(--gold);transition:width 1.1s cubic-bezier(.16,1,.3,1);}

/* ---------- contact ---------- */
.cl-contact h2{margin:0 0 26px;font-weight:700;font-size:clamp(2rem,5vw,3.6rem);
  letter-spacing:-1px;color:var(--cream);}
.cl-contact__lead{font-size:clamp(.95rem,1.8vw,1.2rem);color:var(--muted);margin:0 0 40px;}
.cl-contact__lead .gt{color:var(--gold);}
.cl-form{max-width:680px;border:1px solid var(--line);background:rgba(196,154,58,.02);}
.cl-form__head{padding:12px 18px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:2px;color:var(--dim);}
.cl-form__body{padding:24px 22px;}
.cl-field{margin-bottom:18px;}
.cl-field label{display:block;font-size:11px;letter-spacing:1px;color:var(--gold);margin-bottom:8px;}
.cl-field input,.cl-field textarea{width:100%;font-family:var(--mono);font-size:13.5px;color:var(--cream);
  background:var(--bg);border:1px solid var(--line);padding:12px 14px;transition:border-color .25s,box-shadow .25s;}
.cl-field input:focus,.cl-field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px rgba(196,154,58,.16);}
.cl-field textarea{resize:vertical;min-height:110px;}
.cl-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px;}
.cl-btn{display:inline-block;font-size:13px;letter-spacing:1px;color:var(--gold);
  border:1px solid rgba(196,154,58,.5);background:transparent;padding:14px 26px;transition:background .3s,color .3s;}
.cl-btn:hover{background:var(--gold);color:var(--bg);}
.cl-email{font-size:13px;color:var(--dim);}
.cl-email:hover{color:var(--gold);}
.cl-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.cl-note{max-width:680px;margin:0 0 22px;padding:12px 16px;border:1px solid var(--line);font-size:13px;}
.cl-note--ok{color:var(--gold2);border-color:rgba(196,154,58,.5);background:rgba(196,154,58,.06);}
.cl-note--err{color:#E8B89A;border-color:rgba(180,90,50,.6);background:rgba(180,90,50,.08);}
.cl-schedule{margin-bottom:30px;}

/* ---------- footer ---------- */
.cl-footer{background:var(--bg3);padding:30px 48px;display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:14px;border-top:1px solid var(--line-soft);}
.cl-footer__copy{font-size:11px;letter-spacing:1px;color:var(--dimmer);}
.cl-footer__links{display:flex;gap:20px;}
.cl-footer__links a{font-size:11px;letter-spacing:1px;color:var(--dim);transition:color .25s;}
.cl-footer__links a:hover{color:var(--gold);}
.cl-footer__status{display:flex;align-items:center;gap:9px;}
.cl-footer__status .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:cl-dot 1.6s ease-in-out infinite;}
.cl-footer__status span{font-size:11px;letter-spacing:2px;color:var(--muted);}

/* ---------- article (legal / blog) ---------- */
.cl-article{padding:140px 48px 90px;}
.cl-article .wrap{max-width:760px;}
.cl-article h1{font-weight:700;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.5px;color:var(--cream);}
.cl-kicker{font-size:11px;letter-spacing:2px;color:var(--gold);}
.cl-meta{font-size:12px;letter-spacing:1px;color:var(--dimmer);margin-top:12px;}
.cl-body{font-size:14px;line-height:1.85;color:var(--text);margin-top:30px;}
.cl-body h2{font-size:1.2rem;color:var(--cream);margin:34px 0 12px;letter-spacing:.5px;}
.cl-body p{margin:0 0 16px;}
.cl-body a{color:var(--gold);border-bottom:1px solid rgba(196,154,58,.4);}
.cl-body ul{margin:0 0 16px;padding-left:20px;}
.cl-body li{margin-bottom:8px;}
.cl-body code{background:rgba(196,154,58,.1);padding:2px 6px;border-radius:3px;color:var(--gold2);}

/* ============================================================
   Legacy markup compatibility (privacy/terms/blog/404 reuse
   the original classes) — restyle them for the terminal theme
   ============================================================ */
.section{padding:140px 48px 80px;}
.section--tight{padding:40px 48px;}
.kicker,.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:2px;color:var(--gold);}
.display{font-family:var(--mono);font-weight:700;letter-spacing:-.5px;color:var(--cream);line-height:1.1;}
.muted-date{font-size:12px;letter-spacing:1px;color:var(--dimmer);margin-top:12px;}
.post-body{font-size:14px;line-height:1.85;color:var(--text);margin-top:30px;}
.post-body h2{font-family:var(--mono);color:var(--cream);font-size:1.2rem;margin:34px 0 12px;letter-spacing:.3px;}
.post-body h3{font-family:var(--mono);color:var(--cream);font-size:1.05rem;margin:26px 0 10px;}
.post-body p{margin:0 0 16px;}
.post-body a{color:var(--gold);border-bottom:1px solid rgba(196,154,58,.4);}
.post-body ul,.post-body ol{padding-left:20px;margin:0 0 16px;}
.post-body li{margin-bottom:8px;}
.post-body code{background:rgba(196,154,58,.1);padding:2px 6px;color:var(--gold2);}
.post-body strong{color:var(--cream);}
/* blog list */
.work__sub,.services__intro{color:var(--muted);font-size:14px;line-height:1.7;}
.post-card{display:block;border-bottom:1px solid var(--line-soft);padding-bottom:28px;}
.post-card h2{font-family:var(--mono);color:var(--cream);font-size:1.4rem;margin:0 0 8px;}
.textlink{color:var(--gold);font-size:13px;letter-spacing:.5px;}
/* 404 / generic contact-style pages */
.contact{position:relative;padding:140px 48px;text-align:center;}
.contact__inner{max-width:760px;margin:0 auto;}
.contact__lead{color:var(--muted);font-size:1.05rem;margin:24px 0 0;}
.contact__actions{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:34px;}
.contact__email{color:var(--dim);}
.contact__email:hover{color:var(--gold);}
.contact__float{display:none;}
.btn{display:inline-block;font-family:var(--mono);font-size:13px;letter-spacing:1px;
  color:var(--gold);border:1px solid rgba(196,154,58,.5);background:transparent;padding:14px 26px;
  transition:background .3s,color .3s;}
.btn--gold,.btn--lg{}
.btn:hover{background:var(--gold);color:var(--bg);}

/* ---------- reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(22px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
[data-reveal].is-in{opacity:1;transform:none;}

/* ---------- responsive ---------- */
@media (max-width:820px){
  .cl-svcgrid,.cl-fwgrid{grid-template-columns:1fr 1fr;}
  .cl-fwgrid{gap:24px 20px;}
  .cl-cell:nth-child(2n){border-right:none;}
  .cl-cell{border-bottom:1px solid var(--line);}
  .cl-navlinks a:not(.is-cta){display:none;}
  .cl-logrow .cat{display:none;}
  .cl-burger{display:block;}
}
/* mobile nav open-state dropdown */
@media (max-width:820px){
  .cl-navlinks.is-open{
    position:fixed;top:65px;left:0;right:0;z-index:88;
    flex-direction:column;align-items:stretch;gap:0;
    background:rgba(8,9,10,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid var(--line);padding:4px 0;
  }
  .cl-navlinks.is-open a:not(.is-cta){display:block;}
  .cl-navlinks.is-open a{
    padding:15px 22px;border-bottom:1px solid var(--line-soft);
    font-size:12px;letter-spacing:1.5px;color:var(--dim);
  }
  .cl-navlinks.is-open a.is-cta{color:var(--gold);letter-spacing:2px;}
  .cl-navlinks.is-open a:last-child{border-bottom:none;}
}
@media (max-width:540px){
  .cl-section,.cl-hero{padding-left:22px;padding-right:22px;}
  .cl-section{padding-top:72px;padding-bottom:72px;}
  .cl-hero{padding-top:110px;}
  .cl-nav{padding:16px 22px;}
  .cl-footer{padding:24px 22px;}
  .cl-statgrid{grid-template-columns:1fr 1fr;}
  .cl-stat{padding:26px 16px;}
  .cl-stat:nth-child(2){border-right:none;}
  .cl-svcgrid{grid-template-columns:1fr;}
  .cl-cell{border-right:none;}
  .cl-fwgrid{grid-template-columns:1fr;}
  .cl-logrow .metric{min-width:auto;}
  .cl-footer__links{flex-wrap:wrap;gap:12px;}
  .cl-navlinks.is-open{top:54px;}
}

/* ============================================================
   Typed cursor (shared)
   ============================================================ */
.cl-tcursor{display:inline-block;width:.6ch;height:1em;background:var(--gold2);
  vertical-align:-1px;margin-left:1px;animation:cl-blink 1.05s step-end infinite;}

/* ============================================================
   SELECTED WORK — expandable accordion
   ============================================================ */
.cl-workitem{border-bottom:1px solid var(--line-soft);}
.cl-workrow{display:flex;align-items:baseline;gap:14px;width:100%;background:none;border:none;
  text-align:left;padding:18px 0;font-family:var(--mono);font-size:clamp(.95rem,1.8vw,1.3rem);
  color:var(--text);transition:color .25s;}
.cl-workrow:hover{color:var(--gold2);}
.cl-workrow .gt{color:var(--gold);}
.cl-workrow .name{color:var(--cream);}
.cl-workrow .dots{flex:1;border-bottom:1px dotted rgba(196,154,58,.4);transform:translateY(-4px);}
.cl-workrow .cat{color:var(--muted);font-size:12px;letter-spacing:1px;}
.cl-workrow .metric{color:var(--gold2);min-width:160px;text-align:right;}
.cl-chev{color:var(--gold);width:1.2ch;text-align:center;transition:transform .3s;}
.cl-workitem.is-open .cl-chev{transform:rotate(45deg);}
.cl-workdetail{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.16,1,.3,1);}
.cl-workdetail__inner{display:grid;grid-template-columns:1fr 280px;gap:30px;align-items:start;
  padding:6px 0 28px;}
.cl-workdetail__text{font-size:13px;line-height:1.9;color:var(--muted);min-width:0;}
.cl-dline{margin-bottom:6px;white-space:pre-wrap;word-break:break-word;}
.cl-dline a{color:var(--gold2);border-bottom:1px solid rgba(196,154,58,.4);}
.cl-workdetail__media{display:block;border:1px solid var(--line);overflow:hidden;}
.cl-workdetail__media img{display:block;width:100%;height:200px;object-fit:cover;object-position:top;
  transition:transform .5s ease;}
.cl-workdetail__media:hover img{transform:scale(1.04);}

/* ============================================================
   SERVICES — expandable cells with typed output
   ============================================================ */
.cl-cell{padding:0;border-right:1px solid var(--line);transition:background .3s;}
.cl-cell:last-child{border-right:none;}
.cl-cell.is-open,.cl-cell:hover{background:rgba(196,154,58,.05);}
.cl-cell__head{display:flex;align-items:center;justify-content:space-between;width:100%;
  background:none;border:none;font-family:var(--mono);text-align:left;padding:34px 28px 0;}
.cl-cell__run{font-size:11px;letter-spacing:1px;color:var(--gold);opacity:.7;transition:opacity .25s;}
.cl-cell:hover .cl-cell__run{opacity:1;}
.cl-cell.is-open .cl-cell__run{opacity:0;}
.cl-cell__desc{font-size:12.5px;line-height:1.8;color:var(--muted);margin:14px 0 0;padding:0 28px 30px;}
.cl-cell.is-open .cl-cell__desc{padding-bottom:14px;}
.cl-cell__out{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.16,1,.3,1);
  padding:0 28px;}
.cl-cell.is-open .cl-cell__out{padding-bottom:30px;}
.cl-oline{font-size:12px;line-height:1.9;color:var(--gold2);white-space:pre-wrap;}

/* ============================================================
   GROWTH_FRAMEWORK — build console
   ============================================================ */
.cl-console{border:1px solid var(--line);background:rgba(196,154,58,.02);}
.cl-console__cmd{padding:16px 22px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--dim);letter-spacing:.5px;}
.cl-proc{padding:8px 0;}
.cl-procline{display:grid;grid-template-columns:46px 130px 1fr 120px 78px;align-items:center;gap:14px;
  padding:14px 22px;font-size:12.5px;opacity:.5;transition:opacity .35s,background .35s;}
.cl-procline.is-active{opacity:1;background:rgba(196,154,58,.05);}
.cl-procline.is-done{opacity:1;}
.cl-proc__idx{color:var(--dimmer);}
.cl-proc__name{color:var(--cream);letter-spacing:1px;}
.cl-proc__desc{color:var(--muted);}
.cl-proc__track{height:3px;background:rgba(196,154,58,.14);overflow:hidden;}
.cl-proc__bar{display:block;height:100%;width:0;background:var(--gold);transition:width .6s cubic-bezier(.16,1,.3,1);}
.cl-proc__status{text-align:right;color:var(--dimmer);letter-spacing:.5px;}
.cl-proc__status.is-ok{color:var(--gold2);}
.cl-console__done{padding:16px 22px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);
  opacity:0;transform:translateY(6px);transition:opacity .6s ease,transform .6s ease;}
.cl-console__done.is-in{opacity:1;transform:none;}
.cl-console__done .cl-key{color:var(--gold);}

/* ============================================================
   Footer social icons
   ============================================================ */
.cl-social{display:flex;align-items:center;gap:16px;}
.cl-social a{color:var(--dim);display:inline-flex;transition:color .25s;}
.cl-social a:hover{color:var(--gold);}
.cl-social svg{width:17px;height:17px;display:block;fill:currentColor;}

/* ============================================================
   Responsive — interactive pieces
   ============================================================ */
@media (max-width:820px){
  .cl-procline{grid-template-columns:40px 1fr 70px;}
  .cl-proc__desc,.cl-proc__track{display:none;}
  .cl-workdetail__inner{grid-template-columns:1fr;}
  .cl-workdetail__media img{height:180px;}
  .cl-workrow .cat{display:none;}
}
@media (max-width:540px){
  .cl-logo{font-size:18px;letter-spacing:3px;}
  .cl-workrow{flex-wrap:wrap;font-size:1rem;}
  .cl-workrow .dots{display:none;}
  .cl-workrow .metric{min-width:auto;}
  .cl-procline{grid-template-columns:38px 1fr 72px;padding:12px 16px;gap:10px;font-size:12px;}
  .cl-console__cmd{padding:14px 16px;font-size:11.5px;}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
  html{scroll-behavior:auto;}
  [data-reveal]{opacity:1 !important;transform:none !important;}
  .cl-step__bar{width:100% !important;}
}
