/* Geletric components. Loaded after tokens.css; every value is a token. */
.gl-mark{width:48px;height:48px;display:block}
.gl-ring{fill:var(--ink)}.gl-dot{fill:var(--accent)}
.gl-lockup{display:block;width:100%;height:auto}
.gl-rule-fill{fill:var(--accent)}.gl-desc-fill{fill:var(--accent)}.gl-extra-fill{fill:var(--ink-muted)}
.gl-on-field .gl-ring{fill:var(--on-field)}.gl-on-field .gl-dot{fill:var(--brand-ember-bright)}
.gl-on-field .gl-rule-fill{fill:var(--brand-copper-light)}.gl-on-field .gl-desc-fill{fill:var(--brand-ember-bright)}.gl-on-field .gl-extra-fill{fill:var(--brand-steel)}
.gl-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-6);border:2px solid transparent;border-radius:var(--radius-sm);font:600 14px/20px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;cursor:pointer;background:transparent;color:var(--ink)}
.gl-btn--primary{background:var(--action);color:var(--on-action)}
.gl-btn--primary:hover{filter:brightness(.92)}
.gl-btn--secondary{border-color:var(--ink)}
.gl-btn--secondary:hover{background:var(--surface-raised)}
.gl-btn--ghost{color:var(--accent-text);padding:0 var(--space-2)}
.gl-btn--ghost:hover{text-decoration:underline;text-underline-offset:4px}
.gl-btn:focus-visible,.gl-input:focus-visible,.gl-link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.gl-btn[disabled]{opacity:.45;cursor:not-allowed}
.gl-rule{display:block;width:96px;height:3px;background:var(--accent);border:0;margin:0}
.gl-rule--copper{background:var(--copper)}
.gl-desc{font:500 12px/16px var(--font-sans);letter-spacing:.32em;text-transform:uppercase;color:var(--accent-text);margin:0}
.gl-desc--copper{color:var(--copper)}.gl-desc--ink{color:var(--ink)}
.gl-services{font:500 14px/20px var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin:0;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}
.gl-services li{list-style:none;display:flex;align-items:center;gap:var(--space-4)}
.gl-services li+li::before{content:"";width:6px;height:6px;border-radius:var(--radius-full);background:var(--accent)}
.gl-services{padding:0}
.gl-contact{display:flex;align-items:center;gap:var(--space-4);color:var(--ink);text-decoration:none}
.gl-contact__tile{flex:none;width:44px;height:44px;border-radius:var(--radius-md);background:var(--tile);color:var(--on-tile);display:grid;place-items:center}
.gl-contact__text{font:500 20px/28px var(--font-sans);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
a.gl-contact:hover .gl-contact__text{text-decoration:underline;text-underline-offset:4px}
.gl-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1.5px solid var(--border-strong);border-radius:var(--radius-full);font:500 12px/16px var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);background:var(--surface)}
.gl-badge::before{content:"";width:8px;height:8px;border-radius:var(--radius-full);background:var(--accent);flex:none}
.gl-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);color:var(--ink)}
.gl-card__icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);display:grid;place-items:center}
.gl-card h3{font:600 20px/28px var(--font-sans);margin:0;display:flex;align-items:center;gap:var(--space-3)}
.gl-card p{font:400 14px/22px var(--font-sans);color:var(--ink-muted);margin:0}
.gl-link{font:600 14px/20px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);text-decoration:none}
.gl-link:hover{text-decoration:underline;text-underline-offset:4px}
.gl-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-4) var(--space-6);background:var(--surface);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}
.gl-header__brand{display:flex;align-items:center;gap:var(--space-3);color:var(--ink);text-decoration:none;font:600 20px/24px var(--font-sans);letter-spacing:.28em;text-transform:uppercase}
.gl-header nav{display:flex;gap:var(--space-6);flex-wrap:wrap}
.gl-header nav a{font:500 12px/16px var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:var(--space-2) 0;border-bottom:2px solid transparent}
.gl-header nav a[aria-current]{border-bottom-color:var(--accent)}
.gl-header nav a:hover{border-bottom-color:var(--border-strong)}
.gl-lang{display:inline-flex;gap:var(--space-4)}
.gl-lang a{font:600 12px/16px var(--font-sans);letter-spacing:.2em;color:var(--ink-muted);text-decoration:none;padding:var(--space-2) 0;border-bottom:2px solid transparent}
.gl-lang a[aria-current]{color:var(--ink);border-bottom-color:var(--accent)}
.gl-lang a:hover{color:var(--ink)}
.gl-lang a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.gl-field{display:flex;flex-direction:column;gap:var(--space-2)}
.gl-field label{font:500 12px/16px var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.gl-input{font:400 16px/24px var(--font-sans);color:var(--ink);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);min-height:48px;width:100%;box-sizing:border-box}
.gl-input::placeholder{color:var(--ink-muted)}
textarea.gl-input{min-height:96px;resize:vertical}
.gl-field__help{font:400 14px/22px var(--font-sans);color:var(--ink-muted);margin:0}
.gl-field--error .gl-input{border-color:var(--danger)}
.gl-field--error .gl-field__help{color:var(--danger)}
.gl-hero{background:var(--field);color:var(--on-field);padding:var(--space-16) var(--space-8);position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-8);align-items:center}
.gl-hero h1{font:600 clamp(32px,5vw,56px)/1.08 var(--font-sans);letter-spacing:.02em;margin:0;text-wrap:balance}
.gl-hero p.lead{font:400 18px/28px var(--font-sans);margin:0;max-width:46ch;color:var(--on-field)}
.gl-hero .gl-desc{color:var(--brand-ember-bright)}
.gl-hero .gl-btn--secondary{border-color:var(--on-field);color:var(--on-field)}
.gl-hero .gl-btn--primary{background:var(--brand-ember-bright);color:var(--brand-black)}
.gl-hero .gl-btn:focus-visible{outline-color:var(--on-field)}
.gl-mark.gl-hero__mark{width:100%;height:auto;max-width:340px;justify-self:center}
@media (max-width:640px){.gl-hero{grid-template-columns:1fr;padding:var(--space-12) var(--space-4)}.gl-mark.gl-hero__mark{max-width:160px;justify-self:start}}
.gl-bcard{aspect-ratio:90/55;width:100%;max-width:450px;box-sizing:border-box;position:relative;overflow:hidden;border-radius:var(--radius-none);box-shadow:var(--shadow-card)}
.gl-bcard--white{background:var(--brand-mist);color:var(--brand-ink);display:grid;grid-template-columns:42% 1fr;align-items:center;gap:4%;padding:0 5%}
.gl-bcard--white .gl-ring{fill:var(--brand-ink)}.gl-bcard--white .gl-dot{fill:var(--brand-ember)}.gl-bcard--white .gl-rule-fill{fill:var(--brand-copper)}.gl-bcard--white .gl-desc-fill{fill:var(--brand-copper)}
.gl-bcard__name{font:700 clamp(11px,3.1cqw,16px)/1.15 var(--font-sans);letter-spacing:.04em;text-transform:uppercase;margin:0}
.gl-bcard__role{font:500 clamp(6px,1.6cqw,9px)/1.3 var(--font-sans);letter-spacing:.22em;text-transform:uppercase;margin:4px 0 14px}
.gl-bcard__line{display:flex;align-items:center;gap:6px;font:500 clamp(7px,2.1cqw,11px)/1.2 var(--font-sans);margin:6px 0;font-variant-numeric:tabular-nums}
.gl-bcard__ico{flex:none;width:clamp(12px,3.2cqw,17px);height:clamp(12px,3.2cqw,17px);border-radius:3px;background:var(--brand-ink);color:var(--brand-white);display:grid;place-items:center}
.gl-bcard__ico svg{width:70%;height:70%}
.gl-bcard--night{background:var(--brand-black);display:grid;place-items:center}
.gl-bcard--night .gl-lockup{width:50%}
.gl-bcard--night .gl-ring{fill:var(--brand-white)}.gl-bcard--night .gl-dot{fill:var(--brand-ember-bright)}.gl-bcard--night .gl-rule-fill{fill:var(--brand-copper-light)}.gl-bcard--night .gl-desc-fill{fill:var(--brand-copper-light)}.gl-bcard--night .gl-extra-fill{fill:var(--brand-steel)}
.gl-bcard-wrap{container-type:inline-size;width:100%;max-width:450px}
