/* ============================================================
   kamildzikowski.com — "Operator's Dossier" design system
   Palette: Espresso & Gold · Type: Newsreader / Hanken / IBM Plex Mono
   ============================================================ */
:root{
  --ground:#16130D; --ground-2:#1E1A11; --panel:#221D13;
  --text:#ECE4D3; --muted:#A89E89; --faint:#6E6754;
  --heading:#FFFFFF; --accent:#E3A53D; --accent-2:#7FA89E;
  --hairline:rgba(236,228,211,.13); --hairline-2:rgba(236,228,211,.22);
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --maxw:1140px; --radius:14px;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;background:var(--ground);color:var(--text);font-family:var(--sans);
  font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;text-underline-offset:3px;}
::selection{background:var(--accent);color:var(--ground);}
h1,h2,h3,h4{font-family:var(--serif);color:var(--heading);line-height:1.18;font-weight:600;letter-spacing:-.01em;}

/* shared structural devices */
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);display:inline-flex;align-items:center;gap:.7em;}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--accent);}
.btn{font-family:var(--mono);font-size:.8rem;letter-spacing:.07em;text-transform:uppercase;display:inline-flex;
  align-items:center;gap:.5em;padding:13px 22px;border-radius:3px;background:var(--accent);color:#1a1407;
  font-weight:600;border:1px solid var(--accent);transition:background .2s,transform .2s;}
.btn:hover{background:#EFB451;transform:translateY(-1px);text-decoration:none;}
/* A solid .btn always sits on the gold accent, so its label MUST stay dark. Guard
   it with !important so a scoped section link rule (e.g. `.service-content a{color:
   var(--accent)}`, which Astro raises to specificity (0,2,1) via its data-cid attr)
   can never render a button gold-on-gold. Ghost buttons are transparent and keep
   their own colour, so they're excluded. */
.btn:not(.btn-ghost):not(.btn--ghost){color:#1a1407 !important;}
.btn-ghost,.btn--ghost{background:transparent;color:var(--text);border-color:var(--hairline-2);}
.btn-ghost:hover,.btn--ghost:hover{background:transparent;border-color:var(--accent);color:var(--accent);}

/* ---------- header / nav ---------- */
header{position:sticky;top:0;z-index:100;background:rgba(22,19,13,.86);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline);display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;padding:14px 28px;}
header .logo{display:flex;align-items:center;}
header .logo img{height:40px;width:auto;}
.brand{display:flex;flex-direction:column;line-height:1.05;gap:4px;}
.brand .name,header h1{font-family:var(--serif);font-weight:600;font-size:1.2rem;color:var(--heading);margin:0;}
.brand-lockup{display:flex;align-items:center;gap:12px;}
.h1-sub,.brand .kick{font-family:var(--mono);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-weight:500;}
.slogan{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:.95rem;margin-left:auto;}
.hamburger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:8px;margin-left:auto;}
.hamburger span{width:24px;height:2px;background:var(--text);display:block;}
nav{flex-basis:100%;}
nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 22px;margin:6px 0 0;padding:0;}
nav a{font-family:var(--sans);font-size:.95rem;color:var(--muted);padding:5px 1px;border-bottom:2px solid transparent;transition:color .18s;}
nav a:hover,nav a.active{color:var(--accent);border-bottom-color:var(--accent);text-decoration:none;}

/* ---------- layout ---------- */
main{max-width:var(--maxw);margin:0 auto;padding:64px 28px 84px;}
.page-hero{margin-bottom:3em;max-width:760px;}
.page-hero h2{font-size:clamp(2rem,4.4vw,3.1rem);margin:.25em 0 .35em;}
.page-hero p{color:var(--muted);font-size:1.18rem;line-height:1.6;}
.home-hero h2{font-size:clamp(2.4rem,6vw,4.4rem);}
.section-head,.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:3em 0 1.4em;}
.section-head h2,.sec-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:.3em 0 0;}
.see-all,.section-head .link,.sec-head .link{font-family:var(--mono);font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);white-space:nowrap;}

/* stat ledger */
.ledger{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hairline-2);margin:2.4em 0;}
.ledger .cell{padding:24px 24px 28px;border-right:1px solid var(--hairline);}
.ledger .cell:last-child{border-right:0;}
.ledger .num{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1;display:block;color:var(--heading);}
.ledger .num .unit{color:var(--accent);}
.ledger .lbl{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:11px;display:block;}

/* ---------- post grid / cards ---------- */
.post-grid{display:grid;grid-template-columns:1fr;gap:22px;}
@media(min-width:720px){.post-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1000px){.post-grid{grid-template-columns:repeat(3,1fr);}}
.post-card{background:var(--ground-2);border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .16s,border-color .16s;}
.post-card:hover{transform:translateY(-3px);border-color:var(--accent);}
.post-featured-image{width:100%;height:184px;object-fit:cover;}
.post-content{padding:18px 22px 24px;display:flex;flex-direction:column;flex:1;}
.post-card h2{font-size:1.28rem;margin:0 0 .35em;}
.post-card h2 a{color:var(--heading);}
.post-card h2 a:hover{color:var(--accent);text-decoration:none;}
.post-meta{font-family:var(--mono);color:var(--faint);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.9em;}
.post-excerpt{color:var(--muted);flex:1;margin:0 0 1.1em;}
.read-more{font-family:var(--mono);font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;font-weight:500;}

/* ---------- single post / article ---------- */
.blog-post{max-width:760px;}
.back-to-blog{font-family:var(--mono);font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;display:inline-block;margin-bottom:1.4em;}
.language-switcher{display:flex;gap:14px;margin-bottom:1em;}
.blog-post article h1{font-size:clamp(2rem,4.2vw,3rem);margin:0 0 .25em;}
.blog-post .subtitle{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:1.25rem;margin:0 0 1em;}
.featured-image{width:100%;border-radius:12px;margin:1.5em 0 2em;object-fit:cover;}
.post-body{font-size:1.08rem;}
.post-body h2{margin-top:1.7em;font-size:1.7rem;}
.post-body h3{margin-top:1.4em;font-size:1.32rem;}
.post-body a{text-decoration:underline;text-underline-offset:2px;}
.post-body img{border-radius:10px;margin:1.4em 0;}
.post-body blockquote{border-left:2px solid var(--accent);margin:1.6em 0;padding:.2em 0 .2em 24px;font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--text);}
.post-body pre{background:#0F0C07;border:1px solid var(--hairline);padding:16px;border-radius:10px;overflow-x:auto;}
.post-body code{font-family:var(--mono);font-size:.92em;}
.post-body table{width:100%;border-collapse:collapse;margin:1.8em 0;display:block;overflow-x:auto;}
.post-body th,.post-body td{border:1px solid var(--hairline);padding:12px 14px;text-align:left;}
.post-body th{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);}
.custom-footer{border:1px solid var(--hairline);background:var(--ground-2);padding:22px 24px;border-radius:12px;margin:2.6em 0;}
.related{margin-top:3.4em;}.related h2{margin-bottom:1em;}

/* ---------- services (dossier rows) ---------- */
.svc{border-top:1px solid var(--hairline);}
.svc-row{display:grid;grid-template-columns:60px 1fr auto;gap:26px;align-items:baseline;padding:28px 6px;
  border-bottom:1px solid var(--hairline);transition:background .2s,padding .2s;}
.svc-row:hover{background:linear-gradient(90deg,rgba(227,165,61,.06),transparent 70%);padding-left:16px;}
.svc-row .si{font-family:var(--mono);font-size:.85rem;color:var(--accent);}
.svc-row h3{font-size:1.45rem;margin:0 0 6px;}
.svc-row p{margin:0;color:var(--muted);max-width:62ch;}
.svc-row .go{font-family:var(--mono);color:var(--faint);transition:color .2s,transform .2s;}
.svc-row:hover .go{color:var(--accent);transform:translateX(4px);}

/* ---------- apps / products ---------- */
.apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);margin-bottom:72px;}
.app-card{background:var(--ground-2);padding:28px;display:flex;flex-direction:column;gap:13px;transition:background .2s;}
.app-card:hover{background:var(--panel);}
.app-card .ai{width:54px;height:54px;border-radius:12px;overflow:hidden;border:1px solid var(--hairline-2);}
.app-card h3{font-size:1.32rem;margin:0;}
.app-card .tag{color:var(--muted);font-size:.96rem;margin:0;flex:1;}
.app-card .status{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.5em;color:var(--accent-2);}
.app-card .status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-2);}
.app-card.soon .status,.app-card.soon .status::before{color:var(--faint);background:var(--faint);}
.app-detail{border-top:1px solid var(--hairline-2);padding-top:46px;}
.app-detail .ad-head{display:flex;gap:22px;align-items:center;margin-bottom:14px;}
.app-detail .ad-icon{width:76px;height:76px;border-radius:18px;overflow:hidden;border:1px solid var(--hairline-2);}
.app-detail .ad-sub{color:var(--muted);font-size:1.1rem;margin:2px 0 0;}
.app-detail .ad-lede{max-width:60ch;color:#DDD4C0;font-size:1.08rem;margin:18px 0 30px;}
.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0 36px;}
.shots figure{margin:0;border:1px solid var(--hairline-2);border-radius:16px;overflow:hidden;background:#0F0C07;}
.shots figcaption{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:10px 12px;border-top:1px solid var(--hairline);}
.feat-list{display:grid;grid-template-columns:repeat(2,1fr);gap:13px 40px;list-style:none;padding:0;margin:0;}
.feat-list li{padding-left:22px;position:relative;color:var(--muted);}
.feat-list li::before{content:"▸";position:absolute;left:0;color:var(--accent);}

/* ---------- case studies ---------- */
.case{border-top:1px solid var(--hairline);}
.case-row{display:grid;grid-template-columns:1.4fr .7fr .7fr auto;gap:26px;align-items:center;padding:26px 6px;
  border-bottom:1px solid var(--hairline);transition:background .2s,padding .2s;}
.case-row:hover{background:linear-gradient(90deg,rgba(227,165,61,.06),transparent 70%);padding-left:16px;}
.case-row h3{font-size:1.4rem;margin:0 0 4px;}
.case-row .role{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);}
.case-row .stat{font-family:var(--serif);font-weight:600;font-size:1.55rem;line-height:1;color:var(--heading);}
.case-row .stat .u{color:var(--accent);}
.case-row .stat small{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:400;margin-top:6px;}
.case-row .out{color:var(--muted);font-size:.95rem;max-width:34ch;}

/* ---------- social proof (shared component) ---------- */
.social-proof{margin:3em 0;}
.trust-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:24px;}
.trust-card{border:1px solid var(--hairline);border-radius:12px;background:var(--ground-2);padding:20px;}
.trust-card .score{font-family:var(--serif);font-weight:600;font-size:1.8rem;color:var(--accent);}
.review-strip{display:flex;gap:16px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;}
.review-strip img{height:230px;width:auto;border-radius:10px;border:1px solid var(--hairline);scroll-snap-align:start;}

/* ---------- home teasers ---------- */
.teaser-2{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.mini{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--hairline-2);background:var(--ground-2);padding:46px 28px;color:var(--muted);margin-top:40px;}
.footer-inner{max-width:var(--maxw);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;}
footer a:hover{color:var(--accent);}

/* ---------- cookie banner ---------- */
#cookie-consent-banner{position:fixed;bottom:0;left:0;width:100%;background:var(--ground-2);color:var(--text);z-index:9999;padding:16px 12px;box-shadow:0 -2px 16px rgba(0,0,0,.35);border-top:1px solid var(--hairline);}
.cc-inner{max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;font-size:.95rem;}
#cookie-consent-banner button{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:9px 16px;border-radius:3px;font-weight:600;cursor:pointer;border:0;margin-left:8px;}
#cookie-accept{background:var(--accent);color:#1a1407;}
#cookie-reject{background:var(--panel);color:var(--accent);border:1px solid var(--accent);}

/* ---------- motion + a11y ---------- */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(16px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;}
  .reveal.d1{animation-delay:.08s;}.reveal.d2{animation-delay:.16s;}.reveal.d3{animation-delay:.24s;}.reveal.d4{animation-delay:.32s;}
  @keyframes rise{to{opacity:1;transform:none;}}
}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* ---------- repositioning: offer ladder (Work With Me) ---------- */
.offer-ladder{display:grid;gap:20px;margin:2.4em auto;max-width:760px;}
.tier{background:var(--ground-2);border:1px solid var(--hairline);border-radius:var(--radius);padding:26px 28px;transition:border-color .16s,transform .16s;display:block;}
.tier:hover{border-color:var(--accent);transform:translateY(-3px);text-decoration:none;}
.tier .tier-badge{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.tier h3{color:var(--heading);margin:.4em 0 .2em;font-size:1.4rem;}
.tier .tier-meta{color:var(--muted);font-size:.9rem;margin:0 0 .6em;}
.tier p{color:var(--muted);margin:0;line-height:1.6;}
.tier .tier-go{font-family:var(--mono);font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-top:.7em;display:inline-block;}

/* ---------- repositioning: case studies ---------- */
.cs{max-width:820px;margin:0 auto;padding:0 1rem 3rem;}
.cs .page-hero{margin-bottom:1.4em;}
.cs-standfirst{font-size:1.16rem;color:var(--muted);line-height:1.6;border-left:2px solid var(--accent);padding-left:1.1em;margin:1.2em 0 2em;}
.cs p{color:var(--text);line-height:1.7;margin:0 0 1.2em;}
.cs h2{color:var(--heading);margin-top:1.9em;}
.cs h3{color:var(--heading);margin-top:0;}
.cs-phase{background:var(--ground-2);border:1px solid var(--hairline);border-radius:var(--radius);padding:20px 24px;margin:1.2em 0;}
.cs-phase .step{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.cs-outcomes{background:var(--ground-2);border:1px solid var(--hairline);border-radius:var(--radius);padding:18px 22px 18px 40px;margin:1.6em 0;box-shadow:0 2px 12px rgba(0,0,0,.25);}
.cs-outcomes li{margin-bottom:.5em;color:var(--text);}
.cs-outcomes li::marker{color:var(--accent);}
.confirm{color:#e8b45e;font-family:var(--mono);font-size:.85em;}

/* ---------- repositioning: contact routing block ---------- */
.routing-block{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:900px;margin:2em auto;padding:0 16px;}
.route-card{background:var(--ground-2);border:1px solid var(--hairline);border-radius:12px;padding:22px 20px;color:var(--text);display:flex;flex-direction:column;gap:.45em;transition:border-color .16s,transform .16s;}
.route-card:hover{border-color:var(--accent);transform:translateY(-3px);text-decoration:none;}
.route-card strong{color:var(--heading);}
.route-card .route-go{font-family:var(--mono);font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-top:auto;}

/* ---------- repositioning: footer additions ---------- */
.footer-tagline{width:100%;text-align:center;color:var(--muted);font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;margin-top:6px;}
.footer-links{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;}
.footer-links a{color:var(--muted);}

/* ---------- responsive ---------- */
@media (max-width:880px){
  .routing-block{grid-template-columns:1fr;}
  .slogan{display:none;}
  .hamburger{display:flex;}
  nav ul{display:none;flex-direction:column;gap:2px;}
  nav ul.open{display:flex;}
  nav a{padding:10px 1px;border-bottom:1px solid var(--hairline);}
  .ledger{grid-template-columns:repeat(2,1fr);}
  .ledger .cell:nth-child(2){border-right:0;}
  .ledger .cell:nth-child(1),.ledger .cell:nth-child(2){border-bottom:1px solid var(--hairline);}
  .apps-grid,.shots,.feat-list,.teaser-2{grid-template-columns:1fr;}
  .case-row{grid-template-columns:1fr 1fr;}.case-row .out{display:none;}
  .svc-row{grid-template-columns:40px 1fr;}.svc-row .go{display:none;}
  main{padding:44px 22px 64px;}
}
