:root{--navy:#3d4b60;--ink:#1a2333;--blue:#4a94ff;--bg:#f1f2f2;--muted:#5a6b85;--line:rgba(61,75,96,.14);--font-display:'Urbanist',system-ui,sans-serif;--font-mono:'JetBrains Mono',ui-monospace,monospace;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--navy);font-family:var(--font-display);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1500px;margin:0 auto;padding:0 24px}@media(min-width:1024px){.wrap{padding:0 48px}}
.wrap.narrow{max-width:860px}
.callout{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--blue);font-size:12.5px;font-weight:600}
.callout.light{color:rgba(255,255,255,.7)}
.blueprint-bg{background-color:var(--navy);background-image:linear-gradient(#4a94ff14 1px,#0000 1px),linear-gradient(90deg,#4a94ff14 1px,#0000 1px),linear-gradient(#4a94ff0a 1px,#0000 1px),linear-gradient(90deg,#4a94ff0a 1px,#0000 1px);background-size:80px 80px,80px 80px,16px 16px,16px 16px;color:#fff}
.btn-blueprint{color:#fff!important;font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;transition:all .22s var(--ease);background:var(--blue);border:1px solid var(--blue);align-items:center;gap:.6rem;padding:.85rem 1.5rem;font-size:.85rem;font-weight:600;display:inline-flex;text-decoration:none!important}
.btn-blueprint:hover{background:#2e75db;border-color:#2e75db}
.btn-ghost{display:inline-flex;align-items:center;padding:.85rem 1.5rem;font-size:.85rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;border:1px solid rgba(61,75,96,.3);color:var(--navy);text-decoration:none!important}
.btn-ghost.light{border-color:rgba(255,255,255,.4);color:#fff}
/* header */
.site-header{background:var(--ink);color:#fff;position:sticky;top:0;z-index:50}
.topbar{background:#131a27;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:34px;gap:12px}
.topbar .promo strong{color:var(--blue)}.topbar a{color:#fff}.topbar .sep{margin:0 8px;opacity:.5}
@media(max-width:640px){.topbar .tb-right span:not(.sep),.topbar .sep{display:none}}
.mainnav{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:16px;position:relative}
.brand img{height:40px;width:auto;filter:brightness(0) invert(1)}
.mainnav .links{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:28px}
.mainnav .links a{color:rgba(255,255,255,.85);font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.mainnav .links a:hover{color:var(--blue);text-decoration:none}
.mainnav .links .cta a{color:#fff;padding:.7rem 1.2rem;font-size:.78rem}
.navtoggle{display:none}.burger{display:none;width:40px;height:40px;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;align-items:center}
.burger span{display:block;width:22px;height:2px;background:#fff}
@media(max-width:1023px){.burger{display:flex}.mainnav .links{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ink);flex-direction:column;align-items:flex-start;padding:16px 24px 24px;gap:18px;border-top:1px solid rgba(255,255,255,.08)}.navtoggle:checked~.links{display:flex}}
/* hero */
.page-hero{padding:64px 0 56px}.page-hero h1,.post-hero h1{font-family:var(--font-display);letter-spacing:-.035em;font-weight:800;line-height:1.05;font-size:clamp(2.2rem,5vw,4rem);margin:.3em 0 .4em;color:#fff}
.page-hero .lead{font-size:19px;color:rgba(255,255,255,.85);max-width:60ch;margin:0}
.crumbs{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin:0}
.crumbs a{color:var(--blue)}.crumbs.light,.post-hero .crumbs{color:rgba(255,255,255,.6)}
/* content sections */
.pg-section{padding:40px 0}.pg-section+.pg-section{border-top:1px solid var(--line)}
main h2{font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.025em;line-height:1.15;margin:1.6em 0 .6em;font-weight:800}
main h3{font-size:1.35rem;letter-spacing:-.015em;margin:1.5em 0 .5em;font-weight:700}
main h4{font-size:1.1rem;margin:1.3em 0 .4em}
main p{margin:0 0 1.1em}main ul,main ol{padding-left:1.3em;margin:0 0 1.2em}main li{margin:.3em 0}
main p a,main li a{text-decoration:underline;text-underline-offset:3px}
figure.img{margin:28px 0}figure.img img{width:100%;border-radius:4px}figcaption{font-size:14px;color:var(--muted);margin-top:8px;font-family:var(--font-mono)}
.accordion{margin:24px 0;border-top:1px solid var(--line)}
.accordion details{border-bottom:1px solid var(--line)}
.accordion summary{cursor:pointer;padding:16px 0;font-weight:700;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;align-items:center}
.accordion summary::-webkit-details-marker{display:none}.accordion summary::after{content:'+';color:var(--blue);font-size:1.4rem;font-weight:400}
.accordion details[open] summary::after{content:'–'}.acc-body{padding:0 0 16px}.acc-body p{margin:0 0 .4em}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}
.video{position:relative;aspect-ratio:16/9;margin:24px 0;background:#000}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map{aspect-ratio:16/8;margin:24px 0}.map iframe{width:100%;height:100%;border:0}
/* posts */
.post-hero{padding:56px 0 48px}.post-hero .meta{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.04em;color:rgba(255,255,255,.7);margin:0}
.post-cover{margin:0 auto;max-width:1100px;padding:0 24px}.post-cover img{width:100%;margin-top:-28px;border-radius:4px;box-shadow:0 20px 50px -20px rgba(26,35,51,.4);position:relative}
.post-body{padding:48px 24px 72px;font-size:18px}
.post-body>p:first-of-type{font-size:20px}
.tags{display:flex;gap:8px;flex-wrap:wrap}.tag{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line);padding:4px 8px}
.cta-box{background:#fff;border:1px solid var(--line);padding:36px;margin:56px 0 32px;box-shadow:0 4px 24px -8px rgba(61,75,96,.1)}
.cta-box h2{margin:.2em 0 .4em}.cta-box p{margin:0 0 1em}.cta-box .btn-row{margin:20px 0 0}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--line);padding-top:24px;margin-top:24px}
.post-nav a{font-weight:700;color:var(--navy);line-height:1.3}.post-nav a span{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.post-nav .next{text-align:right}
/* blog index */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px;padding:56px 0 24px}
.card{background:#fff;color:var(--navy);display:flex;flex-direction:column;border:1px solid var(--line);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(26,35,51,.35);text-decoration:none}
.card img{aspect-ratio:3/2;object-fit:cover;width:100%}
.card-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px}
.card time{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.card h2{font-size:1.25rem;line-height:1.25;margin:0;letter-spacing:-.015em}.card p{margin:0;color:var(--muted);font-size:15px}
.card .more{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-top:6px}
.pager{display:flex;justify-content:space-between;align-items:center;padding:16px 0 64px;font-family:var(--font-mono);font-size:13px;text-transform:uppercase;letter-spacing:.06em}
/* footer */
.site-footer{background:var(--navy);color:rgba(255,255,255,.85);margin-top:48px;font-size:15px}
.site-footer .grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding:64px 24px 40px}
@media(max-width:900px){.site-footer .grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.site-footer .grid{grid-template-columns:1fr}}
.site-footer .flogo{height:40px;width:auto;filter:brightness(0) invert(1);margin-bottom:18px}
.site-footer h4{font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6);margin:0 0 16px}
.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin:0 0 10px}.site-footer a{color:rgba(255,255,255,.85)}.site-footer a:hover{color:var(--blue);text-decoration:none}
.site-footer .callout{color:rgba(255,255,255,.5);margin-top:12px}
.site-footer .bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid rgba(255,255,255,.1);padding:20px 24px;font-size:13px;color:rgba(255,255,255,.55)}
