:root{--bg: #efe5d0;--bg-soft: #e4d8bc;--panel: #f6edd8;--ink: #2e3424;--muted: #5f604f;--accent: #bc6b25;--accent-soft: #d28f4f;--olive: #6f7752;--line: #b9ad90;--radius: 16px;--shadow: 0 12px 24px rgba(46, 52, 36, .14)}*{box-sizing:border-box}html,body{margin:0;padding:0;color:var(--ink);background:transparent;font-family:Chakra Petch,Trebuchet MS,sans-serif;scroll-behavior:smooth}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(circle at 20% 20%,rgba(188,107,37,.2),transparent 35%),radial-gradient(circle at 80% 0%,rgba(111,119,82,.25),transparent 30%),linear-gradient(180deg,#efe5d0e6,#e4d8bce6),url(/images/bg/bg.png);background-position:center top,center top,center top,center center;background-repeat:no-repeat,no-repeat,no-repeat,no-repeat;background-size:auto,auto,auto,cover;z-index:-2}body:after{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(transparent 95%,#2e342414);background-size:100% 4px;opacity:.25;z-index:-1}a{color:inherit}canvas#canvas{display:block;background:#000}.shell{width:min(1120px,calc(100% - 2rem));margin:0 auto}[id]{scroll-margin-top:3rem}.topbar{position:sticky;top:0;z-index:20;backdrop-filter:blur(8px);background:#f6edd8d9;border-bottom:1px solid var(--line)}.topbar-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;gap:1rem;position:relative}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;font-family:Alegreya Sans SC,Georgia,serif;letter-spacing:.06em}.brand img{width:60px;height:60px;border-radius:10%}.brand .name{font-size:1.15rem;font-weight:bolder}nav ul{display:flex;list-style:none;margin:0;padding:0;gap:1rem}nav a{text-decoration:none;color:var(--muted)}nav a:hover,.lang-switch a:hover{color:var(--accent)}.menu-toggle{display:none;width:2.8rem;height:2.8rem;border-radius:.9rem;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 75%,#ffffff 25%);box-shadow:0 10px 20px -16px #242e2ae6;padding:0;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:.26rem;transition:transform .18s ease,box-shadow .18s ease,border-color .2s ease}.menu-toggle span{width:1.15rem;height:2px;border-radius:3px;background:var(--ink);transition:transform .2s ease,opacity .16s ease}.menu-toggle:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line) 60%)}.menu-toggle:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 70%,#ffffff 30%);outline-offset:2px}.topbar-row.is-menu-open .menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}.topbar-row.is-menu-open .menu-toggle span:nth-child(2){opacity:0}.topbar-row.is-menu-open .menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.lang-switch{display:flex;align-items:center;gap:.35rem;font-size:.85rem}.hero{min-height:72vh;display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:stretch;padding:4rem 0 2rem}.hero-card{background:#f6edd8d9;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.5rem,2vw,2.5rem);animation:rise .8s ease both;height:100%}.kicker{margin:0;text-transform:uppercase;letter-spacing:.14em;color:var(--olive);font-size:.78rem}h1,h2,h3{font-family:Alegreya Sans SC,Georgia,serif;font-weight:700}h1{font-size:clamp(2rem,5vw,3.8rem);line-height:1.05;margin:.7rem 0}.hero p{color:var(--muted);line-height:1.6}.actions{margin-top:1.2rem;display:flex;flex-wrap:wrap;gap:.8rem}.btn{padding:.72rem 1.1rem;border:1px solid var(--line);border-radius:999px;text-decoration:none;transition:all .2s ease}.btn.primary{background:var(--accent);color:#f8f3e8;border-color:var(--accent)}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.hero-visual{width:100%;height:100%;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);object-fit:cover;animation:rise 1.1s ease both}.section{padding:2.6rem 0}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:1rem;gap:1rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.card p{color:var(--muted);margin-bottom:0}.pillars{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.pillars span{border:1px solid var(--olive);color:var(--olive);border-radius:999px;padding:.4rem .7rem;font-size:.85rem}.filters{display:flex;flex-wrap:wrap;gap:.5rem}.chip{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:.45rem .8rem;cursor:pointer;font-family:inherit}.chip.active{border-color:var(--accent);background:var(--accent);color:#f8f3e8}.team-card img,.work-card img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line);display:block}.team-card h3,.work-card h3{margin:.8rem 0 .2rem}.logo-wall{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.8rem}.tech-wall{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:.8rem}.logo-wall img{width:100%;height:85px;object-fit:contain;background:#f2daa0;border:1px solid var(--line);border-radius:10px;padding:.6rem}.tech-stack-categories{column-count:3;column-gap:1rem}.tech-category{display:inline-block;width:100%;margin:0 0 1rem;break-inside:avoid;border:1px solid var(--line);border-radius:14px;padding:.9rem;background:color-mix(in srgb,var(--panel) 94%,#ffffff 6%)}.tech-category h3{margin:0 0 .7rem;text-transform:capitalize;font-size:.98rem;color:var(--ink)}.tech-item{margin:0;display:grid;gap:.35rem}.tech-item img{width:100%;height:70px;object-fit:contain;background:#f2daa0;border:1px solid var(--line);border-radius:10px;padding:.5rem}.tech-item figcaption{text-align:center;font-size:.78rem;text-transform:capitalize;color:var(--muted);line-height:1.2;min-height:2.1em}.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:1rem}form{display:grid;gap:.7rem}.hp-wrap{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}input,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.75rem .8rem;background:#fffaf0;color:var(--ink);font-family:inherit}textarea{min-height:130px;resize:vertical}.status{min-height:1.2rem;font-size:.9rem;color:var(--olive)}footer{border-top:1px solid var(--line);margin-top:2rem;padding:1rem 0 2rem;color:var(--muted)}.footer-quote{margin:1.2rem 0 0 auto;padding:1.2rem 1.5rem;max-width:min(38rem,100%);text-align:right;font-family:Georgia,Garamond,serif;font-size:1.07rem;line-height:1.7;color:var(--ink);background:linear-gradient(135deg,rgba(var(--accent-rgb, 100, 150, 200),.06),transparent);border-right:3px solid var(--accent);border-radius:0 8px 8px 0;box-shadow:0 4px 16px #00000014;letter-spacing:.3px;position:relative;animation:slideInQuote .6s ease-out;font-style:oblique}.footer-quote:before{content:'"';font-size:3.5rem;line-height:0;color:var(--accent);opacity:.15;position:absolute;top:.8rem;right:1rem;font-family:Georgia,serif}.footer-quote p{margin:0;position:relative;z-index:1}.footer-quote p:first-line{letter-spacing:.5px}.footer-quote cite{display:block;margin-top:.8rem;font-style:italic;font-size:1rem;font-weight:500;color:var(--accent);letter-spacing:1px;opacity:.9}@keyframes slideInQuote{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.menu-toggle{display:inline-flex;order:3}.topbar-row>.lang-switch{order:2;margin-left:auto}.topbar-row>nav{position:absolute;top:calc(100% + .45rem);right:0;width:min(22rem,calc(100vw - 2rem));padding:.7rem;border:1px solid color-mix(in srgb,var(--line) 70%,var(--accent) 30%);border-radius:1rem;background:color-mix(in srgb,var(--panel) 87%,#ffffff 13%);box-shadow:0 20px 42px -28px #141e1af2;backdrop-filter:blur(8px);transform-origin:top right;opacity:0;transform:translateY(-8px) scale(.98);pointer-events:none;transition:opacity .18s ease,transform .2s ease;z-index:40}.topbar-row.is-menu-open>nav{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.topbar-row>nav ul{flex-direction:column;gap:.35rem}.topbar-row>nav li{width:100%}.topbar-row>nav a{display:block;width:100%;border-radius:.75rem;padding:.62rem .7rem;font-size:.95rem;transition:background-color .18s ease,color .18s ease}.topbar-row>nav a:hover{background:color-mix(in srgb,var(--accent) 18%,transparent);color:color-mix(in srgb,var(--ink) 88%,#ffffff 12%)}.hero,.contact-grid{grid-template-columns:1fr}.hero-visual{height:auto;aspect-ratio:16 / 10}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(3,minmax(0,1fr))}.logo-wall{grid-template-columns:repeat(4,minmax(0,1fr))}.tech-stack-categories{column-count:1}.footer-quote{margin:1.2rem 0 0;padding:1rem 1.2rem;font-size:1rem;border-right:2px solid var(--accent)}.footer-quote:before{font-size:2.5rem;top:.5rem;right:.7rem}}@media(max-width:640px){.topbar-row>nav{left:0;right:0;width:100%}.brand span{display:none}.grid-3,.grid-4,.logo-wall{grid-template-columns:1fr 1fr}.tech-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-quote{padding:.9rem 1rem;font-size:.95rem;line-height:1.6;border-right:2px solid var(--accent);border-radius:0 4px 4px 0}.footer-quote:before{font-size:2rem;top:.3rem;right:.5rem}.footer-quote cite{font-size:.85rem;margin-top:.6rem}}.lang-switch[data-astro-cid-3e666phm]{--track: color-mix(in srgb, var(--paper) 74%, white 26%);--track-border: color-mix(in srgb, var(--line) 78%, var(--accent) 22%);--active-bg: linear-gradient(135deg, var(--accent), var(--olive));--active-text: #fff;--text: color-mix(in srgb, var(--ink) 75%, #53605f 25%);display:inline-flex;align-items:center;gap:.25rem;padding:.26rem;border-radius:999px;border:1px solid var(--track-border);background:var(--track);box-shadow:0 12px 26px -20px #0f1816d9;backdrop-filter:blur(8px)}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm]{color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:.42rem;border-radius:999px;padding:.35rem .62rem;font-size:.74rem;letter-spacing:.02em;font-weight:600;transition:transform .16s ease,box-shadow .22s ease,background-color .22s ease,color .22s ease}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm] .short[data-astro-cid-3e666phm]{display:inline-flex;align-items:center;justify-content:center;min-width:1.65rem;height:1.65rem;border-radius:999px;padding:0 .35rem;font-size:.68rem;font-weight:700;letter-spacing:.08em;background:color-mix(in srgb,var(--line) 62%,#ffffff 38%);border:1px solid color-mix(in srgb,var(--line) 78%,#d5c7a3 22%)}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm] .full[data-astro-cid-3e666phm]{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transform:translate(-.15rem);transition:max-width .22s ease,opacity .18s ease,transform .18s ease}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm]:hover{color:var(--ink);transform:translateY(-1px)}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm]:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 72%,#ffffff 28%);outline-offset:2px}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm].active{background:var(--active-bg);color:var(--active-text);box-shadow:0 10px 18px -10px #0f221ee6}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm].active .short[data-astro-cid-3e666phm]{background:color-mix(in srgb,#ffffff 18%,transparent);border-color:color-mix(in srgb,#ffffff 28%,transparent)}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm].active .full[data-astro-cid-3e666phm]{max-width:8rem;opacity:1;transform:translate(0)}@media(max-width:720px){.lang-switch[data-astro-cid-3e666phm]{gap:.2rem;padding:.2rem}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm]{padding:.28rem;min-width:2rem;justify-content:center}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm] .short[data-astro-cid-3e666phm]{min-width:1.5rem;height:1.5rem;padding:0}.lang-switch[data-astro-cid-3e666phm] a[data-astro-cid-3e666phm] .full[data-astro-cid-3e666phm]{display:none}}.map_container[data-astro-cid-joh4gybl]{z-index:1;position:relative;margin-top:10px;border-radius:9px;border:solid 2px #b9ad90;overflow:hidden}.leaflet-attribution-flag[data-astro-cid-ct3bgug4]{display:none}
