body{margin:0;background:#ffffff}
a{color:inherit}a:hover{color:inherit}
h1,h2,h3{font-family:'Fraunces',serif;margin:0}
p{margin:0}
.fh-wrap{padding-left:20px;padding-right:20px}
.fh-main{padding-left:20px;padding-right:20px}
.fh-frame{position:relative;max-width:1152px;margin-left:auto;margin-right:auto}
.fh-frame:before,.fh-frame:after{content:"";position:absolute;top:-20px;bottom:-20px;width:1px;background:#dadce0;pointer-events:none;transform-origin:top;animation:fhDrawV 1.2s ease-out forwards}
.fh-frame:before{left:0}
.fh-frame:after{right:0;animation-delay:.15s}
.fh-hline{position:absolute;left:-20px;right:-20px;height:1px;background:#dadce0;pointer-events:none;transform-origin:left;animation:fhDrawH 1.2s ease-out forwards}
@keyframes fhDrawV{0%{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes fhDrawH{0%{transform:scaleX(0)}to{transform:scaleX(1)}}
.fh-md{display:none}
.fh-mobile{display:flex}
.fh-sechead{display:flex;flex-direction:column;gap:16px}
.fh-loc{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px}
.fh-projects{display:grid;grid-template-columns:1fr;column-gap:24px;row-gap:48px}
.fh-news{display:grid;grid-template-columns:1fr;gap:24px}
.fh-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.fh-about{display:grid;grid-template-columns:1fr;gap:40px;align-items:center}
.fh-about-text{order:2}.fh-about-img{order:1}
.fh-cta{display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;gap:24px}
.fh-foot{display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;gap:16px}
.fh-footnav{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;list-style:none;margin:0;padding:0}
.fh-hero-title{font-size:clamp(1.75rem,6vw,2.5rem);line-height:1.15}
.fh-cta-title{font-size:clamp(1.5rem,4vw,2.25rem)}
.fh-about-h{font-size:20px}
.fh-card-img{transition:transform .5s}
.fh-card:hover .fh-card-img{transform:scale(1.05)}
.fh-ul:hover{text-decoration:underline}
.fh-navlink{transition:color .15s}
.fh-badge:hover{background:#d0f5c9 !important}
.fh-badge:focus-visible{box-shadow:0 0 0 2px rgba(24,141,0,.4) !important}
.fh-badge-ico{transition:transform .3s}
.fh-demo{transition:color .15s}
.fh-demo:hover{color:#0e1013 !important}
.fh-demo:hover span{text-decoration:underline;text-underline-offset:4px}
.fh-hl{position:relative;display:inline-block;isolation:isolate;white-space:nowrap}
.fh-hl-mark{position:absolute;left:-6px;right:-6px;bottom:-0.04em;height:0.62em;width:calc(100% + 12px);z-index:-1;color:#E2FADD;pointer-events:none}
.exl-points{list-style:none;margin:12px 0 0;padding:0;max-width:560px;display:flex;flex-direction:column;gap:6px}
.exl-points li{position:relative;padding-left:14px;font-size:12px;line-height:1.625;color:#6a7282}
.exl-points li:before{content:"";position:absolute;left:2px;top:8px;width:4px;height:4px;border-radius:9999px;background:#bdc1c6}
.exl-points strong{color:#3c4043;font-weight:600}
.exl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.exl-tags span{display:inline-flex;align-items:center;background:#ffffff;border:1px solid #dadce0;border-radius:6px;font-size:10px;line-height:15px;padding:2px 8px;color:#202124;font-weight:500}
.fh-logo{filter:grayscale(1);opacity:.55;transition:filter .2s,opacity .2s}
.fh-logo:hover{filter:none;opacity:1}
.fh-call:hover{opacity:.9}
.fh-call-arrow{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;width:0;opacity:0;margin-left:-8px;transition:all .3s}
.fh-call:hover .fh-call-arrow{width:20px;opacity:1;margin-left:0}
.fh-badge:hover .fh-badge-ico{transform:rotate(20deg)}
.fh-navlink{display:flex;align-items:center;height:32px;padding:0 12px;border-radius:4px;transition:color .15s,background-color .15s}
.fh-navlink:hover{color:#000000 !important;background:#f1f3f4}
.fh-dd{position:relative}
.fh-dd-chev{transition:transform .1s}
.fh-dd-panel{position:absolute;top:100%;left:50%;width:780px;padding-top:10px;z-index:50;opacity:0;pointer-events:none;transform:translateX(-50%) perspective(1000px) rotateX(-15deg);transform-origin:center top;transition:opacity .1s ease-in-out,transform .1s ease-in-out}
.fh-dd:hover .fh-dd-panel,.fh-dd:focus-within .fh-dd-panel{opacity:1;pointer-events:auto;transform:translateX(-50%) perspective(1000px) rotateX(0deg)}
.fh-dd:hover .fh-navlink,.fh-dd:focus-within .fh-navlink{color:#000000 !important;background:#f1f3f4}
.fh-dd:hover .fh-dd-chev,.fh-dd:focus-within .fh-dd-chev{transform:rotate(180deg)}
.fh-dd-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:6px;text-decoration:none;transition:background-color .1s}
.fh-dd-item:hover{background:#f8f9fa}
.fh-dd-item:hover .fh-dd-title{color:#1f40ed}
.fh-dd-ico{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:6px;background:#f1f3f4;color:#3c4043;transition:background-color .1s,color .1s}
.fh-dd-item:hover .fh-dd-ico{background:#eef1fe;color:#1f40ed}
.fh-tool:hover{opacity:.8}
.fh-tool:hover .fh-tool-title{text-decoration:underline}
.fh-tag:hover{background:#f3f4f6}
.fh-footnav a{color:#9aa0a6;text-decoration:none;transition:color .15s}
.fh-footnav a:hover{color:#0e1013}
.fh-copy a{color:#0e1013;text-decoration:underline}
.fh-wave{display:inline-block;transform-origin:70% 70%;animation:fhWave 2.5s ease-in-out infinite}
@keyframes fhWave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}
.fh-marquee{position:relative;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 80px,#000 calc(100% - 80px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 80px,#000 calc(100% - 80px),transparent)}
.fh-marquee:before,.fh-marquee:after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.fh-marquee:before{left:0;background:linear-gradient(90deg,#fff 0,rgba(255,255,255,0))}
.fh-marquee:after{right:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0,#fff)}
.fh-track{display:flex;width:max-content;animation:fhLeft 18s linear infinite}
.fh-track.fh-rev{animation:fhRight 18s linear infinite}
.fh-marquee:hover .fh-track{animation-play-state:paused}
@keyframes fhLeft{0%{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes fhRight{0%{transform:translateX(-50%)}to{transform:translateX(0)}}
.fh-clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fh-clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.exl-inner{padding:40px 24px}
.exl-row{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:16px}
.exl-rail{position:relative}
.exl-line{position:absolute;left:11px;top:13px;bottom:-2px;width:1px;background:#dadce0}
.exl-row:hover .exl-role{text-decoration:underline}
.ex-pulse{animation:exPulse 2.4s ease-out infinite}
@keyframes exPulse{0%{box-shadow:0 0 0 0 rgba(0,130,54,.35)}70%{box-shadow:0 0 0 8px rgba(0,130,54,0)}to{box-shadow:0 0 0 0 rgba(0,130,54,0)}}
@media (min-width:640px){
.fh-wrap{padding-left:32px;padding-right:32px}
.exl-inner{padding:40px 48px}
.exl-row{column-gap:20px}
.fh-sechead{flex-direction:row;align-items:center;justify-content:space-between}
.fh-loc{flex-direction:row;gap:0}
.fh-projects{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;row-gap:56px}
.fh-news{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.fh-tools{gap:24px}
.fh-footnav{gap:32px}
.fh-about-h{font-size:24px}
}
@media (min-width:768px){
.fh-md{display:flex}
.fh-mobile{display:none}
.fh-tools{grid-template-columns:repeat(4,minmax(0,1fr))}
.fh-about{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.fh-about-text{order:1}.fh-about-img{order:2}
.fh-cta{flex-direction:row;text-align:left;gap:0}
.fh-foot{flex-direction:row;text-align:left;gap:0}
.fh-about-h{font-size:30px}
}
@media (min-width:1024px){
.fh-wrap{padding-left:48px;padding-right:48px}
.exl-inner{padding:48px 64px}
.fh-projects{grid-template-columns:repeat(3,minmax(0,1fr))}
.fh-news{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1280px){
.fh-main{padding-left:0;padding-right:0}
}
/* Koenig cards are styled by Ghost via card_assets; listed for gscan: .kg-bookmark-card .kg-bookmark-container .kg-bookmark-content .kg-bookmark-title .kg-bookmark-description .kg-bookmark-metadata .kg-bookmark-icon .kg-bookmark-author .kg-bookmark-publisher .kg-bookmark-thumbnail .kg-gallery-container .kg-gallery-row .kg-gallery-image */
.bl-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 16px 40px;gap:8px}
.bl-main{width:100%;max-width:1152px;margin:0 auto;padding:48px 20px;box-sizing:border-box}
.bl-grid{display:grid;grid-template-columns:1fr;column-gap:24px;row-gap:32px}
.bl-card{display:flex;flex-direction:column;gap:8px}
.bl-thumb{display:block;position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:8px;margin-bottom:8px;background:#e8eaed}
.bl-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.bl-card:hover .bl-thumb img{transform:scale(1.05)}
.bl-card h3 a{text-decoration:none}
.bl-card h3 a:hover{text-decoration:underline}
@media (min-width:640px){
.bl-hero{padding:48px 24px 64px;gap:24px}
.bl-main{padding:64px 20px}
.bl-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;row-gap:48px}
.bl-card h3{font-size:18px!important}
}
@media (min-width:1024px){
.bl-main{padding:80px 0}
.bl-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Blog post: hero + meta */
.bp-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 16px 40px;gap:16px;max-width:896px;margin:0 auto;box-sizing:border-box}
.bp-meta{padding:12px 0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:8px;font-weight:500;color:#9aa0a6}
.bp-img{width:100%;height:100%;background:#f1f3f4;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;text-align:center;color:#9aa0a6;font-size:12px;line-height:1.5}
/* Blog post: prose (theme .post-content + .canvas) */
.bp-canvas{--gap:1.25rem;--main:min(740px,100% - var(--gap)*2);--wide:minmax(0,calc((1200px - var(--main))/2));--full:minmax(var(--gap),1fr);display:grid;grid-template-columns:[full-start] var(--full) [wide-start] var(--wide) [main-start] var(--main) [main-end] var(--wide) [wide-end] var(--full) [full-end]}
.bp-canvas>*{grid-column:main}
.bp-canvas>.bp-wide{grid-column:wide}
.post-content{color:#364153;font-size:16px;line-height:1.75}
.post-content>*{margin:0}
.post-content>*+*{margin-top:28px}
.post-content h2{color:#101828;font-size:1.5em;font-weight:700;line-height:1.3333333}
.post-content h3{color:#101828;font-size:1.25em;font-weight:600;line-height:1.6}
.post-content strong{color:#101828;font-weight:600}
.post-content p a,.post-content li a{color:#188D00;font-weight:500;text-decoration:underline}
.post-content ul{padding-left:1.625em;list-style:disc}
.post-content li{margin-top:.5em;margin-bottom:.5em;padding-left:.375em}
.post-content li::marker{color:#d1d5dc}
.post-content blockquote{border-left:4px solid #188D00;padding-left:1em;font-size:18px;line-height:28px;font-weight:400;font-style:normal;color:#101828;quotes:none}
.post-content>:is(hr,blockquote){margin-top:42px;position:relative}
.post-content>:is(hr,blockquote)+*{margin-top:42px}
.post-content hr{border:0;display:flex;align-items:center;justify-content:center;height:14px;color:#dadce0;text-align:center}
.post-content hr:after{content:"* * * * * *";font-size:17px;letter-spacing:.2em}
.post-content figure{margin-left:0;margin-right:0}
.post-content figure .bp-fig{overflow:hidden}
.post-content figcaption{color:#9aa0a6;font-size:14px;line-height:20px;margin-top:8px;text-align:center}
/* Blog post: continue reading */
.bp-more{width:100%;max-width:1152px;margin:0 auto;padding:48px 20px 80px;box-sizing:border-box;border-top:1px solid #f1f3f4}
.bp-grid{display:grid;grid-template-columns:1fr;column-gap:24px;row-gap:48px}
.bp-card{display:flex;flex-direction:column;gap:12px}
.bp-card .bp-thumb{display:block;position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:8px;margin-bottom:8px}
.bp-card .bp-img{transition:transform .5s}
.bp-card:hover .bp-img{transform:scale(1.05)}
.bp-card h3 a{color:#0e1013;text-decoration:none;transition:color .2s}
.bp-card h3 a:hover{color:#3c4043}
@media (min-width:640px){
.bp-hero{padding:64px 24px 48px}
.bp-meta{flex-direction:row;gap:0}
.bp-metawrap{padding:0 24px!important}
.bp-more{padding:48px 32px 80px}
.bp-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;row-gap:64px}
.bp-card h3{font-size:18px!important}
}
@media (min-width:1024px){
.bp-metawrap{padding:0 32px!important}
.bp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* Ghost content: images and wide/full cards on the .bp-canvas grid */
.post-content img{display:block;max-width:100%;height:auto;margin:0 auto}
.bp-canvas>.kg-width-wide{grid-column:wide}
.bp-canvas>.kg-width-full{grid-column:full}
.bp-canvas>.kg-width-full img{width:100%}
