:root{--font-serif:'Gilda Display', Georgia, serif;--font-sans:'Source Sans 3', system-ui, sans-serif;--font-mono:'Source Code Pro', 'Courier New', monospace;--color-primary-50:#fdf2f8;--color-primary-100:#fce7f2;--color-primary-200:#fad0e6;--color-primary-300:#f7aad1;--color-primary-400:#f175b2;--color-primary-500:#e94b93;--color-primary-600:#d72b71;--color-primary-700:#ba1c58;--color-primary-800:#a71c4f;--color-primary-900:#811a3f;--color-primary-950:#4e0922;--color-primary:var(--color-primary-600);--color-nav-bg:#28032f;--color-nav-light:#7c2f8b;--color-gray-50:#f4f7f7;--color-gray-100:#e3e8ea;--color-gray-200:#cbd4d6;--color-gray-300:#a7b5b9;--color-gray-400:#7d9197;--color-gray-500:#6a7a80;--color-gray-600:#526268;--color-gray-700:#3f4f54;--color-gray-800:#3f474b;--color-gray-950:#22272a;--color-background:light-dark(#f2efff, #101828);--color-surface:light-dark(#ffffff, #1a2332);--color-text-muted:light-dark(var(--color-gray-700), var(--color-gray-400));--color-heading:light-dark(var(--color-gray-950), var(--color-gray-50));--color-border:light-dark(var(--color-gray-200), #2a3a44);--gradient-brand:linear-gradient(150deg,
      hsl(337deg 100% 19%) 0%,
      hsl(312deg 100% 18%) 40%,
      hsl(284deg 100% 14%) 100%);--container-max:1200px;--container-padding:clamp(1rem, 5vw, 6rem);--section-gap:clamp(4rem, 8vw, 9rem);--nav-height:64px;--radius-card:16px;--radius-btn:8px;--shadow-card:0 2px 12px rgb(0 0 0 / 0.08), 0 1px 3px rgb(0 0 0 / 0.05);--shadow-card-hover:0 8px 32px rgb(0 0 0 / 0.14), 0 2px 8px rgb(0 0 0 / 0.08);--bg-grunge:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='3' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.4'/%3E%3C/svg%3E");--transition-base:200ms ease;--transition-slow:350ms ease}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{color-scheme:light dark;scroll-behavior:smooth;-webkit-text-size-adjust:100%;tab-size:4}body{min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased}img,video,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none}@font-face{font-family:gilda display;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/gilda-display/gilda-display-latin-400-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'source sans 3';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/source-sans-3/source-sans-3-latin-400-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'source sans 3';font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/source-sans-3/source-sans-3-latin-600-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:source code pro;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/source-code-pro/source-code-pro-latin-400-normal.woff2)format('woff2')}html{font-family:var(--font-sans);font-size:18px;color:var(--color-text);background-color:var(--color-background)}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400;color:var(--color-heading);line-height:1.15}h1{font-size:clamp(2.2rem,5vw,3.8rem);text-wrap:balance}h2{font-size:clamp(1.7rem,3.5vw,2.6rem)}h3{font-size:clamp(1.25rem,2.5vw,1.75rem)}h4{font-size:1.2rem}p{line-height:1.7}code,pre,kbd{font-family:var(--font-mono);font-size:.9em}strong{font-weight:600}a:not([class]){color:var(--color-primary-600);text-decoration:underline;text-underline-offset:3px;&:hover { color:var(--color-primary-700); }}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@view-transition{navigation: auto;
}::view-transition-old(root),::view-transition-new(root){animation-duration:.3s;animation-timing-function:ease}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-padding)}.section{padding-block:var(--section-gap)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.75rem;border-radius:var(--radius-btn);font-weight:600;font-size:1rem;line-height:1;transition:background-color var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base);cursor:pointer;border:none;text-decoration:none;&:active { transform:scale(0.98); }}.btn-primary{background-color:var(--color-primary-600);color:#fff;&:hover { background-color:var(--color-primary-700); box-shadow:0 4px 16px rgb(215 43 113/0.35); }}.btn-outline{background-color:initial;color:var(--color-primary-600);border:2px solid var(--color-primary-600);&:hover { background-color:var(--color-primary-50); color:var(--color-primary-700); border-color:var(--color-primary-700); }}.btn-ghost{background-color:initial;color:#fff;border:2px solid rgba(255,255,255,.5);&:hover { background-color:rgba(255,255,255,0.1); border-color:#fff; }}.tag{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.68rem;font-weight:600;background-color:light-dark(var(--color-primary-50),rgba(215,43,113,.15));color:var(--color-primary-700);border:1px solid light-dark(var(--color-primary-200),rgba(215,43,113,.3))}[hidden]{display:none!important}.hidden{display:none!important}.site-nav{position:sticky;top:0;z-index:100;height:var(--nav-height);background-color:var(--color-nav-bg);view-transition-name:site-nav;isolation:isolate;&::after { content:''; position:absolute; inset:0; z-index:-1; background-image:var(--bg-grunge); background-size:400px; opacity:0.5; pointer-events:none; } & .container { height:100%; display:flex; align-items:center; justify-content:space-between; gap:2rem; }}.nav-logo{display:flex;align-items:center;flex-shrink:0;& img { height: 24px; width: auto; }}.nav-links{display:flex;align-items:center;gap:.25rem;margin-left:auto}.nav-link{padding:.5rem .85rem;border-radius:var(--radius-btn);font-size:.95rem;color:rgba(255,255,255,.85);font-weight:400;transition:color var(--transition-base),background-color var(--transition-base);&:hover { color:#fff; background-color:rgba(255,255,255,0.1); }}.nav-cta{padding:.5rem .85rem;border-radius:var(--radius-btn);background-color:initial;color:rgba(255,255,255,.85);font-size:.95rem;font-weight:400;transition:color var(--transition-base),background-color var(--transition-base);border:none;cursor:pointer;&:hover { color:#fff; background-color:rgba(255,255,255,0.1); }}.nav-lang{display:flex;align-items:center;padding-left:1rem;border-left:1px solid rgba(255,255,255,.2);margin-left:.5rem}.lang-trigger{anchor-name:--lang-anchor;display:flex;align-items:center;padding:.5rem .6rem;border-radius:var(--radius-btn);color:rgba(255,255,255,.85);cursor:pointer;background:0 0;border:none;transition:color var(--transition-base),background-color var(--transition-base);&:hover { color:#fff; background-color:rgba(255,255,255,0.1); }}.lang-menu{position-anchor:--lang-anchor;margin:0;border-radius:var(--radius-card);&:popover-open { display:flex; position:absolute; inset:unset; flex-direction:column; top:calc(anchor(bottom) + 0.375rem); right:calc(anchor(right)); gap:0.1rem; padding:0.35rem; border:1px solid rgba(255,255,255,0.12); background-color:#28032f; color-scheme:dark; width:max-content; } & li { list-style:none; } & a,& .lang-current { display:block; padding:0.5rem 0.75rem; border-radius:var(--radius-btn); font-size:0.9rem; color:rgba(255,255,255,0.85); text-decoration:none; transition:color var(--transition-base),background-color var(--transition-base); } & a:hover { color:#fff; background-color:rgba(255,255,255,0.1); } & .lang-current { color:rgba(255,255,255,0.35); cursor:default; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.05em; }}.nav-toggle-input{position:absolute;opacity:0;pointer-events:none}.nav-toggle-label{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:.5rem;& span { display: block; width: 24px; height: 2px; background: #fff; border-radius: 2px; transition: transform var(--transition-base), opacity var(--transition-base); }}@media(max-width:640px){.site-nav{height:auto;min-height:var(--nav-height);& .container { flex-wrap: wrap; height: auto; padding-block: 0.75rem; }}.nav-toggle-label{display:flex}.nav-links{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:.25rem;padding-bottom:.75rem;margin-left:0}.nav-toggle-input:checked~.nav-links{display:flex}.nav-toggle-input:checked~.nav-toggle-label span:nth-child(1){transform:translateY(7px)rotate(45deg)}.nav-toggle-input:checked~.nav-toggle-label span:nth-child(2){opacity:0}.nav-toggle-input:checked~.nav-toggle-label span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav-lang{border-left:none;padding-left:0;margin-left:0;margin-top:.5rem;align-self:flex-end}}.hero{background:var(--gradient-brand);padding-block:clamp(5rem,12vw,10rem);position:relative;overflow:hidden;&::after { content:''; position:absolute; inset:0; z-index:0; background-image:var(--bg-grunge); background-size:400px; opacity:0.5; pointer-events:none; } & > * { position:relative; z-index:1; }}.hero-inner{position:relative;z-index:1;max-width:720px}.hero-eyebrow{display:inline-block;font-size:.85rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary-300);margin-bottom:1.25rem}.hero h1{color:#fff;margin-bottom:1.25rem;line-height:1.1}.hero-sub{font-size:clamp(1.05rem,2vw,1.25rem);color:rgba(255,255,255,.8);margin-bottom:2.5rem;max-width:560px;line-height:1.65}.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}.services-section{padding-block-start:clamp(3rem,5vw,5.5rem);padding-block-end:var(--section-gap);background-color:var(--color-background);&>.container>h2 { margin-bottom: 0.6rem; } &>.container>.section-sub { color: var(--color-text-muted); margin-bottom: 2.5rem; font-size: 1.05rem; }}.services-network-note{font-size:.9rem;color:var(--color-text-muted);margin-top:-1.25rem;margin-bottom:2.5rem;& a { color: var(--color-primary-800); text-decoration: underline; text-underline-offset: 2px; &:hover { color: var(--color-primary-600); } }}.services-filter{margin-bottom:2.5rem;container-type:inline-size;container-name:filter;& label { display: block; font-weight: 600; font-size: 0.9rem; color: var(--color-text-muted); margin-bottom: 0.5rem; text-transform: uppercase; letter-spacing: 0.08em; } & .search-input-wrap { position: relative; max-width: 540px; } & input[type="search"] { width: 100%; padding: 7px 2.5rem 7px 3rem; border-radius: 999px; border: 2px solid transparent; color: var(--color-text); font-size: 1rem; outline: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236a7a80' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E"), linear-gradient(var(--color-surface), var(--color-surface)), linear-gradient(135deg, #e94b93, #28032f); background-clip: padding-box, padding-box, border-box; background-origin: padding-box, padding-box, border-box; background-repeat: no-repeat, repeat, repeat; background-position: 1rem center, 0 0, 0 0; transition: box-shadow var(--transition-base); &:focus, &:focus-visible { outline: none; box-shadow: 0 0 0 4px rgb(233 75 147 / 0.12); } &::placeholder { color: var(--color-text-muted); } &::-webkit-search-cancel-button { display: none; } } & .search-clear { position: absolute; right: 0.85rem; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; padding: 0.2rem; color: var(--color-text-muted); display: flex; align-items: center; line-height: 1; transition: color var(--transition-base); &:hover { color: var(--color-text); } }}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1.25rem;view-transition-name:services-grid}.service-card{container-type:inline-size;container-name:card;display:flex;background-color:var(--color-surface);border-radius:var(--radius-card);border:1px solid var(--color-border);box-shadow:none;transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base);&:hover { box-shadow:var(--shadow-card); transform:translateY(-3px); border-color:var(--color-primary-300); } &:has(a:focus-visible) { outline:none; border-color:var(--color-primary-500); }}.service-card-link{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;width:100%;text-decoration:none;color:inherit;@container card (min-width:280px){padding: 1.75rem 2rem;
  }}.service-card-icon{font-size:1.5rem;line-height:1}.service-card-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.1rem,3cqi,1.3rem);color:var(--color-heading);line-height:1.2;transition:color var(--transition-base);.service-card:hover & { color: var(--color-primary-600); }}.service-card-desc{font-size:.9rem;color:var(--color-text-muted);line-height:1.55;flex:1}.service-card-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto;& .tag { cursor: pointer; transition: opacity var(--transition-base); &:hover { opacity: 0.75; } }}.services-show-more{display:block;margin:1.5rem auto 0;padding:.6em 1.5em;background:0 0;border:2px solid var(--color-primary-700);border-radius:6px;color:var(--color-primary-700);font:600 .9rem/1 var(--font-body);cursor:pointer;transition:background .15s,color .15s;&:hover { background:var(--color-primary-600); color:#fff; }}.service-card--contact{border-style:dotted;border-color:var(--color-primary-400);border-width:4px;background:rgb(255 255 255/.2);& .service-card-cta { margin-top: auto; align-self: flex-start; } &:hover { border-color: var(--color-primary-600); border-style: dotted; box-shadow: none; transform: none; }}.service-body{padding-block:clamp(3rem,6vw,6rem)}.service-tags-hero .tag{background-color:rgba(255,255,255,.12);color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.2)}.service-header h1{view-transition-name:service-heading}.service-header{max-width:760px;margin-bottom:3.5rem;border-bottom:1px solid var(--color-border);padding-bottom:2.5rem}.network-page,.service-page{--section-pad:clamp(3rem, 6vw, 6rem)}.network-hero{padding-block:var(--section-pad);background-color:var(--color-nav-bg);position:relative;overflow:hidden;& .service-breadcrumb { margin-bottom: 2rem; & a { color: rgba(255,255,255,0.55); } & a:hover { color: #fff; } & span { color: rgba(255,255,255,0.35); } }}.network-hero-inner{max-width:720px;position:relative;z-index:1}.network-hero-text{& h1 { color: #fff; margin-bottom: 1.25rem; }}.network-intro{font-size:clamp(1.1rem,2.5vw,1.35rem);color:rgba(255,255,255,.75);line-height:1.6;max-width:520px}.network-hero-illustration{position:absolute;right:clamp(0px,calc(50vw - 36rem),6rem);bottom:-40px;width:clamp(260px,36vw,500px);pointer-events:none;z-index:0;opacity:.7;& img { width: 100%; height: auto; display: block; }}.network-vetting{padding-block:var(--section-pad);& .network-vetting-inner { max-width: 720px; } & h2 { margin-bottom: 1.25rem; } & p { font-size: 1.05rem; line-height: 1.75; color: var(--color-text-muted); }}.network-standards{padding-block-start:0;padding-block-end:var(--section-pad);background-color:var(--color-background)}.network-standards-heading{margin-bottom:2.5rem;max-width:520px}.network-qualities{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1.5rem}.network-quality{padding:2rem;border-radius:var(--radius-card);background-color:var(--color-surface);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:.75rem}.network-quality h3{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.1rem,2vw,1.3rem);color:var(--color-heading);line-height:1.2}.network-quality p{font-size:.95rem;line-height:1.65;color:var(--color-text-muted)}.network-closing{padding-block:var(--section-pad);background:var(--gradient-brand)}.network-closing-cta{margin-top:2rem}.network-closing-text{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.4rem,3vw,2rem);color:#fff;line-height:1.45;max-width:680px;text-wrap:balance}.network-final{padding-block:var(--section-pad);border-top:1px solid var(--color-border)}.network-final-text{font-size:clamp(1rem,2vw,1.15rem);color:var(--color-text-muted);max-width:640px;line-height:1.7}@media(max-width:950px){.network-hero-illustration{display:none}}.service-breadcrumb{font-size:.875rem;color:var(--color-text-muted);margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem;& a { color: var(--color-primary-600); &:hover { text-decoration: underline; } } & span { color: var(--color-text-muted); }}.service-description{font-size:clamp(1.05rem,2vw,1.2rem);color:var(--color-text-muted);margin-top:1rem;line-height:1.65}.service-tags-header{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.5rem}.service-content{max-width:760px;margin-bottom:3rem;& p { margin-bottom: 1.25rem; } & h2 { margin-top: 2.5rem; margin-bottom: 0.75rem; } & h3 { margin-top: 2rem; margin-bottom: 0.5rem; } & ul, & ol { list-style: disc; padding-left: 1.5rem; margin-bottom: 1.25rem; color: var(--color-text); & li { margin-bottom: 0.4rem; } }}.tech-stack{margin-bottom:3rem;& h2 { margin-bottom: 1.25rem; }}.tech-list{display:flex;flex-wrap:wrap;gap:.4rem;& li { display: inline-flex; align-items: center; padding: 0.25rem 0.6rem; border-radius: 999px; font-size: 0.75rem; font-weight: 400; background-color: light-dark(var(--color-gray-100), rgba(255,255,255,0.06)); color: var(--color-text-muted); border: 1px solid var(--color-border); }}.common-skills{margin-bottom:3rem;max-width:760px;& summary { list-style: none; cursor: pointer; user-select: none; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.5rem; color: var(--color-text-muted); font-size: 0.9rem; &::-webkit-details-marker { display: none; } &:hover { color: var(--color-text); } }}.common-skills-show{color:var(--color-primary-600);font-weight:600;white-space:nowrap;&::after { content:" ▾"; }}.common-skills-hide{display:none;color:var(--color-primary-600);font-weight:600;white-space:nowrap;&::after { content:" ▴"; }}details.common-skills[open]{& .common-skills-show { display: none; } & .common-skills-hide { display: inline; }}.common-skills-list{display:flex;flex-wrap:wrap;gap:.4rem;padding:1rem 0 0;list-style:none;& li { display: inline-flex; align-items: center; padding: 0.25rem 0.6rem; border-radius: 999px; font-size: 0.75rem; font-weight: 400; background-color: light-dark(var(--color-gray-100), rgba(255,255,255,0.06)); color: var(--color-text-muted); border: 1px solid var(--color-border); }}.related-services{margin-bottom:3rem;& h2 { margin-bottom: 1.25rem; }}.related-list{display:flex;flex-wrap:wrap;gap:.75rem;& li a { display: inline-block; padding: 0.6rem 1.25rem; border-radius: var(--radius-btn); border: 2px solid var(--color-border); color: var(--color-primary-600); font-weight: 600; font-size: 0.9rem; transition: border-color var(--transition-base), background-color var(--transition-base); &:hover { border-color: var(--color-primary-400); background-color: var(--color-primary-50); } }}.service-cta{padding:2.5rem;border-radius:var(--radius-card);background:var(--gradient-brand);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;max-width:760px;& p { color: rgba(255,255,255,0.85); font-size: 1.05rem; max-width: 420px; }}.service-cta-heading{font-family:var(--font-serif);font-weight:400;font-size:1.5rem;color:#fff;margin-bottom:.5rem}.purpledata-section{background:var(--gradient-brand);padding-block:var(--section-gap);position:relative;overflow:hidden;isolation:isolate;&::after { content:''; position:absolute; inset:0; z-index:0; background-image:var(--bg-grunge); background-size:400px; opacity:0.5; pointer-events:none; }}.purpledata-inner{position:relative;z-index:2;display:grid;gap:3rem 5rem;align-items:center;@media(min-width:768px){grid-template-columns: 1fr 1fr;}}.purpledata-logo-link{display:inline-block;margin-bottom:1rem;line-height:0;&:focus-visible { outline:2px solid rgba(255,255,255,0.6); outline-offset:4px; border-radius:2px; }}.purpledata-logo{height:22px;width:auto;display:block}.purpledata-text{& .eyebrow { display: inline-block; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-primary-300); margin-bottom: 1rem; } & h2 { color: #fff; margin-bottom: 0.5rem; } & .sub { font-size: 1.05rem; color: rgba(255,255,255,0.65); margin-bottom: 1.75rem; font-style: italic; } & p { color: rgba(255,255,255,0.8); line-height: 1.7; margin-bottom: 1.25rem; font-size: 0.975rem; }}.purpledata-features{display:flex;flex-direction:column;gap:1rem;margin:1.5rem 0;& li { display: flex; align-items: flex-start; gap: 0.75rem; color: rgba(255,255,255,0.85); font-size: 0.95rem; line-height: 1.5; &::before { content: ''; flex-shrink: 0; width: 18px; height: 18px; margin-top: 2px; border-radius: 50%; background-color: var(--color-primary-500); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; } }}.purpledata-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.5rem}.purpledata-visual{display:flex;justify-content:center;align-items:center}.purpledata-logo-large{width:100%;max-width:340px;height:auto;display:block;filter:drop-shadow(0 4px 24px rgba(0,0,0,.35))}.site-footer{background-color:var(--color-nav-bg);color:rgba(255,255,255,.7);padding-block:3.5rem 2rem}.footer-grid{display:grid;gap:2.5rem;margin-bottom:3rem;@media(min-width:640px){grid-template-columns: 1fr 1fr;}@media(min-width:960px){grid-template-columns: 2fr 1fr 1fr;}}.footer-brand{& img { height: 32px; width: auto; margin-bottom: 1rem; opacity: 0.9; } & p { font-size: 0.875rem; line-height: 1.65; max-width: 280px; }}.footer-col{& .footer-col-heading { font-family: var(--font-serif); font-weight: 400; font-size: 1rem; color: #fff; margin-bottom: 1rem; } & ul { display: flex; flex-direction: column; gap: 0.5rem; }}.footer-link{font-size:.875rem;color:rgba(255,255,255,.65);background:0 0;border:none;padding:0;cursor:pointer;text-align:left;transition:color var(--transition-base);text-decoration:none;&:hover { color:#fff; }}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);font-size:.8rem;color:rgba(255,255,255,.6)}.footer-bottom-links{display:flex;gap:1.5rem}[popover]{border:none;padding:0;margin:auto;inset:0;position:fixed;overflow:hidden;width:min(720px,96vw);max-height:90dvh;border-radius:var(--radius-card);background:light-dark(rgba(255,255,255,.97),rgba(22,32,48,.97));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 24px 64px rgb(0 0 0/.3);opacity:0;transform:scale(.96)translateY(12px);transition:display .3s allow-discrete,overlay .3s allow-discrete,opacity .25s ease,transform .25s ease;&:popover-open { opacity:1; transform:scale(1) translateY(0); } @starting-style { &:popover-open { opacity:0; transform:scale(0.96) translateY(12px); } } &::backdrop { background:rgb(0 0 0/0.55); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); opacity:0; transition:display 0.3s allow-discrete,overlay 0.3s allow-discrete,opacity 0.3s; } &:popover-open::backdrop { opacity:1; } @starting-style { &:popover-open::backdrop { opacity:0; } }}.popover-legal{width:min(860px,96vw);max-height:88dvh;overflow-y:auto;overscroll-behavior:contain;padding:2.5rem clamp(1.5rem,5vw,4rem)3rem;color:var(--color-text);& h1 { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: 0.5rem; } & h3 { font-size: 1.1rem; margin-top: 1.75rem; margin-bottom: 0.5rem; color: var(--color-heading); } & p { margin-bottom: 1rem; line-height: 1.7; font-size: 0.95rem; } & address { font-style: normal; margin-bottom: 1rem; line-height: 1.7; font-size: 0.95rem; } & a { color: var(--color-primary-600); text-decoration: underline; text-underline-offset: 3px; } & strong { font-weight: 600; }}.popover-contact{overflow-y:auto;overscroll-behavior:contain;padding:2.5rem clamp(1.5rem,5vw,3rem)3rem;& h2 { color: var(--color-heading); margin-bottom: 0.4rem; } & .contact-sub { font-size: 0.95rem; color: var(--color-text-muted); margin-bottom: 2rem; }}#zammad-feedback-form{& form { display: flex; flex-direction: column; gap: 1rem; } & label { display: block; font-size: 0.875rem; font-weight: 600; margin-bottom: 0.35rem; color: var(--color-text); } & input, & textarea, & select { width: 100%; padding: 0.7rem 1rem; border: 1.5px solid var(--color-border); border-radius: var(--radius-btn); background-color: var(--color-surface); color: var(--color-text); font-size: 0.95rem; transition: border-color var(--transition-base); &:focus { outline: none; border-color: var(--color-primary-400); box-shadow: 0 0 0 3px rgb(233 75 147 / 0.12); } } & textarea { min-height: 120px; resize: vertical; } & button[type="submit"] { align-self: flex-end; padding: 0.7rem 2rem; background-color: var(--color-primary-600); color: #fff; font-weight: 600; border-radius: var(--radius-btn); border: none; cursor: pointer; transition: background-color var(--transition-base); &:hover { background-color: var(--color-primary-700); } } & .success-message { color: #16a34a; font-weight: 600; } & .error-message { color: #dc2626; font-size: 0.875rem; }}.popover-close{position:sticky;top:0;float:right;z-index:10;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background-color:light-dark(var(--color-gray-100),rgba(255,255,255,.1));color:var(--color-text-muted);border:none;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base);margin-bottom:.5rem;&:hover { background-color:light-dark(var(--color-gray-200),rgba(255,255,255,0.18)); color:var(--color-heading); } & svg { width:16px; height:16px; }}