.brand[data-astro-cid-f7espo7c]{align-items:center;gap:10px;display:inline-flex}.brand[data-astro-cid-f7espo7c] svg[data-astro-cid-f7espo7c]{flex:none}.brand__text[data-astro-cid-f7espo7c]{flex-direction:column;line-height:1;display:flex}.brand__name[data-astro-cid-f7espo7c]{font-family:var(--font-display);color:var(--ink);letter-spacing:.04em;font-size:1.4rem}.brand__sub[data-astro-cid-f7espo7c]{font-family:var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:3px;font-size:.62rem}@font-face{font-family:Marcellus;font-weight:400;font-style:normal;font-display:swap;src:url(/demos/portfolio/cala/fonts/marcellus-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Karla;font-weight:100 900;font-style:normal;font-display:swap;src:url(/demos/portfolio/cala/fonts/karla-latin-wght-normal.woff2)format("woff2")}:root{--bg:#faf7f2;--paper:#fff;--sand:#f1eadd;--brand:#1f4e5f;--brand-dark:#163a47;--brand-soft:#e6eef0;--accent:#7a8450;--accent-dark:#5f6b3d;--ink:#23343a;--muted:#6e7a7e;--line:#e6dfd3;--radius:16px;--shadow:0 10px 30px #1f4e5f14;--shadow-lg:0 24px 60px #1f4e5f29;--font-display:"Marcellus", Georgia, "Times New Roman", serif;--font-sans:"Karla", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.65}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:.01em;font-weight:400;line-height:1.15}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{max-width:1120px;margin:0 auto;padding:0 24px}.demo-banner{background:var(--brand-dark);color:#eaf0f0;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:8px 44px;font-size:.82rem;display:flex;position:relative}.demo-banner__tag{background:var(--accent);color:#fff;letter-spacing:.08em;border-radius:6px;padding:2px 8px;font-size:.72rem;font-weight:700}.demo-banner__close{width:32px;height:32px;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;font-size:1.35rem;line-height:1;transition:opacity .15s,background .15s;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.demo-banner__close:hover{opacity:1;background:#ffffff24}.demo-off .demo-banner{display:none}.btn{background:var(--brand);color:#fff;font-family:var(--font-sans);cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:13px 24px;font-size:1rem;font-weight:600;transition:background .15s,transform .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--brand-dark);transform:translateY(-2px);box-shadow:0 10px 24px #1f4e5f3d}.btn--sm{border-radius:10px;padding:9px 16px;font-size:.92rem}.btn--accent{background:var(--accent)}.btn--accent:hover{background:var(--accent-dark);box-shadow:0 10px 24px #7a845047}.btn--ghost{color:var(--ink);border:1px solid var(--brand);background:0 0}.btn--ghost:hover{background:var(--brand-soft);box-shadow:none;transform:translateY(-2px)}.site-header{z-index:30;backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#faf7f2e0;position:sticky;top:0}.nav{justify-content:space-between;align-items:center;gap:16px;height:66px;display:flex}.nav__links{gap:24px;display:flex}.nav__links a{color:var(--muted);font-size:.95rem;font-weight:500}.nav__links a:hover,.nav__links a.is-active{color:var(--brand)}.nav__right{align-items:center;gap:14px;display:flex}.langsel{position:relative}.langsel__btn{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:10px;align-items:center;gap:5px;height:38px;padding:0 7px 0 9px;list-style:none;transition:border-color .15s,background .15s;display:inline-flex}.langsel__btn::-webkit-details-marker{display:none}.langsel__btn:hover{border-color:var(--brand);background:var(--brand-soft)}.langsel__btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.langsel__caret{width:14px;height:14px;color:var(--muted);transition:transform .15s}.langsel[open] .langsel__caret{transform:rotate(180deg)}.langsel__flag{object-fit:cover;border-radius:3px;width:24px;height:18px;display:block;box-shadow:0 0 0 1px #1416101f}.langsel__menu{z-index:40;background:var(--paper);border:1px solid var(--line);min-width:184px;box-shadow:var(--shadow-lg);border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);right:0}.langsel__menu a{color:var(--ink);white-space:nowrap;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:.95rem;font-weight:600;transition:background .12s;display:flex}.langsel__menu a:hover{background:var(--brand-soft)}.langsel__menu a:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.langsel__menu a.is-active{color:var(--accent-dark);background:var(--brand-soft)}.site-footer{border-top:1px solid var(--line);background:var(--sand);margin-top:40px;padding:44px 0 24px}.site-footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;display:grid}.site-footer__tagline{color:var(--muted);max-width:26ch;margin:12px 0 0;font-size:.92rem}.site-footer__col h4{color:var(--brand);margin:0 0 10px;font-size:1rem}.site-footer__col p,.site-footer__col a{color:var(--muted);margin:0 0 6px;font-size:.9rem;display:block}.site-footer__col a:hover{color:var(--brand)}.site-footer__closed{color:var(--accent-dark);font-weight:600}.site-footer__credit{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:32px;padding-top:20px;font-size:.86rem;display:flex}.site-footer__credit a{text-underline-offset:3px;text-decoration:underline}.site-footer__credit a:hover{color:var(--brand)}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(20px)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{transition:none;opacity:1!important;transform:none!important}html{scroll-behavior:auto}}@media (width<=860px){.site-footer__grid{grid-template-columns:1fr 1fr}}@media (width<=560px){.nav__links{display:none}.site-footer__grid{grid-template-columns:1fr}}
