/* Antelum / Before the light / website foundation v1.0 */
/* Load Outfit 400/500/600 and IBM Plex Sans 400/500/600 separately. */
/* Colour, type scale, spacing, radius, motion: generated in antelum-tokens.css from the brand kit
   (tokens/antelum.tokens.json). This file keeps the names the site already uses as aliases of the
   generated ground roles, plus the layout values the token file does not hold. */
:root, [data-ground="dark"], .ant-theme-dark {
  --ant-bg:var(--ant-ground-bg); --ant-surface:var(--ant-ground-surface);
  --ant-text:var(--ant-ground-text); --ant-muted:var(--ant-ground-text-2);
  --ant-link:var(--ant-ground-link); --ant-border:var(--ant-ground-line);
}
:root {
  --ant-text-sm:.875rem; --ant-text-base:1.0625rem;
  --ant-h1:clamp(2.5rem,6vw,4.75rem); --ant-h2:clamp(2rem,4vw,3rem);
  --ant-h3:1.5rem; --ant-container:75rem;
}
.ant-theme-dark {color:var(--ant-text);background:var(--ant-bg)}
.ant-page {margin:0;color:var(--ant-text);background:var(--ant-bg);font-family:var(--ant-font-body);font-size:var(--ant-text-base);line-height:1.65;-webkit-font-smoothing:antialiased}
.ant-page *, .ant-page *::before, .ant-page *::after {box-sizing:border-box}
.ant-container {width:min(var(--ant-container),calc(100% - 3rem));margin-inline:auto}
.ant-section {padding-block:clamp(3.5rem,8vw,6rem)}
.ant-title {font-family:var(--ant-font-display);font-weight:500;font-size:var(--ant-h1);line-height:1.05;letter-spacing:-.035em;max-width:17ch;margin:0 0 1.5rem}
.ant-heading {font-family:var(--ant-font-display);font-size:var(--ant-h2);font-weight:500;line-height:1.15;letter-spacing:-.025em;margin:0 0 1.5rem}
.ant-eyebrow {font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ant-link)}
.ant-copy {max-width:62ch;color:var(--ant-muted)}
.ant-link {color:var(--ant-link);text-decoration:underline;text-underline-offset:.2em}
.ant-button {display:inline-flex;justify-content:center;align-items:center;gap:.625rem;min-height:48px;padding:.75rem 1.25rem;border:1px solid transparent;border-radius:var(--ant-radius-control);background:var(--ant-action);color:var(--ant-on-action);font:500 1rem/1.4 var(--ant-font-body);text-decoration:none;cursor:pointer;transition:background var(--ant-duration) var(--ant-ease),border-color var(--ant-duration) var(--ant-ease)}
.ant-button:hover {background:var(--ant-action-hover)}
.ant-button--secondary {background:transparent;border-color:var(--ant-control);color:var(--ant-text)}
.ant-button--secondary:hover {background:var(--ant-surface);border-color:var(--ant-link)}
.ant-button:disabled {background:var(--ant-line);color:var(--ant-slate);cursor:not-allowed}
.ant-page :focus-visible {outline:3px solid var(--ant-link);outline-offset:4px}
.ant-button:focus-visible {box-shadow:0 0 0 2px var(--ant-bg)}
.ant-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.ant-card {padding:2rem;border:1px solid var(--ant-border);border-radius:var(--ant-radius-card);background:var(--ant-surface)}
.ant-card h3 {font:500 var(--ant-h3)/1.2 var(--ant-font-display);letter-spacing:-.02em;margin:0 0 1rem}
.ant-label {display:block;font-weight:500;margin-bottom:.5rem}
.ant-input {width:100%;min-height:48px;padding:.75rem 1rem;border:1px solid var(--ant-control);border-radius:var(--ant-radius-control);background:var(--ant-surface);color:var(--ant-text);font:inherit}
.ant-input::placeholder {color:var(--ant-muted);opacity:1}
.ant-input[aria-invalid=true] {border:2px solid var(--ant-error)}
.ant-help {font-size:var(--ant-text-sm);color:var(--ant-muted);margin-top:.5rem}
.ant-error {color:var(--ant-error)}
.ant-theme-dark .ant-error {color:var(--ant-error-on-dark)}
.ant-horizon {position:relative;isolation:isolate;overflow:hidden}
.ant-horizon::after {content:'';z-index:-1;position:absolute;pointer-events:none;width:130%;height:18rem;left:-15%;bottom:-13rem;border-radius:50%;border-top:1px solid var(--ant-sky);background:radial-gradient(ellipse at 50% 0%,rgb(12 145 246 / 35%),transparent 68%)}
@media(max-width:48rem){.ant-grid{grid-template-columns:1fr}.ant-container{width:calc(100% - 2rem)}.ant-card{padding:1.5rem}}
@media(prefers-reduced-motion:reduce){.ant-page *, .ant-page *::before,.ant-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
