/* ==========================================================================
   Public stylesheet for gplatform.org and ennogelhaus.de: Glass Tiles.

   One file for both sites. gplatform.org leads with orange; ennogelhaus.de
   swaps the two lights with body.gt-eg. Dark only.

   No inline styles anywhere in the views (style-src 'self'), no web fonts from
   another origin, no build step. The admin and the signed-in admin bar keep
   using site.css; the compatibility tokens near the top let them sit on these
   pages.

   Contents
     1  Fonts and tokens
     2  Base
     3  Page frame, glows, header, menu
     4  Footer
     5  Type
     6  Layout helpers
     7  Components
     8  Prose (Markdown bodies)
     9  Motion
    10 Pages
    11 Responsive
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Fonts and tokens
   -------------------------------------------------------------------------- */

@font-face{font-family:"Sora";font-style:normal;font-weight:300 700;font-display:swap;src:url("/assets/fonts/sora-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Sora";font-style:normal;font-weight:300 700;font-display:swap;src:url("/assets/fonts/sora-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 500;font-display:swap;src:url("/assets/fonts/jetbrains-mono-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 500;font-display:swap;src:url("/assets/fonts/jetbrains-mono-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  color-scheme:dark;
  --p:#ff7a29;--pl:#ffa066;--pr:255,122,41;
  --s:#29d3ee;--sl:#8be9f7;--sr:41,211,238;
  --ok:#7be6a6;
  --bg:#050506;--bg-2:#030304;--surface:#0b0b0d;
  --text:#f2eee8;--strong:#e7e1d6;--soft:#d6cfc3;--body:#bdb6ab;--muted:#a39c91;--quiet:#8f887d;--faint:#6d675e;
  --glass:rgba(255,255,255,.04);--glass-2:rgba(255,255,255,.07);
  --edge:rgba(255,255,255,.12);--edge-2:rgba(255,255,255,.1);
  --sans:"Sora",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --wrap:1360px;

  /* Names the admin bar and the assistant (admin.css) were written against. */
  --surface-2:#101013;--surface-3:#16161a;
  --line:rgba(255,255,255,.12);--line-soft:rgba(255,255,255,.08);--line-strong:rgba(255,255,255,.22);
  --muted-2:#8f887d;--dim:#6d675e;
  --accent:var(--p);--accent-strong:var(--pl);--accent-ink:#1c0d03;
  --accent-wash:rgba(var(--pr),.12);--accent-line:rgba(var(--pr),.4);
  --warn:#f0b429;--warn-wash:rgba(240,180,41,.12);--crit:#ff5d6c;--crit-wash:rgba(255,93,108,.12);--ok-wash:rgba(123,230,166,.1);
  --focus:var(--sl);--radius:14px;--radius-lg:20px;
  --font-ui:var(--sans);--font-mono:var(--mono);
}
body.gt-eg{--p:#29d3ee;--pl:#8be9f7;--pr:41,211,238;--s:#ff7a29;--sl:#ffa066;--sr:255,122,41}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */

html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.gt{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* :where() keeps these resets at zero specificity, so any single class beats them. */
:where(.gt) *,:where(.gt) *::before,:where(.gt) *::after{box-sizing:border-box}
:where(.gt) a{color:inherit;text-decoration:none}
:where(.gt) img,:where(.gt) svg{max-width:100%}
:where(.gt) :is(h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd){margin:0}
:where(.gt) :is(ul,ol){padding:0;list-style:none}
:where(.gt) :is(button,input,textarea,select){font:inherit;color:inherit}
.gt :focus-visible{outline:2px solid rgba(var(--sr),.8);outline-offset:3px;border-radius:6px}
.gt ::selection{background:rgba(var(--pr),.35);color:#fff}
.gt-skip{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 20px;border-radius:999px;background:var(--p);color:#1c0d03;font-weight:600}
.gt-skip:focus{top:16px}
.gt-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --------------------------------------------------------------------------
   3. Page frame, glows, header, menu
   -------------------------------------------------------------------------- */

.gt-page{position:relative;overflow-x:clip;min-height:100vh;display:flex;flex-direction:column}
.gt-page>main{flex:1 0 auto}
.gt-glow{position:absolute;left:0;right:0;top:0;height:0;pointer-events:none}
.gt-glow i{position:absolute;left:50%;top:-240px;width:800px;height:600px;margin-left:-740px;border-radius:50%;background:var(--p);filter:blur(180px);opacity:.15}
.gt-glow i+i{top:-200px;height:560px;margin-left:-80px;background:var(--s);filter:blur(190px)}

.gt-hbar{position:relative;z-index:20;display:flex;justify-content:center;padding:28px 24px 0}
.gt-hdr{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:40px;padding:10px 12px 10px 28px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.gt-brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:19px;line-height:1.2;letter-spacing:-.01em;color:var(--text)}
.gt-brand svg{flex:none;width:28px;height:28px;fill:none;stroke:var(--p);stroke-width:1.7;stroke-linejoin:round}
.gt-avatar{flex:none;width:32px;height:32px;border-radius:50%;object-fit:cover;border:1.5px solid var(--p)}
.gt-mono{flex:none;width:28px;height:28px;border-radius:50%;border:1.7px solid var(--p);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;line-height:1;color:var(--p)}
.gt-panel{display:contents}
.gt-nav{display:flex;gap:34px;font-size:16px;color:var(--body)}
.gt-nav a{position:relative;line-height:1.4}
.gt-nav a:hover{color:var(--pl)}
.gt-nav a[aria-current]{color:var(--text)}
.gt-nav a[aria-current]::after{content:"";position:absolute;left:50%;bottom:-11px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--p)}
.gt-tools{display:flex;align-items:center;gap:10px}
.gt-tool{display:inline-flex;align-items:center;gap:8px;padding:0 8px;font-size:14px;line-height:1;color:var(--body)}
.gt-tool:hover{color:var(--pl)}
.gt-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);position:relative;top:1px}
.gt-lang{display:inline-flex;gap:6px;padding:0 6px;font-family:var(--mono);font-size:13px;line-height:1;color:var(--quiet)}
.gt-lang a:hover{color:var(--pl)}
.gt-lang [aria-current]{color:var(--text);font-weight:500}
.gt-lang i{font-style:normal}
.gt-menu{display:none;flex:none;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:var(--text);align-items:center;justify-content:center;cursor:pointer}
.gt-menu svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.gt-menu-input{display:none}

/* --------------------------------------------------------------------------
   4. Footer
   -------------------------------------------------------------------------- */

.gt-foot{border-top:1px solid rgba(255,255,255,.1);background:var(--bg-2);color:var(--muted)}
.gt-foot__grid{max-width:var(--wrap);margin:0 auto;padding:72px 56px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:48px}
.gt-foot .gt-brand{color:var(--text)}
.gt-foot .gt-brand svg,.gt-foot .gt-mono{width:26px;height:26px}
.gt-foot .gt-avatar{width:28px;height:28px}
.gt-foot__blurb{margin-top:18px;font-size:16px;line-height:1.7;max-width:300px}
.gt-foot__col{display:flex;flex-direction:column;gap:12px;font-size:16px;line-height:1.5}
.gt-foot__col h3{margin:0 0 4px;font-size:14px;font-weight:400;color:var(--faint)}
.gt-foot__col a:hover{color:var(--pl)}
.gt-foot__bar{max-width:var(--wrap);margin:0 auto;padding:24px 56px 52px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;border-top:1px solid rgba(255,255,255,.08)}
.gt-foot__bar span:last-child{font-family:var(--mono);font-size:13px}

/* --------------------------------------------------------------------------
   5. Type
   -------------------------------------------------------------------------- */

.gt-ph,.gt-h1,.gt-h2,.gt-h3{font-weight:500;text-wrap:balance}
.gt-h1{margin:0 auto;max-width:1200px;font-size:140px;line-height:.98;letter-spacing:-.055em}
.gt-ph{margin:34px 0 0;font-size:120px;line-height:.98;letter-spacing:-.055em}
.gt-ph--l{font-size:104px;line-height:1}
.gt-ph--m{font-size:88px;line-height:1;letter-spacing:-.05em}
.gt-ph--s{font-size:76px;line-height:1.02;letter-spacing:-.05em}
.gt-ph--xs{font-size:60px;line-height:1.04;letter-spacing:-.045em}
.gt-h2{margin:0;font-size:60px;line-height:1.04;letter-spacing:-.045em}
.gt-h2--xl{font-size:84px;line-height:1.02;letter-spacing:-.05em}
.gt-h2--l{font-size:52px}
.gt-h2--m{font-size:44px;line-height:1.08;letter-spacing:-.04em}
.gt-h2--s{font-size:40px;line-height:1.1;letter-spacing:-.035em}
.gt-h3{margin:0;font-size:32px;line-height:1.12;letter-spacing:-.035em}
.gt-h3--l{font-size:44px;line-height:1.08;letter-spacing:-.04em}
.gt-h3--m{font-size:36px;line-height:1.1}
.gt-h3--s{font-size:30px}
.gt-h3--xs{font-size:24px;line-height:1.2;letter-spacing:-.03em}
.gt-lead{margin:32px 0 0;max-width:800px;font-size:26px;line-height:1.55;color:var(--body);text-wrap:pretty}
.gt-lead--m{font-size:22px;line-height:1.65;margin-top:24px;max-width:720px}
.gt-lead--s{font-size:20px;margin-top:22px;max-width:700px}
.gt-text{font-size:17px;line-height:1.7;color:var(--body);text-wrap:pretty}
.gt-text--l{font-size:19px}
.gt-text--s{font-size:16px;line-height:1.65}
.gt-mut{color:var(--muted)}
.gt-quiet{color:var(--quiet)}
.gt-eyebrow{font-family:var(--mono);font-size:14px;line-height:1;color:var(--pl)}
.gt-kicker{font-size:15px;color:var(--quiet)}
.gt-monoline{font-family:var(--mono)}
.gt-crumb{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:15px;line-height:1;color:var(--muted)}
.gt-crumb a:hover{color:var(--pl)}
.gt-crumb [aria-hidden]{color:var(--faint)}
.gt-crumb [aria-current]{color:var(--text)}

/* --------------------------------------------------------------------------
   6. Layout helpers
   -------------------------------------------------------------------------- */

.gt-wrap{position:relative;max-width:var(--wrap);margin:0 auto;padding:0 56px}
.gt-top{padding-top:120px}
.gt-sec{margin-top:130px}
.gt-sec--m{margin-top:110px}
.gt-sec--s{margin-top:90px}
.gt-sec--xs{margin-top:56px}
.gt-end{padding-bottom:150px}
.gt-narrow{max-width:820px}
.gt-flex{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.gt-flex--10{gap:10px}
.gt-flex--14{gap:14px}
.gt-between{justify-content:space-between}
.gt-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.gt-cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.gt-cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.gt-cols2--20,.gt-cols3--20{gap:20px}
.gt-s1{grid-column:span 1}.gt-s4{grid-column:span 4}.gt-s5{grid-column:span 5}.gt-s6{grid-column:span 6}.gt-s7{grid-column:span 7}.gt-s12{grid-column:span 12}
.gt-all{grid-column:1 / -1}
.gt-split{display:grid;gap:56px;align-items:start}
.gt-sticky{position:sticky;top:28px}
.gt-art{pointer-events:none}

/* --------------------------------------------------------------------------
   7. Components
   -------------------------------------------------------------------------- */

/* Glass */
.gt-card,.gt-tile{border-radius:32px;border:1px solid var(--edge);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:40px}
.gt-tile{transition:transform .5s cubic-bezier(.2,.8,.2,1),border-color .4s,background .4s}
a.gt-tile:hover,.gt-tile--lift:hover{transform:translateY(-6px);border-color:rgba(var(--pr),.55);background:var(--glass-2)}
.gt-tile.gt-c:hover{border-color:rgba(var(--sr),.55)}
.gt-flex-col{display:flex;flex-direction:column;gap:18px}
.gt-tile--hot,.gt-card--hot{border-color:rgba(var(--pr),.4);background:linear-gradient(150deg,rgba(var(--pr),.12),rgba(var(--sr),.05) 70%,rgba(255,255,255,.02))}
.gt-card--cool{border-color:rgba(var(--sr),.35)}
.gt-card--warm{border-color:rgba(var(--pr),.35);background:linear-gradient(150deg,rgba(var(--pr),.1),rgba(255,255,255,.02))}
.rad-24{border-radius:24px}.rad-26{border-radius:26px}.rad-28{border-radius:28px}.rad-30{border-radius:30px}.rad-34{border-radius:34px}.rad-36{border-radius:36px}.rad-40{border-radius:40px}.rad-44{border-radius:44px}
.pad-28{padding:28px}.pad-30{padding:30px}.pad-32{padding:32px}.pad-34{padding:34px}.pad-36{padding:36px}.pad-44{padding:44px}.pad-48{padding:48px 52px}.pad-52{padding:52px 56px}.pad-64{padding:64px}

/* Buttons */
.gt-btn{display:inline-flex;align-items:center;gap:10px;min-height:64px;padding:0 36px;border-radius:999px;font-weight:600;font-size:19px;line-height:1;cursor:pointer;border:1px solid transparent;transition:filter .2s,background .2s}
.gt-btn--p{background:var(--p);color:#1c0d03}
.gt-btn--p:hover{filter:brightness(1.1)}
.gt-btn--s{border-color:rgba(var(--sr),.6);background:rgba(var(--sr),.06);color:#f2eee8}
.gt-btn--s:hover{background:rgba(var(--sr),.14)}
.gt-btn--g{border-color:rgba(255,255,255,.26);background:rgba(255,255,255,.04);color:#f2eee8}
.gt-btn--g:hover{background:rgba(255,255,255,.1)}
.gt-btn--m{min-height:56px;padding:0 30px;font-size:17px}
.gt-btn--l{min-height:68px;padding:0 42px;font-size:20px}

/* Links */
.gt-link:hover{color:var(--pl)}
.gt-more{display:inline-flex;gap:10px;align-items:center;font-size:16px;font-weight:600;line-height:1;color:var(--pl)}
.gt-more--l{font-size:19px;color:var(--p)}
.gt-linkrow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 0;border-top:1px solid var(--edge-2);font-size:17px;color:var(--soft)}
.gt-linkrow:hover{color:var(--pl)}
.gt-linkrow span:last-child{color:var(--pl)}
.gt-ul{border-bottom:1px solid rgba(255,255,255,.3);color:var(--soft)}

/* Pills and tags */
.gt-pill{display:inline-flex;align-items:center;min-height:30px;padding:0 14px;border-radius:999px;border:1px solid;font-size:13px;line-height:1;font-weight:500;white-space:nowrap}
.gt-po{color:#ffa066;border-color:rgba(255,122,41,.5);background:rgba(255,122,41,.1)}
.gt-pc{color:#8be9f7;border-color:rgba(41,211,238,.5);background:rgba(41,211,238,.1)}
.gt-pg{color:#7be6a6;border-color:rgba(123,230,166,.4);background:rgba(123,230,166,.08)}
.gt-pm{color:#a39c91;border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.04)}
.gt-pill--l{min-height:40px;padding:0 18px;font-size:15px}
.gt-pill--l small{margin-left:8px;font-size:inherit;color:var(--faint)}
.gt-tag{display:inline-flex;align-items:center;min-height:32px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);font-family:var(--mono);font-size:13px;line-height:1;color:#cfc8bc}
.gt-tags{display:flex;flex-wrap:wrap;gap:10px}
.gt-tilehead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.gt-tilepills{display:flex;flex-direction:column;align-items:flex-end;gap:6px}

/* Fields */
.gt-field{display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--body)}
.gt-input{width:100%;min-height:60px;padding:0 20px;border-radius:18px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:#f2eee8;font-size:17px;line-height:1.4}
textarea.gt-input{min-height:200px;padding:18px 20px;line-height:1.6;resize:vertical}
.gt-input::placeholder{color:#6d675e}
.gt-input:focus{outline:2px solid rgba(var(--sr),.7);outline-offset:2px}
.gt-input[aria-invalid=true]{border-color:rgba(255,122,41,.7)}
.gt-errtext{font-size:13px;color:var(--pl)}
.gt-flt{position:absolute;opacity:0;pointer-events:none}
.gt-fl-l{display:inline-flex;align-items:center;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);font-size:16px;line-height:1;color:#bdb6ab;cursor:pointer;transition:background .2s,border-color .2s}
.gt-fl-l:hover{border-color:rgba(255,255,255,.3)}
.gt-flt:checked+.gt-fl-l{background:rgba(var(--pr),.16);border-color:rgba(var(--pr),.6);color:#f2eee8}
.gt-flt:focus-visible+.gt-fl-l{outline:2px solid rgba(var(--sr),.8);outline-offset:3px}

/* Callouts */
.gt-callout{border-radius:26px;border:1px solid rgba(var(--c),.45);background:linear-gradient(150deg,rgba(var(--c),.12),rgba(var(--c),.03));padding:30px 34px;display:flex;gap:18px;align-items:flex-start}
.gt-callout--o{--c:255,122,41;--d:#ff7a29}
.gt-callout--c{--c:41,211,238;--d:#29d3ee}
.gt-callout--g{--c:123,230,166;--d:#7be6a6}
.gt-callout::before{content:"";flex:none;margin-top:8px;width:10px;height:10px;border-radius:50%;background:var(--d);box-shadow:0 0 16px var(--d)}
.gt-callout__t{font-size:21px;font-weight:600;letter-spacing:-.02em;line-height:1.3}
.gt-callout p{margin:10px 0 0;max-width:760px;font-size:17px;line-height:1.7;color:var(--soft);text-wrap:pretty}

/* Spec table */
.gt-spec{padding:10px 40px;border-radius:30px}
.gt-spec>div{display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,1fr);gap:32px;padding:24px 0;align-items:baseline}
.gt-spec>div+div{border-top:1px solid var(--edge-2)}
.gt-spec dt,.gt-spec>div>:first-child{font-size:18px;font-weight:500;letter-spacing:-.02em;color:var(--strong)}
.gt-spec dd,.gt-spec>div>:last-child{font-size:17px;line-height:1.65;color:var(--body);text-wrap:pretty}

/* On this page */
.gt-toc{padding-top:6px}
.gt-toc__t{font-size:14px;color:var(--quiet);margin-bottom:12px}
.gt-toc a{display:flex;align-items:center;gap:14px;padding:11px 0;color:var(--muted);font-size:16px;line-height:1.3}
.gt-toc a:hover,.gt-toc a.is-on{color:var(--text)}
.gt-toc a span:first-child{font-family:var(--mono);font-size:13px;color:var(--faint)}
.gt-toc a.is-on span:first-child{color:var(--p)}
.gt-toc__foot{margin-top:34px;padding-top:24px;border-top:1px solid var(--edge-2)}

/* FAQ */
.gt-faq{border-top:1px solid var(--edge-2)}
.gt-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.3}
.gt-faq summary::-webkit-details-marker{display:none}
.gt-faq summary::after{content:"+";font-size:28px;color:var(--pl);line-height:1}
.gt-faq[open] summary::after{content:"\2212"}
.gt-faq summary:hover{color:var(--sl)}
.gt-faq>div{margin:0 0 28px;max-width:760px;font-size:18px;line-height:1.7;color:var(--body)}
.gt-faqs{border-bottom:1px solid var(--edge-2)}

/* Status chips: the project status tones */
.chip{display:inline-flex;align-items:center;min-height:30px;padding:0 14px;border-radius:999px;border:1px solid;font-size:13px;line-height:1;font-weight:500;white-space:nowrap}
.chip--ok{color:#7be6a6;border-color:rgba(123,230,166,.4);background:rgba(123,230,166,.08)}
.chip--active{color:#ffa066;border-color:rgba(255,122,41,.5);background:rgba(255,122,41,.1)}
.chip--warn{color:#8be9f7;border-color:rgba(41,211,238,.5);background:rgba(41,211,238,.1)}
.chip--muted{color:#a39c91;border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.04)}

/* Glyph boxes: the animated pictures at the head of a tile */
.gt-glyph{width:170px;height:120px;flex:none}
.gt-glyph svg{display:block}
.gt-svgc{transform-box:fill-box;transform-origin:center}

/* Skip nav targets sit clear of the sticky nothing; kept for anchors */
[id]{scroll-margin-top:24px}

/* --------------------------------------------------------------------------
   8. Prose
   -------------------------------------------------------------------------- */

.gt-prose{font-size:18px;line-height:1.75;color:var(--body);max-width:760px}
.gt-prose>*+*{margin-top:1.1em}
.gt-prose h2{margin-top:2.2em;font-size:34px;line-height:1.15;font-weight:500;letter-spacing:-.035em;color:var(--text)}
.gt-prose h3{margin-top:1.9em;font-size:24px;line-height:1.25;font-weight:500;letter-spacing:-.025em;color:var(--text)}
.gt-prose h4{margin-top:1.6em;font-size:18px;font-weight:600;color:var(--text)}
.gt-prose h2:first-child,.gt-prose h3:first-child{margin-top:0}
.gt-prose a{color:var(--soft);border-bottom:1px solid rgba(255,255,255,.3)}
.gt-prose a:hover{color:var(--pl);border-color:var(--pl)}
.gt-prose strong{color:var(--text);font-weight:600}
.gt-prose ul,.gt-prose ol{padding-left:1.4em}
.gt-prose ul{list-style:disc}
.gt-prose ol{list-style:decimal}
.gt-prose li{padding-left:.3em}
.gt-prose li+li{margin-top:.5em}
.gt-prose li::marker{color:var(--pl)}
.gt-prose blockquote{padding:4px 0 4px 26px;border-left:2px solid var(--p);color:var(--soft)}
.gt-prose hr{border:0;border-top:1px solid var(--edge-2);margin:2.4em 0}
.gt-prose code{padding:2px 7px;border-radius:7px;background:rgba(255,255,255,.08);font-family:var(--mono);font-size:.86em;color:var(--sl)}
.gt-prose pre{padding:24px 28px;border-radius:22px;border:1px solid var(--edge);background:rgba(0,0,0,.4);overflow-x:auto;font-family:var(--mono);font-size:14px;line-height:1.7;color:var(--soft)}
.gt-prose pre code{padding:0;background:none;color:inherit;font-size:inherit}
.gt-prose table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.55}
.gt-prose th,.gt-prose td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--edge-2)}
.gt-prose th{font-size:13px;font-weight:500;color:var(--quiet);white-space:nowrap}
.gt-prose .table-wrap,.gt-scroll{overflow-x:auto}
.gt-prose img{border-radius:20px}
.gt-prose--wide{max-width:none}

/* --------------------------------------------------------------------------
   9. Motion
   -------------------------------------------------------------------------- */

@keyframes gt-glow{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(50px,30px) scale(1.1)}}
@keyframes gt-marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes gt-ripple{0%{transform:scale(.2);opacity:.8}100%{transform:scale(1);opacity:0}}
@keyframes gt-dash{to{stroke-dashoffset:-22}}
@keyframes gt-sway{0%,100%{transform:rotateX(60deg) rotateZ(-42deg)}50%{transform:rotateX(60deg) rotateZ(-28deg)}}
@keyframes gt-scan{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:calc(100% - 2px);opacity:0}}
@keyframes gt-flag{0%,38%{background:rgba(255,255,255,.2)}46%,62%{background:#ff7a29}70%,100%{background:rgba(255,255,255,.2)}}
@keyframes gt-dot{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes gt-livep{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes gt-in{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes gt-mer{0%,100%{transform:scaleX(.12)}50%{transform:scaleX(1)}}
@keyframes gt-bar{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
@keyframes gt-fl{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes gt-endp{0%,50%{opacity:1;transform:scaleX(1)}68%,100%{opacity:.15;transform:scaleX(.2)}}
@keyframes gt-draw{0%{stroke-dashoffset:100}55%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:-100}}
@keyframes gt-pulse{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes gt-fill{0%{transform:scaleX(0)}60%,100%{transform:scaleX(1)}}
.gt-glow i{animation:gt-glow 22s ease-in-out infinite}
.gt-glow i+i{animation:gt-glow 26s ease-in-out infinite reverse}
.gt-g1{animation:gt-glow 22s ease-in-out infinite}
.gt-g2x{animation:gt-glow 26s ease-in-out infinite reverse}
.gt-marq{animation:gt-marq 46s linear infinite}
.gt-rip{animation:gt-ripple 4s ease-out infinite}
.gt-rip--2{animation-delay:-2s}
.gt-flow{animation:gt-dash 1.4s linear infinite}
.gt-stack{animation:gt-sway 14s ease-in-out infinite;transform-style:preserve-3d}
.gt-scanl{animation:gt-scan 4s linear infinite}
.gt-flag{animation:gt-flag 4s linear infinite}
.gt-dotp{animation:gt-dot 1.4s ease-in-out infinite}
.gt-livep{animation:gt-livep 2.4s ease-in-out infinite}
.gt-mer{animation:gt-mer 5s ease-in-out infinite}
.gt-bar{transform-origin:50% 100%;animation:gt-bar 3.4s ease-in-out infinite}
.gt-fl{animation:gt-fl 5s ease-in-out infinite}
.gt-endl{transform-origin:0 50%;animation:gt-endp 4.5s ease-in-out infinite}
.gt-draw{animation:gt-draw 7s ease-in-out infinite}
.gt-pulse{animation:gt-pulse 2.6s ease-in-out infinite}
.gt-fill{transform-origin:0 50%;animation:gt-fill 5s ease-in-out infinite}
.gt-in{animation:gt-in .9s cubic-bezier(.16,.84,.24,1) both}
.gt-in--2{animation-delay:.12s}
.gt-in--3{animation-delay:.24s}
.gt-d1{animation-delay:-.4s}.gt-d2{animation-delay:-.8s}.gt-d3{animation-delay:-1.2s}.gt-d4{animation-delay:-1.6s}.gt-d5{animation-delay:-2s}.gt-d6{animation-delay:-2.4s}.gt-d7{animation-delay:-2.8s}
.gt-dp1{animation-delay:.2s}.gt-dp2{animation-delay:.4s}.gt-dp3{animation-delay:.6s}.gt-dp5{animation-delay:1.2s}
/* The range is capped in pixels: on a section a few thousand pixels tall, 55% of its height would keep its first lines faded for most of a screen. */
@supports (animation-timeline:view()){.gt-rev{animation:gt-in linear both;animation-timeline:view();animation-range:entry 0% entry min(55%,260px)}}
@media (prefers-reduced-motion:reduce){.gt *,.gt *::before,.gt *::after{animation:none!important;transition:none!important}.gt-stack{transform:rotateX(60deg) rotateZ(-35deg)}}

/* --------------------------------------------------------------------------
   Glyphs and stacks: the animated pictures. Colours here are fixed orange and
   cyan on purpose: they are drawn, not themed, and read the same on both sites.
   -------------------------------------------------------------------------- */

.gl-scan{position:relative;width:170px;height:120px;border-radius:14px;border:1.5px solid rgba(255,255,255,.3);background:rgba(0,0,0,.4);padding:15px;overflow:hidden;display:flex;flex-direction:column;gap:9px}
.gl-scan span{display:block;height:7px;border-radius:4px;background:rgba(255,255,255,.2)}
.gl-scan .ind{margin-left:16px}
.gl-scan .w40{width:40%}.gl-scan .w52{width:52%}.gl-scan .w60{width:60%}.gl-scan .w70{width:70%}.gl-scan .w78{width:78%}
.gl-scan i{position:absolute;left:0;right:0;height:2px;background:#29d3ee;box-shadow:0 0 14px #29d3ee}
.gl-chat{width:170px;height:120px;display:flex;flex-direction:column;gap:9px}
.gl-chat .a{align-self:flex-start;width:112px;height:32px;border-radius:14px 14px 14px 4px;background:rgba(255,255,255,.13)}
.gl-chat .b{align-self:flex-end;width:92px;height:32px;border-radius:14px 14px 4px 14px;background:rgba(41,211,238,.32)}
.gl-chat span{align-self:flex-start;display:flex;align-items:center;gap:6px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.13)}
.gl-chat b{width:7px;height:7px;border-radius:50%;background:#ff7a29}
.gl-bars{display:flex;align-items:flex-end;gap:8px;width:170px;height:120px;padding:0 4px;border-bottom:1px solid rgba(255,255,255,.3)}
.gl-bars span{width:13px;border-radius:4px 4px 0 0;background:#ff7a29}
.gl-bars span:nth-child(even){background:#29d3ee}
.gl-bars span:nth-child(1){height:45%}.gl-bars span:nth-child(2){height:70%;animation-delay:-.4s}.gl-bars span:nth-child(3){height:55%;animation-delay:-.8s}.gl-bars span:nth-child(4){height:90%;animation-delay:-1.2s}
.gl-bars span:nth-child(5){height:62%;animation-delay:-1.6s}.gl-bars span:nth-child(6){height:100%;animation-delay:-2s}.gl-bars span:nth-child(7){height:74%;animation-delay:-2.4s}.gl-bars span:nth-child(8){height:84%;animation-delay:-2.8s}
.gl-id{position:relative;width:170px;height:120px}
.gl-id .gt-rip{position:absolute;left:10px;top:10px;width:100px;height:100px;border-radius:50%;border:1.5px solid #29d3ee}
.gl-id .gt-rip+.gt-rip{border-color:#ff7a29}
.gl-id .lock{position:absolute;left:34px;top:34px;width:52px;height:52px;border-radius:50%;border:2px solid #ff7a29;background:#050506;display:flex;align-items:center;justify-content:center}
.gl-id .lock svg{width:22px;height:22px;fill:none;stroke:#ffa066;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gl-id .ends{position:absolute;left:122px;top:0;height:120px;width:44px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.gl-id .ends span{height:8px;border-radius:4px;background:#29d3ee}
.gl-id .ends span:nth-child(2){background:#ff7a29;animation-delay:.25s}.gl-id .ends span:nth-child(3){animation-delay:.5s}
.gl-stamp{position:relative;width:170px;height:120px}
.gl-stamp .doc{position:absolute;left:0;top:0;width:118px;height:112px;border-radius:14px;border:1.5px solid rgba(255,255,255,.35);background:rgba(255,255,255,.05);padding:15px;display:flex;flex-direction:column;gap:10px}
.gl-stamp .doc span{display:block;height:7px;border-radius:4px;background:rgba(255,255,255,.2)}
.gl-stamp .doc span:first-child{width:90%;background:rgba(255,255,255,.28)}.gl-stamp .doc span:nth-child(2){width:68%}.gl-stamp .doc span:nth-child(3){width:80%}.gl-stamp .doc span:nth-child(4){width:52%}
.gl-stamp .ok{position:absolute;right:0;bottom:0;width:58px;height:58px;border-radius:50%;border:3px solid #ff7a29;background:#050506;display:flex;align-items:center;justify-content:center}
.gl-stamp .ok svg{width:28px;height:28px;fill:none;stroke:#ff7a29;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.gl-pin{position:relative;width:170px;height:120px}
.gl-pin .gt-rip{position:absolute;left:30px;top:10px;width:100px;height:100px;border-radius:50%;border:1.5px solid #29d3ee}
.gl-pin .gt-rip+.gt-rip{border-color:#ff7a29}
.gl-pin b{position:absolute;left:68px;top:48px;width:24px;height:24px;border-radius:50%;background:#ff7a29;border:4px solid #050506;box-shadow:0 0 0 2px #ff7a29}

/* The 3D tile stack. --z is the step between planes. */
.gt-stackbox{position:relative;perspective:1500px}
.gt-stack{position:absolute;--z:80px}
.gt-stack--s{--z:55px}
.gt-plane{position:absolute;inset:0;border-radius:20px;border:1.5px solid rgba(255,255,255,.45);background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.03))}
.gt-plane.z1{transform:translateZ(var(--z))}
.gt-plane.z2{transform:translateZ(calc(var(--z) * 2))}
.gt-plane.t-o{border-color:rgba(255,122,41,.72);background:linear-gradient(145deg,rgba(255,122,41,.24),rgba(255,122,41,.03))}
.gt-plane.t-c{border-color:rgba(41,211,238,.65);background:linear-gradient(145deg,rgba(41,211,238,.17),rgba(41,211,238,.02))}
.gt-plane.t-q{border-color:rgba(255,255,255,.3);background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.01))}
.gt-plane>span{position:absolute;left:18px;bottom:14px;font-family:var(--mono);font-size:13px;color:#f2eee8}
.gt-plane.t-o>span{color:#ffa066}.gt-plane.t-c>span{color:#8be9f7}.gt-plane.t-q>span{color:#bdb6ab}
.gt-plane .cells{position:absolute;left:34px;top:34px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:200px}
.gt-plane .cells i{height:40px;border-radius:9px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4)}
.gt-plane .cells i:nth-child(1){background:rgba(255,122,41,.4);border-color:rgba(255,122,41,.85)}
.gt-plane .cells i:nth-child(2){background:rgba(41,211,238,.3);border-color:rgba(41,211,238,.8)}
.gt-dn25{animation-delay:-2.5s}
.gt-dp-half{animation-delay:.5s}
.gt-acc{color:var(--p)}
.gt-h3--xl{font-size:64px;line-height:1.04;letter-spacing:-.045em}

/* --------------------------------------------------------------------------
   10. Pages
   -------------------------------------------------------------------------- */

/* Closing call to action */
.gt-cta-sec{padding:0 56px 150px}
.gt-cta{position:relative;overflow:hidden;max-width:var(--wrap);margin:0 auto;border-radius:44px;border:1px solid rgba(255,255,255,.14);background:var(--glass);padding:110px 64px;text-align:center}
.gt-cta__l1,.gt-cta__l2{position:absolute;display:block;width:620px;height:620px;border-radius:50%;filter:blur(160px);pointer-events:none}
.gt-cta__l1{left:8%;top:-70%;background:#ff7a29;opacity:.24}
.gt-cta__l2{right:6%;top:-60%;background:#29d3ee;opacity:.2}
.gt-cta__in{position:relative}
.gt-cta__h{font-size:84px;line-height:1.02;font-weight:500;letter-spacing:-.05em;text-wrap:balance}
.gt-cta__p{margin:28px auto 0;max-width:660px;font-size:22px;line-height:1.6;color:var(--soft)}
.gt-cta__in .gt-btn{margin-top:44px}

/* gplatform.org home */
.home-hero{position:relative;max-width:var(--wrap);margin:0 auto;padding:130px 56px 0;text-align:center}
.home-hero .gt-lead{margin:40px auto 0;max-width:960px;text-wrap:balance}
.home-hero__btns{margin-top:48px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.home-ticker{position:relative;margin-top:110px;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);padding:34px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.home-ticker__track{display:flex;width:max-content;gap:72px;font-size:34px;line-height:1;font-weight:500;letter-spacing:-.03em;color:#cfc8bc}
.home-ticker__item{display:inline-flex;align-items:center;gap:72px;white-space:nowrap}
.home-ticker__item i{position:relative;top:1px;display:inline-block;width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#ff7a29,#29d3ee)}
.home-services{position:relative;max-width:var(--wrap);margin:0 auto;padding:150px 56px 40px}
.home-services::before,.home-services::after{content:"";position:absolute;width:720px;height:720px;border-radius:50%;filter:blur(200px);pointer-events:none}
.home-services::before{right:-260px;top:620px;background:#29d3ee;opacity:.1}
.home-services::after{left:-300px;top:1500px;background:#ff7a29;opacity:.09}
.home-services__head{position:relative;max-width:900px}
.home-services__head .gt-lead{margin-top:28px;max-width:740px}
.home-services__grid{position:relative;margin-top:70px}
.home-services__grid .gt-tile{padding:40px}
.home-feat{padding:64px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:center;min-height:420px;border-color:rgba(255,122,41,.4)}
.home-feat__p{margin:26px 0 0;max-width:600px;font-size:22px;line-height:1.7;color:var(--soft);text-wrap:pretty}
.home-feat .gt-more{margin-top:34px}
.home-feat__art{height:420px}
.home-feat__art .gt-stack{left:90px;top:126px;width:280px;height:280px}
.home-index{position:relative;max-width:var(--wrap);margin:0 auto;padding:80px 56px 90px}
.home-index__in{border-top:1px solid var(--edge-2);padding-top:56px}
.home-index__head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap}
.home-index__head h2{font-size:26px;font-weight:500;letter-spacing:-.02em;color:var(--muted)}
.home-index__head span{font-size:15px;color:var(--faint)}
.home-index__cols{margin-top:34px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px}
.home-index__label{font-size:14px;color:var(--faint);margin-bottom:14px}
.home-index__list{display:flex;flex-direction:column;gap:12px}
.home-index__a{display:block;color:var(--muted);font-size:17px;line-height:1.5}
.home-index__a:hover{color:var(--sl)}
.home-index__where{display:block;margin-top:2px;font-family:var(--mono);font-size:12px;color:var(--faint)}
.home-index__dev{margin-top:40px;font-size:15px;line-height:1.7;color:var(--faint)}
.home-strip{position:relative;max-width:var(--wrap);margin:0 auto;padding:0 56px 120px}
.home-strip__in{display:grid;grid-template-columns:1fr 1fr;gap:56px;border-top:1px solid var(--edge-2);padding-top:44px}
.home-strip__label{font-size:14px;color:var(--faint);margin-bottom:12px}
.home-strip p{font-size:16px;line-height:1.75;color:var(--muted);max-width:560px}
.home-strip__link{display:inline-block;margin-top:14px;font-size:15px;color:var(--body)}
.home-strip__links{margin-top:14px;display:flex;gap:22px;flex-wrap:wrap;font-size:15px;color:var(--body)}

/* --------------------------------------------------------------------------
   11. Responsive
   -------------------------------------------------------------------------- */

@media (max-width:1100px){
  .gt-grid>.gt-s4{grid-column:span 6}
  .gt-cols3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .gt-hbar{padding:16px 16px 0}
  .gt-hdr{gap:12px;padding:8px 8px 8px 20px;width:100%;justify-content:space-between;flex-wrap:nowrap}
  .gt-menu{display:inline-flex}
  .gt-menu-input{display:block;position:absolute;right:8px;top:8px;width:48px;height:48px;opacity:0;margin:0;cursor:pointer;z-index:2}
  .gt-menu-input:focus-visible+.gt-menu{outline:2px solid rgba(var(--sr),.8);outline-offset:3px}
  .gt-panel{display:none;position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:30;flex-direction:column;align-items:stretch;gap:20px;padding:24px;border-radius:30px;border:1px solid rgba(255,255,255,.14);background:rgba(12,12,14,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  .gt-menu-input:checked~.gt-panel{display:flex}
  .gt-nav{flex-direction:column;gap:4px;font-size:20px}
  .gt-nav a{padding:12px 0}
  .gt-nav a[aria-current]::after{left:auto;right:4px;bottom:auto;top:50%;margin:-2.5px 0 0}
  .gt-tools{justify-content:space-between;padding-top:18px;border-top:1px solid var(--edge-2)}
  .gt-art{display:none}

  .gt-wrap{padding:0 20px}
  .gt-top{padding-top:72px}
  .gt-sec{margin-top:88px}.gt-sec--m{margin-top:76px}.gt-sec--s{margin-top:64px}
  .gt-end{padding-bottom:96px}
  .gt-h1,.gt-ph,.gt-ph--l,.gt-ph--m,.gt-ph--s{font-size:54px;line-height:1;letter-spacing:-.05em}
  .gt-ph--xs{font-size:44px}
  .gt-h2,.gt-h2--xl{font-size:40px}
  .gt-h2--l,.gt-h2--m{font-size:34px}
  .gt-h3--xl{font-size:36px}
  .gt-h3--l{font-size:32px}
  .gt-lead{font-size:19px;margin-top:28px}
  .gt-grid>*,.gt-grid>.gt-s4{grid-column:1 / -1}
  .gt-cols2,.gt-cols3,.gt-split{grid-template-columns:1fr;gap:28px}
  .gt-sticky{position:static}
  .gt-tile,.gt-card{padding:28px;border-radius:26px}
  .gt-spec{padding:6px 24px}
  .gt-spec>div{grid-template-columns:1fr;gap:6px;padding:20px 0}
  .gt-btn{min-height:58px;padding:0 28px;font-size:17px}
  .gt-foot__grid{padding:56px 20px 24px;grid-template-columns:1fr 1fr;gap:36px}
  .gt-foot__grid>div:first-child{grid-column:1 / -1}
  .gt-foot__bar{padding:24px 20px 44px}

  .gt-cta-sec{padding:0 20px 96px}
  .gt-cta{padding:64px 24px;border-radius:32px}
  .gt-cta__h{font-size:44px}
  .gt-cta__p{font-size:19px}
  .home-hero{padding:80px 20px 0}
  .home-ticker{margin-top:72px}
  .home-ticker__track{font-size:26px;gap:44px}
  .home-ticker__item{gap:44px}
  .home-services{padding:96px 20px 20px}
  .home-feat{padding:28px;grid-template-columns:1fr;min-height:0}
  .home-feat__p{font-size:19px}
  .home-index{padding:56px 20px 64px}
  .home-index__cols{grid-template-columns:1fr 1fr;gap:32px}
  .home-strip{padding:0 20px 80px}
  .home-strip__in{grid-template-columns:1fr;gap:36px}
}
@media (max-width:560px){
  .gt-foot__grid{grid-template-columns:1fr}
  .home-index__cols{grid-template-columns:1fr}
}

/* Page head and the document layout */
.gt-top{position:relative}
.gt-headin{max-width:1000px}
.gt-headin .gt-ph{margin-top:34px}
.gt-headpills,.gt-headeye{margin-top:34px}
.gt-headpills+.gt-ph,.gt-headeye+.gt-ph{margin-top:26px}
.gt-headart{position:absolute;right:20px;top:100px;width:560px;height:520px}
.gt-headbtns{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap}
.gt-headmeta{margin-top:30px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.gt-headmeta .gt-link{margin-left:10px;font-size:16px;color:var(--soft)}
.gt-doc{display:grid;grid-template-columns:260px minmax(0,1fr);gap:64px;align-items:start}
.gt-doc__main{min-width:0;max-width:860px}
.gt-doc__main--stack{display:flex;flex-direction:column;gap:56px}
.gt-doc__main--wide{max-width:none}
.gt-doc__main--sections{display:flex;flex-direction:column;gap:110px;max-width:none}
.gt-prose--doc{counter-reset:docsec;max-width:none}
.gt-prose--doc h2{counter-increment:docsec;display:flex;align-items:baseline;gap:14px}
.gt-prose--doc h2::before{content:counter(docsec);font-family:var(--mono);font-size:16px;font-weight:400;color:var(--p);letter-spacing:0}
.gt-note{padding:26px 32px;border-radius:26px;border:1px solid rgba(var(--sr),.4);background:var(--glass);font-size:17px;line-height:1.7;color:var(--soft)}
.gt-note a{color:var(--sl);text-decoration:underline}
.gt-sechead .gt-eyebrow{display:block}
.gt-sechead h2{margin-top:18px;font-size:48px;line-height:1.05;font-weight:500;letter-spacing:-.04em;text-wrap:balance}
.gt-sechead p{margin-top:18px;max-width:720px;font-size:19px;line-height:1.7;color:var(--body);text-wrap:pretty}
.gt-sechead + *{margin-top:34px}
.gt-backlink{display:inline-flex;gap:10px;align-items:center;font-size:18px;font-weight:600;color:var(--pl)}
@media (max-width:900px){
  .gt-headin .gt-ph,.gt-headpills,.gt-headeye{margin-top:24px}
  .gt-headart{display:none}
  .gt-doc{grid-template-columns:1fr;gap:36px}
  .gt-doc__main--sections{gap:72px}
  .gt-sechead h2{font-size:36px}
  .gt-toc.gt-sticky{padding:20px 22px;border-radius:24px;border:1px solid var(--edge);background:var(--glass)}
}

/* Head art */
.art-services .gt-stack{left:100px;top:90px;width:280px;height:280px}
.art-security .gt-stack{left:90px;top:70px;width:250px;height:250px}
.art-services,.art-security,.art-apps,.art-about,.art-404,.art-blog{height:100%}
.gt-headart .gt-plane>span{font-size:12px}
.art-apps .gt-stack{left:80px;top:100px;width:390px;height:390px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:22px}
.art-apps i{font-style:normal;border-radius:18px;border:1.5px solid rgba(255,122,41,.75);background:linear-gradient(145deg,rgba(255,122,41,.32),rgba(255,122,41,.05));display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:15px;color:#f2eee8}
.art-apps i.c{border-color:rgba(41,211,238,.75);background:linear-gradient(145deg,rgba(41,211,238,.28),rgba(41,211,238,.04))}
.art-apps i.mid{border-color:rgba(255,255,255,.7);background:linear-gradient(145deg,rgba(255,255,255,.26),rgba(255,255,255,.05));transform:translateZ(70px)}
.art-legal{position:absolute;left:110px;top:90px;width:200px;height:200px}
.art-legal .gt-rip{position:absolute;inset:0;border-radius:50%;border:1.5px solid #29d3ee}
.art-legal .gt-rip+.gt-rip{border-color:#ff7a29}
.art-legal .shield{position:absolute;left:62px;top:62px;width:76px;height:76px;border-radius:24px;border:2px solid #ff7a29;background:#050506;display:flex;align-items:center;justify-content:center}
.art-legal .shield svg{width:38px;height:38px;fill:none;stroke:#ffa066;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.art-about .gt-stack{left:60px;top:70px;width:260px;height:260px}
.art-404 .gt-stack{left:90px;top:90px;width:280px;height:280px}
.gt-plane.round{border-radius:50%}
.gt-plane.dashed{border-style:dashed;border-radius:24px}
.art-about .gt-plane b,.art-404 .gt-plane b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:-.05em}
.art-about .gt-plane b{font-size:76px;color:#8be9f7}
.art-404 .gt-plane b{font-size:92px;letter-spacing:-.06em;color:#ffa066}
.art-blog .gt-stack{left:70px;top:80px;width:240px;height:240px}
.art-blog .gt-plane{border-radius:18px}
.art-blog .gt-plane.t-c{padding:26px;display:flex;flex-direction:column;gap:12px}
.art-blog .gt-plane i{display:block;height:9px;border-radius:5px;background:rgba(255,255,255,.14)}
.art-blog .gt-plane i:nth-child(1){width:80%}.art-blog .gt-plane i:nth-child(2){width:60%}.art-blog .gt-plane i:nth-child(3){width:70%}
@media (max-width:900px){.art-legal{display:none}}

/* Apps and projects */
.gt-filters{margin-top:56px;display:flex;gap:12px;flex-wrap:wrap}
.apps-group{margin-top:84px}
.apps-group__head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.apps-group__head h2{font-size:44px;line-height:1.05;font-weight:500;letter-spacing:-.04em}
.apps-group__head p{max-width:520px;font-size:17px;line-height:1.6;color:var(--muted)}
.app-tile{display:flex;flex-direction:column;gap:18px;min-height:268px;padding:32px;border-radius:30px}
.app-tile__top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.app-tile__mono{width:46px;height:46px;border-radius:15px;border:1px solid rgba(255,255,255,.22);background:linear-gradient(135deg,rgba(255,122,41,.4),rgba(41,211,238,.28));display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;line-height:1;letter-spacing:-.02em}
.app-tile__mono.is-c{background:linear-gradient(135deg,rgba(41,211,238,.38),rgba(255,122,41,.28))}
.app-tile__name{font-size:28px;line-height:1.1;font-weight:500;letter-spacing:-.035em}
.app-tile__tag{margin-top:12px;font-size:16px;line-height:1.6;color:var(--body);text-wrap:pretty}
.app-tile__foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;line-height:1;color:var(--quiet)}
.app-tile__foot span:last-child{font-family:var(--sans);font-size:18px;color:var(--pl)}
.gt-apps:has(#f-host:checked) .gt-app:not(.k-host),.gt-apps:has(#f-dev:checked) .gt-app:not(.k-dev),.gt-apps:has(#f-os:checked) .gt-app:not(.k-os){display:none}
.gt-apps:has(#f-host:checked) .gt-grp:not(:has(.k-host)),.gt-apps:has(#f-dev:checked) .gt-grp:not(:has(.k-dev)),.gt-apps:has(#f-os:checked) .gt-grp:not(:has(.k-os)){display:none}
.apps-ask{margin:96px 0 150px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;padding:44px 52px;border-radius:36px;border-color:rgba(var(--pr),.35);background:linear-gradient(150deg,rgba(var(--pr),.1),rgba(var(--sr),.04) 70%,rgba(255,255,255,.02))}
.apps-ask>div{max-width:640px}
.apps-ask__t{font-size:36px;line-height:1.1;font-weight:500;letter-spacing:-.035em}
.apps-ask p{margin-top:14px;font-size:18px;line-height:1.6;color:var(--body)}
.gt-mt44{margin-top:44px}
.gt-tags--8{gap:8px}
.card-wrap{position:relative;display:flex}
.card-wrap>.pcard{flex:1}
.pcard{padding:36px 38px;border-radius:30px}
.pcard__top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pcard__name{font-size:28px;line-height:1.1;font-weight:500;letter-spacing:-.035em}
.pcard__name small{font-size:.6em;font-weight:400;color:var(--quiet)}
.pcard__foot{margin-top:auto;padding-top:8px;display:flex;justify-content:space-between;align-items:center;font-size:15px;color:var(--quiet)}
.pcard__foot span:last-child{font-size:20px;color:var(--pl)}
.gt-richlead{margin-top:18px;font-size:20px;line-height:1.7;color:var(--body)}
.gt-richlead>*+*{margin-top:1em}
.gt-bandcard{padding:44px 52px;border-radius:36px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.gt-bandcard>div{max-width:620px}
.gt-bandcard .gt-text{margin-top:14px;color:var(--muted)}
@media (max-width:900px){
  .gt-filters{margin-top:36px}
  .apps-group{margin-top:56px}
  .apps-group__head h2{font-size:34px}
  .apps-ask{padding:28px;margin:64px 0 96px}
  .apps-ask__t{font-size:28px}
  .gt-bandcard{padding:28px}
}

/* One project */
.gt-headsub{margin-top:14px;font-size:22px;line-height:1.4;color:var(--muted)}
.gt-lead--tag{max-width:700px;font-size:30px;line-height:1.4;font-weight:400;letter-spacing:-.02em;color:var(--strong);text-wrap:balance}
.gt-top:has(.gt-headart) .gt-headin{max-width:760px}
.proj{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:56px;align-items:start}
.proj__main{min-width:0;max-width:860px;display:flex;flex-direction:column;gap:36px}
.proj__summary{font-size:24px;line-height:1.6;color:var(--soft);text-wrap:pretty}
.proj__aside{display:flex;flex-direction:column;gap:24px}
.proj__facts>div{padding:18px 0;border-top:1px solid var(--edge-2)}
.proj__facts{margin-top:14px}
.proj__facts dt{font-size:14px;color:var(--quiet)}
.proj__facts dd{margin-top:6px;font-size:17px;line-height:1.5;color:var(--strong)}
.proj__repo{margin-top:12px}
.proj__repo>div{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 0}
.proj__repo>div+div{border-top:1px solid rgba(255,255,255,.08)}
.proj__repo dt{font-size:15px;color:var(--muted)}
.proj__repo dd{font-size:18px;font-weight:500}
.proj__note{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;line-height:1.6;color:var(--quiet)}
.proj__note a{color:var(--sl)}
.proj__tags{margin-top:16px}
.proj__licence{margin-top:12px}
.proj__companion .gt-prose{margin-top:10px;font-size:17px}
.proj__companion p{margin-top:14px}
.proj__doch{margin-top:14px}
.proj__docgroup{padding:34px 36px}
.proj__docgroup h3{font-size:24px;font-weight:500;letter-spacing:-.03em;line-height:1.2}
.proj__docgroup p{margin:10px 0 22px;font-size:16px;line-height:1.6;color:var(--muted)}
.gt-pager{display:block;padding:36px 40px}
.gt-pager--next{text-align:right}
.gt-pager__dir{font-size:14px;color:var(--quiet)}
.gt-pager__name{margin-top:12px;font-size:34px;line-height:1.1;font-weight:500;letter-spacing:-.035em}
.gt-pager p{margin-top:10px;font-size:16px;line-height:1.6;color:var(--muted)}
@media (max-width:900px){
  .proj{grid-template-columns:1fr;gap:36px}
  .gt-lead--tag{font-size:22px}
  .gt-pager{padding:28px}
  .gt-pager--next{text-align:left}
  .proj__summary{font-size:20px}
}

/* Versions list under a document */
.gt-versions{margin-top:8px}
.gt-versions .gt-kicker{margin-bottom:6px}
.gt-versions__row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--edge-2);flex-wrap:wrap;font-size:14px;color:var(--quiet)}
.gt-versions__v{font-family:var(--mono);font-size:15px;color:var(--soft)}

/* Services */
.gt-doc--rail{grid-template-columns:260px minmax(0,1fr);gap:56px}
.gt-toc__small{font-size:14px;margin-bottom:10px}
.gt-toc__link{font-size:15px;color:var(--body)}
.svc-list{display:flex;flex-direction:column;gap:24px;min-width:0}
.svc{border-radius:36px;padding:52px 56px;display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:40px;align-items:center}
.svc .gt-h3{margin-top:18px}
.svc__p{margin-top:20px;max-width:640px;font-size:19px;line-height:1.7;color:var(--body);text-wrap:pretty}
.svc__chips{margin-top:26px}
.svc__art{display:flex;justify-content:center}
.svc__stack{width:230px;height:230px;perspective:1100px}
.svc__stack .gt-stack{left:30px;top:50px;width:170px;height:170px}
.svc__stack .gt-plane{border-radius:16px}
.svc__stack .gt-plane>span{left:12px;bottom:10px;font-size:11px}
.svc-note{padding:44px 48px;border-radius:32px}
.svc-note p{margin-top:16px;font-size:18px;line-height:1.7;color:var(--body)}
.gt-cols4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
@media (max-width:1100px){.gt-cols4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .gt-cols4{grid-template-columns:1fr}
  .svc{padding:28px;grid-template-columns:1fr;gap:24px}
  .svc .gt-h3--l{font-size:32px}
  .svc__art{justify-content:flex-start}
  .svc-note{padding:28px}
}

/* Security */
.gt-headbtns--m{margin-top:36px}
.gt-mt56{margin-top:56px}
.gt-monolink{font-family:var(--mono);font-size:15px;color:var(--sl)}
.gt-code{padding:2px 7px;border-radius:7px;background:rgba(255,255,255,.08);font-family:var(--mono);font-size:.86em;color:var(--sl)}
.w30{width:30%}.w60{width:60%}.w100{width:100%}
.gt-dl0{animation-delay:0s}.gt-dl1{animation-delay:.4s}.gt-dl2{animation-delay:.8s}
.sec-big{padding:44px 44px 40px;border-radius:34px;display:flex;flex-direction:column;gap:6px}
.sec-big__n{display:flex;align-items:baseline;gap:14px}
.sec-big__n span{font-size:148px;line-height:1;font-weight:500;letter-spacing:-.06em}
.sec-big__n small{font-size:24px;color:var(--soft)}
.sec-big--o .sec-big__n span{color:#ff7a29}.sec-big--c .sec-big__n span{color:#29d3ee}.sec-big--w .sec-big__n span{color:#f2eee8}
.sec-big p{margin-top:14px;font-size:18px;line-height:1.65;color:var(--body);text-wrap:pretty}
.sec-big__bar{margin-top:26px;height:6px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}
.sec-big__bar i{display:block;height:100%;border-radius:3px;background:#ff7a29}
.sec-big--c .sec-big__bar i{background:#29d3ee}.sec-big--w .sec-big__bar i{background:#f2eee8}
.sec-doc__more{margin-top:auto;padding-top:8px}
.sec-found{padding:52px 56px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center}
.sec-found p{margin-top:18px;max-width:660px;font-size:19px;line-height:1.7;color:var(--soft)}
.sec-aside{padding:8px 4px;font-size:16px;line-height:1.75;color:var(--muted);max-width:560px}
.sec-policy{padding:44px 48px}
.sc-statement{margin-top:20px}
.sec-row{padding:28px 30px}
.sec-row__k{font-size:15px;font-weight:600;color:var(--pl)}
.sec-row p{margin-top:10px;font-size:16px;line-height:1.65;color:#cfc8bc;text-wrap:pretty}
.sec-cov-note{margin-top:-12px}
.sec-cov{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.sec-cov__group{padding:32px 34px}
.sec-cov__group>p{margin:10px 0 14px;font-size:15px;line-height:1.6;color:var(--muted)}
.sec-scoperow{padding:18px 0;border-top:1px solid var(--edge-2)}
.sec-scoperow__name{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:19px;font-weight:500}
.sec-scoperow__detail{margin-top:8px;font-size:15px;line-height:1.6;color:var(--muted)}
.sec-scoperow__detail a{display:block;margin-top:6px}
.sec-chan{padding:32px 34px;display:flex;flex-direction:column;gap:12px}
.sec-chan__k{font-family:var(--mono);font-size:13px;line-height:1.4;color:var(--sl)}
.sec-chan__v{font-size:22px;font-weight:500;letter-spacing:-.03em;overflow-wrap:anywhere}
.sec-chan p{font-size:16px;line-height:1.65;color:var(--body)}
.sec-postiz{padding:34px 38px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.sec-postiz>div{max-width:560px}
.sec-postiz p{margin-top:10px;font-size:16px;line-height:1.65;color:var(--muted)}
.sec-doc{margin-bottom:0}
dl.gt-spec>div{display:grid}
.sec-prog{padding:44px}
.sec-prog__btn{align-self:flex-start;margin-top:auto}
.sec-evidence{margin-top:40px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:15px;line-height:1.6;color:var(--muted)}
.rec-h{margin-top:14px}
.rec-how{grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:64px}
.rec-how .gt-card{padding:40px 44px}
.rec-status{padding:34px 44px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;border-color:rgba(123,230,166,.35)}
.rec-status__line{display:flex;align-items:center;gap:18px;font-size:22px;letter-spacing:-.02em;line-height:1.4}
.rec-status__line .gt-live{width:12px;height:12px;flex:none;box-shadow:0 0 18px #7be6a6}
.rec-status__line b{font-weight:600}
.rec-status__note{font-size:16px;color:var(--muted)}
.rec-note{margin-top:16px}
.rec-tile{padding:34px 36px;border-radius:30px;display:flex;flex-direction:column;gap:6px}
.rec-tile__l{font-size:17px;color:var(--soft)}
.rec-tile__k{font-family:var(--mono);font-size:12px;color:var(--faint);overflow-wrap:anywhere}
.rec-tile__v{margin-top:14px;font-size:80px;line-height:1;font-weight:500;letter-spacing:-.05em;overflow-wrap:anywhere}
.rec-tile__v--sm{font-size:40px;line-height:1.1;letter-spacing:-.03em}
.rec-tile__src{margin-top:auto;padding-top:16px;border-top:1px solid var(--edge-2);font-size:14px;line-height:1.6;color:var(--quiet)}
.rec-tile__src{margin-top:18px}
.rec-tile__src a{font-family:var(--mono);font-size:13px;color:var(--sl)}
.rec-repos{padding:6px 40px}
.rec-repo{display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,1fr);gap:32px;padding:24px 0;align-items:baseline}
.rec-repo+.rec-repo{border-top:1px solid var(--edge-2)}
.rec-repo__n{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:20px;font-weight:500;letter-spacing:-.02em}
.rec-repo__n a+a{font-size:14px;font-weight:400;color:var(--quiet)}
.rec-repo__v{display:flex;align-items:baseline;gap:22px;flex-wrap:wrap;font-size:15px;color:var(--muted)}
.rec-repo__c{font-size:22px;font-weight:500;letter-spacing:-.02em;color:var(--text)}
.rec-end{padding:56px 60px;display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
.rec-end>div:first-child{max-width:640px}
.rec-end p{margin-top:18px;font-size:18px;line-height:1.7;color:var(--body)}
.rec-end--col{display:block}
.rec-end--col p{max-width:760px;font-size:19px;color:var(--soft)}
.rec-end--col .gt-flex{margin-top:36px}
.entries{padding:6px 40px}
.entries__row{display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:32px;padding:24px 0;align-items:start}
.entries__row+.entries__row{border-top:1px solid var(--edge-2)}
.entries__t{font-size:19px;font-weight:500;letter-spacing:-.02em}
.entries__d{font-size:17px;line-height:1.65;color:var(--body);text-wrap:pretty}
.sc-list{padding:6px 40px}
.sc-row{display:grid;grid-template-columns:minmax(0,.46fr) minmax(0,1fr);gap:32px;padding:26px 0;align-items:baseline}
.sc-row+.sc-row{border-top:1px solid var(--edge-2)}
.sc-row__name{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:21px;font-weight:500;letter-spacing:-.025em}
.sc-row__detail{font-size:17px;line-height:1.65;color:var(--body);text-wrap:pretty}
.sc-pending{display:flex;flex-direction:column;gap:24px}
.sc-pend{padding:40px 44px}
.sc-pend__head{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.sc-pend__claim{margin:26px 0 18px}
.sc-pend__row{display:grid;grid-template-columns:minmax(0,.3fr) minmax(0,1fr);gap:28px;padding:22px 0;border-top:1px solid var(--edge-2);align-items:start}
.sc-pend__row>div{font-size:16px;font-weight:500;color:var(--strong)}
.sc-pend__row p{font-size:16px;line-height:1.65;color:var(--body)}
@media (max-width:900px){
  .sec-big{padding:28px}.sec-big__n span{font-size:104px}
  .sec-found{grid-template-columns:1fr;padding:28px;gap:24px}
  .sec-policy{padding:28px}
  .sec-cov{grid-template-columns:1fr}
  .rec-how{grid-template-columns:1fr;gap:20px}.rec-how .gt-card{padding:28px}
  .rec-status{padding:24px}.rec-status__line{font-size:18px}
  .rec-tile__v{font-size:64px}
  .rec-repos,.entries,.sc-list{padding:4px 24px}
  .rec-repo,.entries__row,.sc-row,.sc-pend__row{grid-template-columns:1fr;gap:8px}
  .rec-end{padding:28px}
  .sc-pend{padding:28px}
  .gt-doc--rail{grid-template-columns:1fr;gap:28px}
  .sec-prog{padding:28px}
}

/* Forms: the contact form, the EU representative forms and the report form */
.contact-form{display:flex;flex-direction:column;gap:24px;padding:48px;border-radius:36px}
.contact-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.contact-form__field{display:flex;flex-direction:column;gap:10px;min-width:0;font-size:15px;color:var(--body);border:0;padding:0;margin:0}
.contact-form__field legend{padding:0;margin-bottom:12px;font-size:15px;color:var(--body)}
.contact-form__field label{font-size:15px;color:var(--body)}
.contact-form__optional{margin-left:6px;font-size:13px;color:var(--faint)}
.contact-form input[type=text],.contact-form input[type=email],.contact-form input[type=url],.contact-form input[type=password],.contact-form select,.contact-form textarea{width:100%;min-height:60px;padding:0 20px;border-radius:18px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:#f2eee8;font-size:17px;line-height:1.4}
.contact-form select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:linear-gradient(45deg,transparent 50%,#a39c91 50%),linear-gradient(135deg,#a39c91 50%,transparent 50%);background-position:calc(100% - 22px) 27px,calc(100% - 16px) 27px;background-size:6px 6px;background-repeat:no-repeat}
.contact-form select option{background:#0b0b0d;color:#f2eee8}
.contact-form textarea{min-height:200px;padding:18px 20px;line-height:1.6;resize:vertical}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#6d675e}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid rgba(var(--sr),.7);outline-offset:2px}
.contact-form [aria-invalid=true]{border-color:rgba(255,122,41,.7)}
.contact-form__foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.contact-form__note{max-width:340px;font-size:14px;line-height:1.6;color:var(--quiet)}
.contact-form__redirect{font-size:14px;color:var(--quiet)}
.contact-form__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{font-size:13px;line-height:1.5;color:var(--pl)}
.form-error--summary{padding:16px 20px;border-radius:18px;border:1px solid rgba(255,122,41,.5);background:rgba(255,122,41,.1);font-size:16px}
.form-error--summary ul{margin-top:8px;padding-left:1.2em;list-style:disc}
.form-error--summary a{text-decoration:underline}
.contact-form .gt-flt:checked+.gt-fl-l{color:#f2eee8}

/* Contact */
.ct-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:24px}
.ct-method{padding:36px;border-radius:32px;display:flex;flex-direction:column;gap:18px}
.ct-method--primary{border-color:rgba(var(--pr),.55);background:linear-gradient(150deg,rgba(var(--pr),.14),rgba(255,255,255,.03))}
.ct-method__icon{width:60px;height:60px;border-radius:20px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05);display:inline-flex;align-items:center;justify-content:center;color:var(--sl)}
.ct-method--primary .ct-method__icon{color:var(--pl)}
.ct-method__icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ct-method__label{font-size:15px;color:var(--body)}
.ct-method__value{font-size:22px;font-weight:500;letter-spacing:-.025em;overflow-wrap:anywhere;line-height:1.3}
.ct-method p{font-size:16px;line-height:1.6;color:var(--muted)}
.ct-secondary{margin-top:28px;font-size:16px;color:var(--body)}
.ct-details{margin-top:28px;padding:40px 44px;max-width:900px}
.ct-split{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px}
.ct-h{margin-top:14px;font-size:64px}
.ct-split .gt-lead{max-width:460px}
.ct-vuln{margin-top:44px;padding:30px 32px}
.ct-vuln p{margin:10px 0 18px;font-size:16px;line-height:1.65;color:var(--body)}
.ct-vuln .gt-more{color:var(--sl)}
.ct-faq{max-width:900px}
.ct-faq .ct-h{font-size:60px}
.sent{max-width:1100px}
.sent__grid{margin-top:44px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:center}
.sent__eye{color:var(--ok)}
.sent .gt-ph{margin-top:20px}
.sent__card{margin-top:56px;padding:36px 44px;max-width:820px}
.sent__card p{font-size:18px;line-height:1.7;color:var(--soft)}
.sent__direct{margin-top:18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:16px;font-weight:600;color:var(--pl)}
.sent .gt-backlink{margin-top:40px}

/* Writing */
.blog-topics{margin-top:48px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.blog-topics a.gt-pill:hover{border-color:rgba(255,255,255,.4)}
.blog-topics__all{margin-left:12px;font-size:16px;color:var(--soft)}
.blog-lead{padding:64px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:40px;align-items:center}
.blog-lead__t{margin-top:26px;text-wrap:balance}
.blog-lead__t a:hover{color:var(--pl)}
.blog-lead__x{margin-top:24px;max-width:580px;font-size:20px;line-height:1.7;color:var(--soft);text-wrap:pretty}
.blog-lead__tags{margin-top:28px}
.blog-lead__go{margin-top:34px}
.blog-lead__art{position:relative;height:360px;perspective:1300px}
.blog-lead__media{display:block;border-radius:28px;overflow:hidden;border:1px solid var(--edge)}
.blog-lead__media img{display:block;width:100%;height:auto}
.blog-year{margin-top:96px}
.blog-year h2{margin-bottom:28px;font-size:44px;line-height:1.05;font-weight:500;letter-spacing:-.04em}
.blog-year__list{display:flex;flex-direction:column;gap:14px}
.prow{display:grid;grid-template-columns:110px minmax(0,1fr) auto 70px;gap:28px;align-items:center;padding:28px 36px;border-radius:28px;border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.035)}
.prow--thumb{grid-template-columns:110px minmax(0,1fr) auto 70px 96px}
.prow__date{font-family:var(--mono);font-size:14px;line-height:1.5;color:var(--quiet)}
.prow__date time{display:block}
.prow__pin{display:inline-block;margin-top:4px;font-size:12px;color:var(--pl)}
.prow__title{font-size:24px;line-height:1.25;font-weight:500;letter-spacing:-.025em;text-wrap:balance}
.prow__title small{display:block;margin-top:8px;font-size:15px;font-weight:400;letter-spacing:0;line-height:1.55;color:var(--muted)}
.prow__tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.prow__min{font-size:14px;color:var(--quiet);text-align:right}
.prow__thumb img{display:block;width:96px;height:64px;object-fit:cover;border-radius:12px}
.blog-feed{margin-top:56px;font-size:16px;color:var(--muted)}
@media (max-width:900px){
  .contact-form{padding:28px;border-radius:26px}
  .contact-form__row{grid-template-columns:1fr}
  .ct-split{grid-template-columns:1fr;gap:36px}
  .ct-h,.ct-faq .ct-h{font-size:40px}
  .ct-method{padding:28px}
  .ct-details{padding:28px}
  .sent__grid{grid-template-columns:1fr}
  .sent__art{display:none}
  .sent__card{padding:28px}
  .blog-topics{margin-top:32px}
  .blog-lead{padding:28px;grid-template-columns:1fr;gap:28px}
  .blog-lead__x{font-size:18px}
  .blog-year{margin-top:64px}
  .prow,.prow--thumb{grid-template-columns:1fr;gap:10px;padding:24px}
  .prow__tags{justify-content:flex-start}
  .prow__min{text-align:left}
  .prow__title{font-size:21px}
}

/* One post, topics, the gate */
.post-tags{margin-top:30px}
.post-excerpt{max-width:760px}
.post-layout{display:grid;grid-template-columns:260px minmax(0,740px);gap:80px;justify-content:center;align-items:start}
.post-layout--solo{grid-template-columns:minmax(0,740px)}
.post-main{min-width:0}
.post-note{margin-bottom:32px}
.post-hero{border-radius:40px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:var(--glass)}
.post-hero img{display:block;width:100%;height:auto}
.post-hero figcaption{padding:14px 28px;font-size:14px;color:var(--quiet)}
.gt-prose--post{max-width:none;font-size:19px;line-height:1.8}
.gt-prose--post h2{font-size:40px;line-height:1.1;letter-spacing:-.035em;margin-top:2.1em}
.gt-prose--post blockquote{padding:34px 40px;border:1px solid rgba(var(--pr),.4);border-radius:30px;background:linear-gradient(150deg,rgba(var(--pr),.1),rgba(255,255,255,.02));font-size:26px;line-height:1.4;font-weight:500;letter-spacing:-.025em;color:var(--text);text-wrap:balance}
.gt-pager__name--s{font-size:26px;line-height:1.2;letter-spacing:-.03em;text-wrap:balance}
.post-more__head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:28px;flex-wrap:wrap}
.post-more__head h2{font-size:40px;line-height:1.05;font-weight:500;letter-spacing:-.04em}
.post-more__head a{font-size:16px;color:var(--soft)}
.preview-bar{position:relative;z-index:15;display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:center;margin:18px 24px 0;padding:12px 20px;border-radius:18px;border:1px solid rgba(255,122,41,.5);background:rgba(255,122,41,.12);font-size:15px;color:var(--pl)}
.topic-card{display:flex;flex-direction:column;gap:14px;min-height:230px;padding:40px}
.topic-card h2{font-size:38px;line-height:1.05;font-weight:500;letter-spacing:-.04em}
.topic-card p{font-size:17px;line-height:1.65;color:var(--body);text-wrap:pretty}
.topic-card__foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:15px;color:var(--quiet)}
.topic-card__foot span:last-child{font-size:20px;color:var(--pl)}
.topic-tags{margin-top:36px;gap:12px}
.topic-tag{min-height:44px;padding:0 20px;font-size:15px}
.topic-tag span{margin-left:12px;color:var(--faint)}
.topic-links{margin-top:50px;display:flex;gap:26px;flex-wrap:wrap;font-size:17px;font-weight:600}
.gate-wrap{position:relative;max-width:900px}
.pw-gate{padding:44px;display:flex;flex-direction:column;gap:22px;max-width:720px}
.pw-gate__error{padding:16px 20px;border-radius:18px;border:1px solid rgba(255,122,41,.5);background:rgba(255,122,41,.1);font-size:16px;color:var(--pl)}
.pw-gate__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px}
.pw-gate__note{font-size:14px;line-height:1.6;color:var(--quiet)}
.gate-lock{position:absolute;right:-180px;top:20px;opacity:.9}
@media (max-width:1300px){.gate-lock{display:none}}
@media (max-width:900px){
  .post-layout,.post-layout--solo{grid-template-columns:minmax(0,1fr);gap:36px}
  .gt-prose--post{font-size:18px}
  .gt-prose--post h2{font-size:32px}
  .gt-prose--post blockquote{padding:24px;font-size:21px}
  .topic-card{padding:28px}
  .pw-gate{padding:28px}
  .pw-gate__row{grid-template-columns:1fr}
}

/* Legal documents, the archive and archived versions */
.gt-aside-split{grid-template-columns:minmax(0,1fr) 380px;gap:48px}
.gt-aside{padding:34px 36px}
.gt-aside__t{font-size:15px;font-weight:600;color:var(--pl);margin-bottom:10px}
.gt-toc__links .gt-linkrow{padding:10px 0;font-size:15px}
.gt-toc__links .gt-linkrow:first-child{border-top:0}
.gt-address{display:flex;flex-direction:column;gap:4px;font-style:normal;line-height:1.55}
.arch-note{padding:30px 38px;max-width:1000px}
.arch-note p{font-size:18px;line-height:1.7;color:var(--soft)}
.arch-grid{margin-top:50px}
.arch-doc{padding:36px 40px}
.arch-doc h2{margin-bottom:20px;font-size:28px;line-height:1.1;font-weight:500;letter-spacing:-.03em}
.arch-doc__row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 0;border-top:1px solid var(--edge-2);flex-wrap:wrap;font-size:14px;color:var(--quiet)}
.arch-doc__row span{display:flex;align-items:center;gap:12px}
.arch-doc__slug{font-family:var(--mono);font-size:15px;color:var(--soft)}
.ver-banner{max-width:1100px}
.ver-print{padding:34px 38px;display:flex;flex-direction:column;gap:20px}
.ver-print__k{font-size:14px}
.ver-print__v{margin-top:8px;font-family:var(--mono);font-size:16px;color:var(--text)}
.ver-print__v--hash{font-size:14px;line-height:1.7;color:var(--soft);word-break:break-all}
@media (max-width:900px){
  .gt-aside-split{grid-template-columns:1fr;gap:28px}
  .arch-doc{padding:28px}
  .ver-print{padding:26px}
}

/* Legal and trust, the gplatform.org hub */
.hub-go{margin-top:auto;padding-top:10px}
.hub-rep{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.hub-rep>span:first-child{font-size:15px;color:var(--quiet)}
.hub-foot{margin-top:auto;display:flex;gap:22px;align-items:center;flex-wrap:wrap;padding-top:10px}
.hub-mail{font-family:var(--mono);font-size:14px;color:var(--sl)}
.hub-list{margin-top:6px}
.hub-archive{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:40px;align-items:center}
@media (max-width:900px){
  .hub-archive{grid-template-columns:1fr;gap:28px}
  .hub-archive .gt-glyph{display:none}
}

/* Sitemap */
.sm-xml{margin-top:22px;font-size:17px;color:var(--muted)}
.sm-split{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px}
.sm-card{padding:14px 44px;border-radius:32px}
.sm-card--s{padding:14px 40px}
.sm-card__k{padding:24px 0 6px;font-size:15px;color:var(--quiet)}
.sm-row{display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:32px;padding:22px 0;align-items:baseline}
.sm-row+.sm-row,.sm-proj+.sm-proj,.sm-other+.sm-other{border-top:1px solid var(--edge-2)}
.sm-row__t{font-size:20px;font-weight:500;letter-spacing:-.02em}
.sm-row__path{margin-top:6px;font-family:var(--mono);font-size:13px;color:var(--faint);overflow-wrap:anywhere}
.sm-row__d{font-size:16px;line-height:1.65;color:var(--muted);text-wrap:pretty}
.sm-side{display:flex;flex-direction:column;gap:24px}
.sm-proj{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0}
.sm-proj__t{font-size:19px;font-weight:500;letter-spacing:-.02em}
.sm-proj .sm-row__path{margin-top:5px}
.sm-other{padding:18px 0}
.sm-other a{font-size:19px;font-weight:500}
.sm-other p{margin-top:5px;font-size:15px;color:var(--muted)}
@media (max-width:900px){
  .sm-split{grid-template-columns:1fr;gap:24px}
  .sm-card,.sm-card--s{padding:10px 24px}
  .sm-row{grid-template-columns:1fr;gap:8px}
}

/* The error page */
.err{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.err__code{font-family:var(--mono);font-size:15px;color:var(--pl)}
.err .gt-ph{margin-top:22px}
.err .gt-lead{margin-top:26px;max-width:520px;font-size:22px}
.err__btns{margin-top:44px}
.err__try{margin-top:44px}
.err__try>span{margin-right:6px;font-size:15px;color:var(--quiet)}
.err__art{position:relative;height:460px}
@media (max-width:900px){
  .err{grid-template-columns:1fr;gap:28px}
  .err .gt-lead{font-size:19px}
}

/* EU Representative and incident notices */
.eu-split{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.eu-h{margin-top:14px}
.eu-rep{padding:34px 38px}
.eu-rep__row{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.eu-rep__who{margin-top:8px;font-size:16px;color:var(--muted)}
.eu-note{margin-top:28px;max-width:460px}
.eu-contact{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px;align-items:start;padding:40px 44px}
.eu-contact__h{margin-top:10px}
.eu-contact__links{margin-top:20px;display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.eu-law{margin-top:36px;font-size:16px}
.inc-list{display:flex;flex-direction:column;gap:24px}
.inc{padding:40px 44px}
.inc__t{margin-top:14px}
.inc .gt-prose{margin-top:22px}
.inc-ask{margin-top:40px;padding:30px 36px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.inc-ask p{margin-top:8px;font-size:16px;line-height:1.65;color:var(--body)}
@media (max-width:900px){
  .eu-split,.eu-contact{grid-template-columns:1fr;gap:28px}
  .eu-rep,.eu-contact,.inc{padding:28px}
  .inc-ask{padding:26px}
}

/* ennogelhaus.de: home, work, about */
.eg-hero{grid-template-columns:minmax(0,1.3fr) 440px;gap:56px;align-items:center}
.eg-hero .gt-ph{margin-top:0}
.eg-hero .gt-lead{max-width:760px;font-size:25px}
.eg-hero__btns{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap}
.eg-card{padding:40px;border-radius:38px}
.eg-id{display:flex;align-items:center;gap:22px}
.eg-avatar{position:relative;width:104px;height:104px;flex:none;border-radius:50%;padding:3px;box-sizing:border-box;background:linear-gradient(135deg,var(--p),var(--s))}
.eg-avatar>img,.eg-avatar>span{display:flex;width:100%;height:100%;border-radius:50%;background:#0b0b0d;align-items:center;justify-content:center;font-size:34px;font-weight:600;letter-spacing:-.03em;object-fit:cover}
.eg-id__name{font-size:30px;line-height:1.1;font-weight:500;letter-spacing:-.035em}
.eg-id__meta{margin-top:8px;font-size:16px;color:var(--muted)}
.eg-now{margin-top:30px}
.eg-now__k{margin-bottom:6px;font-size:15px;font-weight:600;color:var(--pl)}
.eg-now__row{padding:18px 0;border-top:1px solid var(--edge-2)}
.eg-now__org{font-size:14px;color:var(--quiet)}
.eg-now__role{margin-top:6px;font-size:18px;line-height:1.45;color:var(--strong)}
.eg-job{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:64px}
.eg-job__body{margin-top:18px}
.eg-job__more{margin-top:34px}
.eg-areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.eg-area{display:flex;align-items:center;gap:18px;padding:26px 30px;border-radius:26px}
.eg-area i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--p);box-shadow:0 0 18px var(--p)}
.eg-area.gt-c i{background:var(--s);box-shadow:0 0 18px var(--s)}
.eg-area span{font-size:20px;line-height:1.25;font-weight:500;letter-spacing:-.02em}
.eg-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.eg-h{margin-top:14px}
.eg-note{max-width:640px;margin-bottom:40px;color:var(--muted)}
.eg-skills{padding:56px 60px;border-radius:40px;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:48px;align-items:start}
.eg-skills .eg-note{margin-bottom:0}
.eg-skills__groups{display:flex;flex-direction:column;gap:26px}
.eg-skills__name{margin-bottom:12px;font-size:15px;color:var(--quiet)}
.eg-skills .gt-tag{min-height:40px;padding:0 20px;font-size:15px}
.card-wrap>.app-tile{flex:1}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:30px 36px;padding:40px 48px;border-radius:32px;border:1px solid var(--edge);background:var(--glass)}
.stat__value{font-size:52px;line-height:1;font-weight:500;letter-spacing:-.045em;color:var(--text)}
.stat__label{margin-top:12px;font-size:15px;line-height:1.5;color:var(--muted)}
.stats__foot{grid-column:1 / -1;margin:0;padding-top:24px;border-top:1px solid var(--edge-2);font-size:14px;line-height:1.7;color:var(--quiet)}
.stats__foot a{margin-left:6px;color:var(--soft);border-bottom:1px solid rgba(255,255,255,.3)}
.stats__dot{display:inline-block;width:8px;height:8px;margin-right:10px;vertical-align:middle;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok)}
.wk-list{display:flex;flex-direction:column;gap:24px}
.wk-role{padding:56px 60px;border-radius:38px}
.wk-role__meta{font-size:16px;color:var(--muted)}
.wk-role__t{margin-top:18px}
.wk-role__org{margin-top:12px;font-size:22px;color:var(--pl)}
.wk-role__sum{margin-top:24px;max-width:760px;font-size:21px;line-height:1.7;color:var(--soft);text-wrap:pretty}
.wk-role__k{margin-top:40px;font-size:15px;font-weight:600;color:var(--pl)}
.wk-areas{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.wk-area{padding:20px 0;border-top:1px solid var(--edge-2)}
.wk-area__n{font-size:19px;font-weight:500;letter-spacing:-.02em}
.wk-area p{margin-top:8px;font-size:16px;line-height:1.65;color:var(--muted)}
.wk-role__body{margin-top:18px}
.eg-about{grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:64px}
.eg-about__card{padding:44px 48px;max-width:900px}
.eg-group{padding:36px 40px;border-radius:32px;display:flex;flex-direction:column;gap:22px}
.eg-group__head{display:flex;align-items:center;gap:14px;font-size:24px;font-weight:500;letter-spacing:-.03em}
.eg-group__head i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--p);box-shadow:0 0 16px var(--p)}
.eg-group.gt-c .eg-group__head i{background:var(--s);box-shadow:0 0 16px var(--s)}
@media (max-width:1100px){
  .eg-hero{grid-template-columns:1fr}
  .eg-job,.eg-skills{grid-template-columns:1fr;gap:40px}
}
@media (max-width:900px){
  .eg-hero{gap:36px}
  .eg-hero .gt-lead{font-size:19px}
  .eg-card,.wk-role{padding:28px}
  .eg-areas{grid-template-columns:1fr}
  .eg-skills,.eg-about__card,.eg-group{padding:28px}
  .eg-about{grid-template-columns:1fr;gap:20px}
  .wk-areas{grid-template-columns:1fr}
  .stats{padding:28px}
  .stat__value{font-size:40px}
}
