/*! Codehimblog – generated by tools/build.mjs. Do not edit by hand: edit tools/src/base.css or the templates and rebuild. */
*,::before,::after{box-sizing:border-box;border:0 solid #e2e8f0}
html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;scroll-behavior:smooth;
font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;line-height:inherit;color:#0f172a;background:#f8fafc;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;margin:0}
p,blockquote,dl,dd,figure,pre,ol,ul{margin:0}
ol,ul{padding:0;list-style:none}
a{color:inherit;text-decoration:inherit}
b,strong{font-weight:600}
img,svg,video{display:block;max-width:100%}
img,video{height:auto}
button,input,select,textarea{font:inherit;color:inherit;margin:0}
button,select{text-transform:none}
button,[type=button],[type=submit]{-webkit-appearance:button;background:transparent;cursor:pointer}
input::placeholder{color:#64748b;opacity:1}
table{border-collapse:collapse;text-indent:0;border-color:inherit}
summary{cursor:pointer}
hr{height:0;border-top-width:1px;color:inherit}
[hidden]{display:none!important}
code,kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}
:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;left:1rem;top:-3rem;z-index:100;background:#0f172a;color:#fff;
padding:.5rem .875rem;border-radius:8px;font-weight:600;font-size:.875rem}
.skip-link:focus{top:.75rem}
.container{width:100%;max-width:76rem;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}
@media (min-width:640px){.container{padding-left:1.5rem;padding-right:1.5rem}}
.icon{width:1.25rem;height:1.25rem;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon-sm{width:1rem;height:1rem}
.icon-xs{width:.875rem;height:.875rem}
.icon-lg{width:1.5rem;height:1.5rem}
.app-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
border-radius:10px;color:#fff;font-weight:700;letter-spacing:-.02em;
background:var(--app-color,#2563eb)}
.search-input{appearance:none;width:100%;background:#fff;border:1px solid #cbd5e1;border-radius:10px;
padding:.75rem 1rem .75rem 2.75rem;font-size:1rem;line-height:1.5rem;color:#0f172a}
.search-input:focus{outline:2px solid #2563eb;outline-offset:0;border-color:#2563eb}
.search-input::-webkit-search-cancel-button{cursor:pointer}
.select{appearance:none;width:100%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .625rem center;
border:1px solid #cbd5e1;border-radius:8px;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;line-height:1.25rem}
.select:focus{outline:2px solid #2563eb;outline-offset:0;border-color:#2563eb}
@media (max-width:1023.98px){
.js .site-nav{display:none}
.js .site-nav.is-open{display:block}
}
.prose{color:#334155;font-size:1rem;line-height:1.75}
.prose > * + *{margin-top:1rem}
.prose h2{color:#0f172a;font-size:1.25rem;line-height:1.75rem;font-weight:700;margin-top:2rem;scroll-margin-top:6rem}
.prose h3{color:#0f172a;font-size:1.0625rem;font-weight:600;margin-top:1.5rem}
.prose ul{list-style:disc;padding-left:1.25rem}
.prose ol{list-style:decimal;padding-left:1.25rem}
.prose li + li{margin-top:.375rem}
.prose a{color:#1d4ed8;text-decoration:underline;text-underline-offset:2px}
.prose a:hover{color:#1e40af}
.prose strong{color:#0f172a}
.prose table{width:100%;font-size:.875rem}
.prose th,.prose td{border-bottom:1px solid #e2e8f0;padding:.5rem .75rem .5rem 0;text-align:left;vertical-align:top}
.prose th{color:#0f172a;font-weight:600}
.prose > :first-child{margin-top:0}
.placeholder{background:#fef3c7;color:#78350f;border:1px dashed #b45309;border-radius:4px;
padding:0 .3em;font-weight:600;font-style:normal}
.data-table{width:100%;font-size:.875rem;text-align:left}
.data-table th{font-weight:600;color:#475569;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;
padding:.625rem .75rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}
.data-table td{padding:.75rem;border-bottom:1px solid #e2e8f0;vertical-align:top}
.data-table tr:last-child td{border-bottom:0}
details > summary{list-style:none}
details > summary::-webkit-details-marker{display:none}
details[open] .chev{transform:rotate(90deg)}
.chev{transition:transform .15s}
.card-link:hover .card-title{color:#1d4ed8}
.stretched-link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.card-link:focus-within{outline:2px solid #2563eb;outline-offset:2px}
.card-link .stretched-link:focus-visible{outline:none}
.breadcrumb li + li::before{content:"/";margin:0 .5rem;color:#94a3b8}
/* utilities */
.absolute{position:absolute}
.bg-amber-50{background-color:#fffbeb}
.bg-blue-50{background-color:#eff6ff}
.bg-blue-600{background-color:#2563eb}
.bg-green-50{background-color:#f0fdf4}
.bg-slate-100{background-color:#f1f5f9}
.bg-slate-50{background-color:#f8fafc}
.bg-slate-900{background-color:#0f172a}
.bg-white{background-color:#ffffff}
.block{display:block}
.border{border-width:1px}
.border-amber-200{border-color:#fde68a}
.border-b{border-bottom-width:1px}
.border-blue-200{border-color:#bfdbfe}
.border-dashed{border-style:dashed}
.border-green-200{border-color:#bbf7d0}
.border-slate-200{border-color:#e2e8f0}
.border-slate-300{border-color:#cbd5e1}
.border-slate-700{border-color:#334155}
.border-t{border-top-width:1px}
.divide-y > :not([hidden]) ~ :not([hidden]){border-top-width:1px;border-bottom-width:0}
.flex{display:flex}
.flex-1{flex:1 1 0%}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.font-bold{font-weight:700}
.font-medium{font-weight:500}
.font-normal{font-weight:400}
.font-semibold{font-weight:600}
.gap-1{gap:0.25rem}
.gap-1\.5{gap:0.375rem}
.gap-10{gap:2.5rem}
.gap-2{gap:0.5rem}
.gap-2\.5{gap:0.625rem}
.gap-3{gap:0.75rem}
.gap-4{gap:1rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.grid{display:grid}
.h-10{height:2.5rem}
.h-11{height:2.75rem}
.h-16{height:4rem}
.h-8{height:2rem}
.h-9{height:2.25rem}
.h-full{height:100%}
.hidden{display:none}
.inline-flex{display:inline-flex}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.justify-end{justify-content:flex-end}
.leading-5{line-height:1.25rem}
.leading-6{line-height:1.5rem}
.leading-7{line-height:1.75rem}
.leading-8{line-height:2rem}
.left-0{left:0px}
.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.m-1\.5{margin:0.375rem}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-sm{max-width:24rem}
.max-w-xl{max-width:36rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.min-h-screen{min-height:100vh}
.min-w-0{min-width:0px}
.ml-4{margin-left:1rem}
.ml-auto{margin-left:auto}
.mt-0\.5{margin-top:0.125rem}
.mt-1{margin-top:0.25rem}
.mt-10{margin-top:2.5rem}
.mt-12{margin-top:3rem}
.mt-16{margin-top:4rem}
.mt-2{margin-top:0.5rem}
.mt-3{margin-top:0.75rem}
.mt-4{margin-top:1rem}
.mt-5{margin-top:1.25rem}
.mt-6{margin-top:1.5rem}
.mt-8{margin-top:2rem}
.mt-auto{margin-top:auto}
.mx-auto{margin-left:auto;margin-right:auto}
.overflow-x-auto{overflow-x:auto}
.p-3{padding:0.75rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.pb-12{padding-bottom:3rem}
.pb-3{padding-bottom:0.75rem}
.pb-4{padding-bottom:1rem}
.pl-3\.5{padding-left:0.875rem}
.pointer-events-none{pointer-events:none}
.pt-4{padding-top:1rem}
.pt-6{padding-top:1.5rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.px-3\.5{padding-left:0.875rem;padding-right:0.875rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.py-0\.5{padding-top:0.125rem;padding-bottom:0.125rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.py-16{padding-top:4rem;padding-bottom:4rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.relative{position:relative}
.right-0{right:0px}
.rounded-full{border-radius:9999px}
.rounded-lg{border-radius:0.5rem}
.rounded-md{border-radius:0.375rem}
.rounded-xl{border-radius:0.75rem}
.scroll-mt-24{scroll-margin-top:6rem}
.shadow-sm{box-shadow:0 1px 2px 0 rgb(0 0 0 / 0.05)}
.shrink-0{flex-shrink:0}
.space-y-1 > :not([hidden]) ~ :not([hidden]){margin-top:0.25rem}
.space-y-2 > :not([hidden]) ~ :not([hidden]){margin-top:0.5rem}
.space-y-3 > :not([hidden]) ~ :not([hidden]){margin-top:0.75rem}
.space-y-6 > :not([hidden]) ~ :not([hidden]){margin-top:1.5rem}
.space-y-8 > :not([hidden]) ~ :not([hidden]){margin-top:2rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
.sticky{position:sticky}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.text-amber-700{color:#b45309}
.text-amber-900{color:#78350f}
.text-base{font-size:1rem;line-height:1.5rem}
.text-blue-700{color:#1d4ed8}
.text-center{text-align:center}
.text-green-700{color:#15803d}
.text-green-800{color:#166534}
.text-left{text-align:left}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-right{text-align:right}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-slate-500{color:#64748b}
.text-slate-600{color:#475569}
.text-slate-700{color:#334155}
.text-slate-900{color:#0f172a}
.text-sm{font-size:0.875rem;line-height:1.25rem}
.text-white{color:#ffffff}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-xs{font-size:0.75rem;line-height:1rem}
.top-0{top:0px}
.tracking-tight{letter-spacing:-0.025em}
.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.w-10{width:2.5rem}
.w-11{width:2.75rem}
.w-16{width:4rem}
.w-44{width:11rem}
.w-64{width:16rem}
.w-8{width:2rem}
.w-9{width:2.25rem}
.w-full{width:100%}
.whitespace-nowrap{white-space:nowrap}
.z-40{z-index:40}
.group:hover .group-hover\:text-blue-700{color:#1d4ed8}
.hover\:bg-blue-50:hover{background-color:#eff6ff}
.hover\:bg-blue-700:hover{background-color:#1d4ed8}
.hover\:bg-slate-100:hover{background-color:#f1f5f9}
.hover\:bg-slate-50:hover{background-color:#f8fafc}
.hover\:border-blue-300:hover{border-color:#93c5fd}
.hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)}
.hover\:text-blue-700:hover{color:#1d4ed8}
.hover\:text-slate-900:hover{color:#0f172a}
.hover\:text-white:hover{color:#ffffff}
.hover\:underline:hover{text-decoration-line:underline}
@media (min-width:640px){
.sm\:col-span-2{grid-column:span 2 / span 2}
.sm\:flex-row{flex-direction:row}
.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sm\:items-start{align-items:flex-start}
.sm\:p-8{padding:2rem}
.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.sm\:py-16{padding-top:4rem;padding-bottom:4rem}
.sm\:py-24{padding-top:6rem;padding-bottom:6rem}
.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}
.sm\:text-5xl{font-size:3rem;line-height:1}
}
@media (min-width:768px){
.md\:block{display:block}
.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.md\:hidden{display:none}
.md\:ml-2{margin-left:0.5rem}
}
@media (min-width:1024px){
.lg\:col-span-1{grid-column:span 1 / span 1}
.lg\:col-span-2{grid-column:span 2 / span 2}
.lg\:flex{display:flex}
.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.lg\:hidden{display:none}
.lg\:sticky{position:sticky}
.lg\:top-24{top:6rem}
}
