@import "https://fonts.googleapis.com/css2?family=Caprasimo&display=swap";
@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap";
@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap";
@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--font-display:"Caprasimo", "Inter", cursive, sans-serif;--font-heading:"Montserrat", "Inter", sans-serif;--font-body:"Montserrat", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-link:"DM Sans", "Montserrat", "Inter", sans-serif;--font-mono:"Roboto Mono", monospace;--color-primary:#0a0e63;--color-secondary:#f89a43;--color-accent:#888eff;--color-coral:#ff5e5e;--color-peach:#f2ba91;--color-salmon:#f08e7f;--color-cream:#fdf1e9;--color-background-alt:#fff;--color-border-soft:#0a0e6324;--color-shadow-soft:#0a0e631f;--text-h3:64px;--text-h4:32px;--text-subheadline:24px;--text-body:18px;--text-small:14px}*{box-sizing:border-box}html{background:var(--color-cream);-webkit-font-smoothing:antialiased;font-size:18px;line-height:32px}html,body,#app{height:100%}body{font-family:var(--font-body);font-size:var(--text-body);color:var(--color-primary);background:var(--color-cream);margin:0;line-height:1.6}@media (max-width:1024px){body{font-size:16px;line-height:1.55}}main{min-height:100vh}img{max-width:100%;height:auto;display:block}h1{font-family:var(--font-heading);font-size:var(--text-h3);margin:40px 0;font-weight:700;line-height:1}@media (max-width:1024px){h1{margin:24px 0;font-size:42px;line-height:42px}}@media (max-width:768px){h1{font-size:38px;line-height:38px}}@media (max-width:400px){h1{font-size:32px;line-height:32px}}p{margin:24px 0}@media (max-width:1024px){p{margin:calc(var(--base) * .75) 0}}a{color:var(--color-primary);transition:color .3s,opacity .3s,background-color .3s,border-color .3s}a:focus{opacity:.8;outline:none}a:active{opacity:.7;outline:none}svg{vertical-align:middle}.home{flex-direction:column;justify-content:space-between;align-items:center;max-width:1024px;height:100vh;margin:0 auto;padding:45px;display:flex;overflow:hidden}@media (max-width:400px){.home{padding:24px}}.home .content{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;display:flex}.home .content h1{text-align:center}.home .links{align-items:center;gap:12px;display:flex}.home .links a{border-radius:4px;padding:.25rem .5rem;text-decoration:none}.home .links .admin{color:#000;background:#fff;border:1px solid #000}.home .links .docs{color:#fff;background:#000;border:1px solid #fff}.home .footer{align-items:center;gap:8px;display:flex}@media (max-width:1024px){.home .footer{flex-direction:column;gap:6px}}.home .footer p{margin:0}.home .footer .codeLink{background:#3c3c3c;border-radius:4px;padding:0 .5rem;text-decoration:none}.blog-page{background:linear-gradient(180deg, #ffe1cbcc 0, #fdf1e900 360px), var(--color-cream);flex-direction:column;min-height:100vh;display:flex}.blog-site-header{z-index:1000;background-color:var(--color-cream);padding:15px 120px;transition:background-color .3s;position:sticky;top:0;box-shadow:0 2px 1px #0000001a}.blog-site-header-content{justify-content:space-between;align-items:center;width:100%;height:70px;display:flex;position:relative}.blog-logo-container{color:#0a0e63;align-items:center;gap:2px;text-decoration:none;display:flex}.blog-logo-container:hover{opacity:.8}.blog-logo-icon{width:82px;height:70px}.blog-logo-text{color:#0a0e63;font-family:var(--font-display);letter-spacing:-.64px;white-space:nowrap;font-size:32px;line-height:38px}.blog-desktop-nav{align-items:center;gap:0;display:none}.blog-nav-item{color:var(--color-primary);cursor:pointer;font-family:var(--font-body);letter-spacing:-.96px;opacity:.5;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:16px 20px;font-size:24px;font-weight:400;line-height:normal;text-decoration:none;display:inline-flex;position:relative}.blog-nav-item:hover{opacity:1}.blog-hamburger-wrapper{align-items:center;display:flex;position:relative}.blog-hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;padding:8px;transition:all .3s;display:flex}.blog-hamburger-line{background-color:var(--color-primary);border-radius:2px;width:30px;height:4px}.blog-shell{width:min(100% - 48px,1180px);margin:0 auto;padding:64px 0 96px}.blog-nav{justify-content:space-between;align-items:center;gap:16px;margin-bottom:34px;display:flex}.blog-topbar-link,.blog-card-link{min-height:44px;font-family:var(--font-link);border-radius:33px;justify-content:center;align-items:center;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.blog-topbar-link{border:2px solid var(--color-primary);color:var(--color-primary);padding:8px 20px;font-size:16px}.blog-topbar-link:hover{background:var(--color-primary);color:var(--color-cream);opacity:1}.blog-hero{border:1px solid var(--color-border-soft);box-shadow:0 22px 52px var(--color-shadow-soft);background:#ffffffb8;border-radius:24px;grid-template-columns:minmax(0,1fr) 180px;align-items:stretch;gap:20px;margin-bottom:34px;padding:24px;display:grid}.blog-hero-copy{max-width:780px}.blog-hero-copy h1{color:var(--color-primary);letter-spacing:0;margin:8px 0 0;font-size:clamp(32px,4vw,46px);line-height:1}.blog-hero-copy p:not(.blog-eyebrow){max-width:700px;color:var(--color-primary);font-size:clamp(20px,2.2vw,26px);line-height:1.32}.blog-eyebrow{color:var(--color-coral);font-family:var(--font-link);font-size:var(--text-small);letter-spacing:.08em;text-transform:uppercase;margin:0;font-weight:700;line-height:1.4}.blog-hero-panel{background:var(--color-primary);min-height:132px;color:var(--color-cream);border-radius:20px;flex-direction:column;justify-content:flex-end;padding:18px;display:flex}.blog-hero-panel span{font-family:var(--font-heading);font-size:44px;font-weight:700;line-height:.9}.blog-hero-panel p{color:var(--color-cream);font-family:var(--font-link);margin:8px 0 0;font-size:14px;font-weight:700;line-height:1.35}.blog-section{margin-bottom:56px}.blog-section-header{justify-content:space-between;align-items:end;gap:32px;margin-bottom:24px;display:flex}.blog-section-header h2{font-family:var(--font-heading);margin:8px 0 0;font-size:clamp(32px,4vw,52px);line-height:1}.blog-section-header>p{max-width:360px;color:var(--color-primary);opacity:.78;margin:0;font-size:16px;line-height:1.55}.blog-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.blog-card,.blog-empty{border:1px solid var(--color-border-soft);background:var(--color-background-alt);box-shadow:0 16px 36px var(--color-shadow-soft);border-radius:28px;overflow:hidden}.blog-card{flex-direction:column;min-height:100%;display:flex}.blog-card-media-frame{aspect-ratio:16/10;background:#f2ba9166;align-items:flex-end;width:100%;min-height:180px;display:flex;position:relative;overflow:hidden}.blog-card-media{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.blog-card-media-placeholder{background:linear-gradient(135deg, #f2ba91e6, #888eff6b), var(--color-peach)}.blog-card-media-frame:after{content:"";background:linear-gradient(#0a0e6314 0%,#0a0e63b8 100%);position:absolute;inset:0}.blog-card-media-overlay{z-index:1;width:100%;padding:22px 88px 22px 22px;position:relative}.blog-card-media-overlay h3{max-width:310px;color:var(--color-cream);font-family:var(--font-heading);margin:0;font-size:28px;font-weight:700;line-height:1.08}.blog-card-media-overlay a{color:inherit;text-decoration:none}.blog-card-media-overlay a:hover{color:var(--color-peach);opacity:1}.blog-card-author-image{z-index:2;border:3px solid var(--color-cream);object-fit:cover;border-radius:50%;width:54px;height:54px;position:absolute;bottom:18px;right:18px;box-shadow:0 8px 20px #0a0e633d}.blog-card-content{flex-direction:column;flex:1;padding:26px;display:flex}.blog-card-content time{color:var(--color-coral);font-family:var(--font-link);font-size:var(--text-small);letter-spacing:.02em;text-transform:uppercase;margin-bottom:14px;font-weight:700;line-height:1.5;display:block}.blog-card-content p{color:var(--color-primary);opacity:.82;margin:0 0 24px;font-size:16px;line-height:1.55}.blog-card-content .blog-card-author{color:var(--color-primary);font-family:var(--font-link);opacity:.7;margin:-8px 0 14px;font-size:14px;font-weight:700;line-height:1.35}.blog-card-link{background:var(--color-accent);color:var(--color-cream);align-self:flex-start;margin-top:auto;padding:8px 18px;font-size:15px}.blog-card-link:hover{background:var(--color-primary);color:var(--color-cream);opacity:1}.blog-empty{background:#f2ba915c;padding:36px}.blog-empty h2{font-family:var(--font-heading);font-size:var(--text-h4);margin:0 0 8px;line-height:1.1}.blog-empty p{color:var(--color-primary);opacity:.78;margin:0}.blog-post{max-width:1080px}.blog-post-header{max-width:900px;box-shadow:0 18px 42px var(--color-shadow-soft);background:#ffffffb8;border-radius:33px;margin-bottom:38px;padding:42px}.blog-post-header time{color:var(--color-coral);font-family:var(--font-link);font-size:var(--text-small);letter-spacing:.02em;text-transform:uppercase;margin-top:16px;font-weight:700;display:block}.blog-post-header h1{color:var(--color-primary);margin:18px 0 22px;font-size:clamp(40px,6vw,72px);line-height:.98}.blog-post-header .blog-post-author{color:var(--color-primary);font-family:var(--font-link);opacity:.7;margin:10px 0 0;font-size:15px;font-weight:700;line-height:1.35}.blog-post-header>p{max-width:760px;color:var(--color-primary);font-size:var(--text-subheadline);opacity:.84;margin:0;line-height:1.35}.blog-featured-image{object-fit:cover;width:100%;max-height:560px;box-shadow:0 18px 42px var(--color-shadow-soft);border-radius:33px;margin-bottom:52px}.blog-article-layout{grid-template-columns:180px minmax(0,720px);align-items:start;gap:48px;display:grid}.blog-article-aside{border-top:2px solid var(--color-coral);color:var(--color-primary);font-family:var(--font-link);padding:18px 0;font-size:14px;line-height:1.45;position:sticky;top:24px}.blog-article-aside span{text-transform:uppercase;margin-bottom:6px;font-weight:700;display:block}.blog-author-card{gap:14px;margin-bottom:24px;display:grid}.blog-author-card strong{color:var(--color-primary);font-family:var(--font-heading);font-size:20px;line-height:1.15;display:block}.blog-author-card p{font-family:var(--font-body);opacity:.78;margin:10px 0 0;font-size:14px;line-height:1.5}.blog-author-image{object-fit:cover;border-radius:50%;width:78px;height:78px}.blog-published-meta{border-top:1px solid var(--color-border-soft);padding-top:18px}.blog-rich-text{color:var(--color-primary);font-family:var(--font-body);font-size:19px;line-height:1.78}.blog-rich-text h2,.blog-rich-text h3,.blog-rich-text h4{font-family:var(--font-heading);color:var(--color-primary);margin-top:46px;margin-bottom:16px;line-height:1.18}.blog-rich-text h2{font-size:40px;font-weight:700}.blog-rich-text h3{font-size:var(--text-h4);font-weight:400}.blog-rich-text p,.blog-rich-text ul,.blog-rich-text ol,.blog-rich-text blockquote{margin:0 0 28px}.blog-rich-text ul,.blog-rich-text ol{padding-left:28px}.blog-rich-text li+li{margin-top:8px}.blog-rich-text a{color:var(--color-primary);-webkit-text-decoration-color:var(--color-coral);text-decoration-color:var(--color-coral);text-underline-offset:4px;font-weight:700;text-decoration-thickness:2px}.blog-rich-text blockquote{border-left:6px solid var(--color-accent);color:var(--color-primary);font-size:var(--text-subheadline);background:#888eff29;border-radius:0 24px 24px 0;padding:20px 26px;line-height:1.35}.blog-post-footer{border-top:1px solid var(--color-border-soft);margin:56px 0 0 228px;padding-top:28px}.blog-site-footer{background-color:var(--color-primary);color:#fff;margin-top:auto;padding:20px 120px}.blog-site-footer-content{justify-content:space-between;align-items:flex-start;max-width:1200px;margin:0 auto;display:flex}.blog-footer-logo{align-items:center;display:flex}.blog-footer-logo:hover{opacity:.8}.blog-footer-logo-icon{width:60px;height:52px}.blog-footer-right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.blog-footer-nav{align-items:center;gap:0;display:flex}.blog-footer-link{color:var(--color-cream);font-family:var(--font-body);letter-spacing:-.32px;opacity:.7;white-space:nowrap;padding:4px 12px;font-size:16px;font-weight:400;text-decoration:none}.blog-footer-link:hover{opacity:1}.blog-copyright{color:var(--color-cream);font-family:var(--font-body);opacity:.5;margin:0;padding-right:12px;font-size:12px}@media (min-width:1000px){.blog-desktop-nav{display:flex}.blog-hamburger-wrapper{display:none}}@media (max-width:1399px){.blog-site-header,.blog-site-footer{padding:16px 32px}}@media (max-width:900px){.blog-site-footer-content{flex-direction:column;align-items:center;gap:1rem}.blog-footer-right{align-items:center}.blog-footer-nav{flex-wrap:wrap;justify-content:center}.blog-footer-link{padding:6px 10px;font-size:14px}.blog-copyright{text-align:center;padding-right:0}}@media (max-width:640px){.blog-site-header{padding:20px}.blog-site-header-content{height:70px}.blog-logo-text{letter-spacing:-1.5px;white-space:normal;word-spacing:9999px;max-width:151px;font-size:30px;line-height:.8}.blog-shell{width:min(100% - 32px,1040px);padding:36px 0 72px}.blog-nav{flex-direction:column;align-items:flex-start;margin-bottom:26px}.blog-hero{border-radius:18px;grid-template-columns:1fr;gap:14px;margin-bottom:28px;padding:18px}.blog-hero h1{font-size:30px}.blog-hero .blog-hero-copy p:not(.blog-eyebrow){font-size:18px}.blog-hero-panel{border-radius:16px;min-height:96px}.blog-section-header{flex-direction:column;align-items:flex-start;gap:14px}.blog-list{grid-template-columns:1fr}.blog-card,.blog-empty{border-radius:22px}.blog-card-content,.blog-empty{padding:24px}.blog-card-media-overlay h3{font-size:26px}.blog-post-header{border-radius:26px;padding:28px}.blog-post-header h1{font-size:40px}.blog-post-header>p{font-size:20px}.blog-featured-image{border-radius:24px;margin-bottom:34px}.blog-article-layout{grid-template-columns:1fr;gap:24px}.blog-article-aside{flex-direction:column;gap:10px;padding:14px 0 0;display:flex;position:static}.blog-rich-text{font-size:17px}.blog-rich-text h2{font-size:32px}.blog-rich-text h3{font-size:26px}.blog-post-footer{margin-left:0}.blog-site-footer{padding:16px 20px}.blog-footer-nav{flex-direction:column}.blog-footer-link{padding:8px 10px}}
