:root{
  --bg:#0F1115; --bg-alt:#171A21; --bg-alt-2:#1D212B;
  --accent:#FF5A36; --accent-2:#4ECDC4;
  --text:#F5F3EE; --muted:#9295A3; --line:#282B34;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--text); font-family:'Inter',sans-serif; line-height:1.5; -webkit-font-smoothing:antialiased;}
@media (prefers-reduced-motion: reduce){*{transition-duration:0.01ms !important; scroll-behavior:auto !important;}}
h1,h2,h3{font-family:'Space Grotesk',sans-serif; letter-spacing:-0.02em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; height:auto;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
.wrap-narrow{max-width:740px; margin:0 auto; padding:0 32px;}
:focus-visible{outline:2px solid var(--accent-2); outline-offset:3px;}

/* nav */
.site-nav{position:sticky; top:0; z-index:50; background:rgba(15,17,21,0.85); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.site-nav .wrap{display:flex; align-items:center; justify-content:space-between; height:72px; gap:16px;}
.logo{display:flex; align-items:center; gap:10px; font-weight:600; font-size:1.05rem; white-space:nowrap;}
.logo-mark{width:10px; height:10px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(255,90,54,0.15);}
.nav-links{display:flex; gap:32px; font-size:0.9rem; color:var(--muted);}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--text);}
.nav-cta{font-size:0.85rem; font-family:'IBM Plex Mono',monospace; padding:9px 18px; border:1px solid var(--line); border-radius:100px; white-space:nowrap; transition:border-color .2s, background .2s;}
.nav-cta:hover{border-color:var(--accent); background:rgba(255,90,54,0.08);}
@media (max-width:760px){.nav-links{display:none;}}

/* shared bits */
.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--accent-2); letter-spacing:0.08em; text-transform:uppercase; display:flex; align-items:center; gap:10px; margin-bottom:20px;}
.eyebrow::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--accent-2);}
.section-tag{font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--accent); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:12px; display:block;}
.section-tag.teal{color:var(--accent-2);}
.btn-primary{background:var(--accent); color:#0F1115; font-weight:600; padding:14px 26px; border-radius:8px; font-size:0.95rem; display:inline-block; border:none; cursor:pointer; font-family:'Inter',sans-serif; transition:transform .15s, box-shadow .15s;}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 8px 24px rgba(255,90,54,0.28);}
.btn-primary.small{padding:11px 18px; font-size:0.88rem;}
.btn-secondary{padding:14px 26px; border-radius:8px; border:1px solid var(--line); font-size:0.95rem; display:inline-block;}
.btn-secondary:hover{border-color:var(--muted);}

.page-head{padding:80px 0 56px; border-bottom:1px solid var(--line);}
.page-head h1{font-size:clamp(2.2rem,5vw,3.6rem); font-weight:700; line-height:1.05; max-width:820px;}
.page-head .sub{margin-top:20px; font-size:1.1rem; color:var(--muted); max-width:580px;}
.disclosure{margin-top:24px; font-family:'IBM Plex Mono',monospace; font-size:0.76rem; color:var(--muted); max-width:640px; border-left:2px solid var(--line); padding-left:14px;}

/* post cards */
.blog-grid-wrap{padding-top:56px; padding-bottom:24px;}
.post-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.post-card{background:var(--bg-alt); border:1px solid var(--line); border-radius:14px; overflow:hidden; display:flex; flex-direction:column; transition:border-color .2s, transform .2s;}
.post-card:hover{border-color:var(--muted); transform:translateY(-3px);}
.post-card-img{aspect-ratio:1200/630; background:var(--bg-alt-2); overflow:hidden;}
.post-card-img img{width:100%; height:100%; object-fit:cover; display:block;}
.card-ph{width:100%; height:100%; background:repeating-linear-gradient(90deg,var(--line) 0 3px,transparent 3px 8px); opacity:.5;}
.post-card-body{padding:22px 22px 26px;}
.post-meta{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--accent-2); text-transform:uppercase; letter-spacing:0.05em;}
.post-card h3{font-size:1.08rem; font-weight:600; margin:10px 0 8px; line-height:1.3;}
.post-card p{color:var(--muted); font-size:0.9rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
@media (max-width:900px){.post-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.post-grid{grid-template-columns:1fr;}}

/* single post */
.post-head{padding-top:56px; padding-bottom:28px;}
.back{font-family:'IBM Plex Mono',monospace; font-size:0.8rem; color:var(--muted); display:block; width:max-content; margin-bottom:28px;}
.back:hover{color:var(--accent-2);}
.post-head h1{font-size:clamp(2rem,4.6vw,3rem); font-weight:700; line-height:1.1; margin-top:14px;}
.post-head{padding-bottom:36px;}
.post-hero{margin:0 0 40px; border-radius:14px; overflow:hidden; border:1px solid var(--line);}
.post-hero img{display:block; width:100%;}
.prose{font-size:1.06rem; line-height:1.75; color:#D9D7D2; padding-bottom:72px;}
.prose > * + *{margin-top:1.1em;}
.prose h2{font-size:1.6rem; font-weight:600; line-height:1.25; color:var(--text); margin-top:2em;}
.prose h3{font-size:1.25rem; font-weight:600; color:var(--text); margin-top:1.7em;}
.prose h4{font-size:1.05rem; color:var(--text); margin-top:1.5em;}
.prose a{color:var(--accent-2); text-decoration:underline; text-decoration-color:rgba(78,205,196,.4); text-underline-offset:3px;}
.prose a:hover{color:var(--accent); text-decoration-color:var(--accent);}
.prose strong,.prose b{color:var(--text); font-weight:600;}
.prose ul,.prose ol{padding-left:1.4em;}
.prose li + li{margin-top:.45em;}
.prose li::marker{color:var(--accent-2);}
.prose blockquote{border-left:3px solid var(--accent); padding:4px 0 4px 20px; color:var(--text); font-size:1.12rem;}
.prose img{border-radius:10px; border:1px solid var(--line); display:block;}
.prose figure{margin:1.6em 0;}
.prose figcaption{font-size:.85rem; color:var(--muted); margin-top:8px;}
.prose hr{border:none; border-top:1px solid var(--line); margin:2.4em 0;}
.prose table{width:100%; border-collapse:collapse; font-size:.95rem; display:block; overflow-x:auto;}
.prose th,.prose td{border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top;}
.prose th{background:var(--bg-alt); color:var(--text); font-family:'Space Grotesk',sans-serif;}
.prose code{font-family:'IBM Plex Mono',monospace; font-size:.9em; background:var(--bg-alt); padding:2px 6px; border-radius:4px;}
.related{padding-top:64px; padding-bottom:16px; border-top:1px solid var(--line);}
.related .section-tag{margin-bottom:24px;}

/* resources */
.res-wrap{padding-top:16px;}
.res-section{padding:56px 0 8px;}
.res-section h2{font-size:clamp(1.5rem,3vw,2rem); font-weight:600; margin-bottom:24px;}
.res-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px;}
.res-card{background:var(--bg-alt); border:1px solid var(--line); border-radius:14px; padding:26px; display:flex; flex-direction:column;}
.res-card h3{font-size:1.05rem; font-weight:600; margin-bottom:8px;}
.res-card p{color:var(--muted); font-size:.9rem; flex:1; margin-bottom:16px;}
.res-link{font-family:'IBM Plex Mono',monospace; font-size:.8rem; color:var(--accent-2);}
.res-link:hover{color:var(--accent);}

/* contact */
.contact-wrap{padding-top:56px; padding-bottom:96px;}
.contact-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:24px; align-items:start;}
.contact-side{display:flex; flex-direction:column; gap:20px;}
.panel{background:var(--bg-alt); border:1px solid var(--line); border-radius:16px; padding:32px;}
.panel p{color:var(--muted); font-size:.92rem; margin:4px 0 18px;}
.panel p:last-child{margin-bottom:0;}
.panel ul{color:var(--muted); font-size:.92rem; padding-left:18px; line-height:1.8;}
.contact-form label{display:block; font-family:'IBM Plex Mono',monospace; font-size:.78rem; color:var(--muted); margin-bottom:6px;}
.contact-form input,.contact-form textarea{width:100%; background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:13px 16px; color:var(--text); font-family:'Inter',sans-serif; font-size:.95rem; margin-bottom:20px;}
.contact-form textarea{resize:vertical;}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent-2); outline:none;}
.sent-msg{background:rgba(78,205,196,.1); border:1px solid var(--accent-2); color:var(--accent-2); border-radius:8px; padding:14px 16px; margin-bottom:24px; font-family:'IBM Plex Mono',monospace; font-size:.85rem;}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;} .panel{padding:24px;}}

/* deals */
.deals-wrap{padding-top:48px; padding-bottom:24px; display:grid; gap:20px;}
.deal{display:grid; grid-template-columns:minmax(0,400px) 1fr; gap:32px; align-items:center; background:var(--bg-alt); border:1px solid var(--line); border-radius:16px; padding:24px;}
.deal img{border-radius:10px; display:block; width:100%;}
.deal h3{font-size:1.25rem; font-weight:600; margin-bottom:12px;}
.deal ul{color:var(--muted); font-size:.92rem; padding-left:18px; margin-bottom:20px;}
.deal li + li{margin-top:6px;}
.deal li strong,.deal li b{color:var(--text); font-weight:600;}
@media (max-width:760px){.deal{grid-template-columns:1fr; gap:20px;}}

/* cta + footer */
.cta-wrap{padding-top:72px; padding-bottom:24px;}
.cta-block{background:linear-gradient(160deg,var(--bg-alt-2),var(--bg-alt)); border:1px solid var(--line); border-radius:20px; padding:64px 48px; text-align:center;}
.cta-block h2{font-size:clamp(1.7rem,4vw,2.5rem); font-weight:700;}
.cta-block p{color:var(--muted); margin:16px auto 28px; max-width:480px;}
.site-footer{padding:56px 0 48px;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; font-size:.85rem; color:var(--muted); font-family:'IBM Plex Mono',monospace; padding-top:24px; border-top:1px solid var(--line);}
.footer-links{display:flex; gap:20px; flex-wrap:wrap;}
.footer-bottom a:hover{color:var(--text);}
@media (max-width:600px){.wrap,.wrap-narrow{padding-left:20px; padding-right:20px;} .cta-block{padding:44px 22px;} .page-head{padding:56px 0 40px;}}
.deals-h2{font-size:clamp(1.5rem,3vw,2rem); font-weight:600; margin:40px 0 4px;}
.deal-desc{color:var(--muted); font-size:.95rem; margin-bottom:20px;}
