/* Edge design system 1.0 components. Source: Federico's kit components.css, verbatim below the
   font face. Requires /assets/edge-kit-tokens.css. No page-level side effects.
   Font: the kit names "Inter Display", "Inter"; production serves the site's own Inter variable
   font (OFL, /assets/edge-inter.woff2) so every page gets the same metrics. */
@font-face{font-family:"Inter";src:url("/assets/edge-inter.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
.ed-button {
  appearance:none; display:inline-flex; align-items:center; justify-content:center;
  gap:var(--edge-space-24); min-height:var(--edge-control-height); padding:0 var(--edge-space-24);
  border:1px solid transparent; border-radius:var(--edge-radius-control);
  font:500 var(--edge-type-ui)/1.2 var(--edge-font-ui); letter-spacing:0;
  text-decoration:none; white-space:nowrap; cursor:pointer; touch-action:manipulation;
  transition:transform var(--edge-motion-press) var(--edge-motion-ease),
    box-shadow var(--edge-motion-hover) ease, background var(--edge-motion-hover) ease;
}
.ed-button--primary {
  color:var(--edge-white); background:var(--edge-blue); border-color:var(--edge-blue-base);
  box-shadow:var(--edge-shadow-key);
}
.ed-button--primary:hover:not(:disabled):not([aria-disabled="true"]),
.ed-button--primary[data-preview="hover"] {
  background:var(--edge-blue-hover); transform:translateY(-1px); box-shadow:var(--edge-shadow-key-hover);
}
.ed-button--primary:active:not(:disabled):not([aria-disabled="true"]),
.ed-button--primary[data-preview="pressed"] {
  transform:translateY(2px); box-shadow:var(--edge-shadow-key-pressed);
}
.ed-button--secondary {
  color:var(--edge-ink); background:var(--edge-surface); border-color:var(--edge-line);
  box-shadow:inset 0 1px 0 var(--edge-white),0 3px 0 var(--edge-line),0 6px 12px #16251e08;
}
.ed-button--secondary:hover:not(:disabled) {background:var(--edge-white);transform:translateY(-1px)}
.ed-button--secondary:active:not(:disabled) {transform:translateY(2px);box-shadow:0 1px 0 var(--edge-line)}
.ed-button.ed-button--small {min-height:var(--edge-control-height-small);padding:0 var(--edge-space-20);gap:var(--edge-space-20);font-size:12px}
.ed-button:focus-visible,.ed-text-link:focus-visible,.ed-icon-button:focus-visible,.ed-input:focus-visible {
  outline:2px solid var(--edge-blue);outline-offset:5px;
}
.ed-button[data-preview="focus"] {outline:2px solid var(--edge-blue);outline-offset:5px}
.ed-button:disabled,.ed-button[aria-disabled="true"] {
  cursor:not-allowed; background:var(--edge-line); color:var(--edge-muted);
  border-color:var(--edge-line); box-shadow:none; transform:none;
}
.ed-button svg {width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ed-button .ed-label {font:inherit}
.ed-text-link {display:inline-flex;align-items:center;gap:12px;min-height:44px;font:400 var(--edge-type-ui)/1.4 var(--edge-font-ui);color:var(--edge-ink);text-decoration:none}
.ed-text-link .ed-link-label {text-decoration:underline;text-decoration-color:var(--edge-line);text-underline-offset:6px}
.ed-text-link:hover .ed-link-label {text-decoration-color:var(--edge-ink)}
.ed-icon-button {display:inline-grid;place-items:center;min-width:44px;min-height:44px;border:0;background:none;border-radius:var(--edge-radius-small);color:var(--edge-ink);cursor:pointer;touch-action:manipulation}
.ed-icon-button:hover {background:var(--edge-blue-soft)}
.ed-icon-button svg {width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.ed-input {font:400 13px/1.6 var(--edge-font-ui);padding:14px 16px;min-height:48px;width:100%;border:1px solid var(--edge-line);border-radius:var(--edge-radius-small);background:var(--edge-surface);color:var(--edge-ink)}
.ed-input[aria-invalid="true"]{border-color:var(--edge-error)}
.ed-field-label{display:block;font:500 12px/1.5 var(--edge-font-ui);margin-bottom:8px;color:var(--edge-ink)}
.ed-field-note {font:400 11px/1.5 var(--edge-font-ui);color:var(--edge-muted);margin-top:8px}
.ed-field-note.is-error{color:var(--edge-error)}
.ed-compatibility {display:flex;align-items:center;gap:12px;font:400 11px/1.5 var(--edge-font-ui);color:var(--edge-muted)}
.ed-compatibility .compatibility-label {display:block;font-size:11px;white-space:nowrap;color:var(--edge-muted);margin:0}
.ed-compatibility .compatibility-logos {display:flex;gap:2px;align-items:center;flex-wrap:nowrap}
.ed-compatibility .app-link {position:relative;display:grid;place-items:center;width:34px;min-height:44px;padding:0;gap:0;color:var(--edge-ink);border-radius:4px;text-decoration:none}
.ed-compatibility .app-link img {width:18px;height:18px;opacity:.75;transition:opacity 320ms ease}
.ed-compatibility .app-link:hover img,.ed-compatibility .app-link:focus-visible img {opacity:1}
.ed-app-tooltip {position:absolute;left:50%;top:calc(100% + 2px);transform:translateX(-50%) translateY(-2px);padding:6px 8px;background:var(--edge-ink);color:var(--edge-paper);border-radius:4px;font:400 10px/1.3 var(--edge-font-ui);opacity:0;pointer-events:none;white-space:nowrap;z-index:8;transition:opacity 280ms,transform 280ms}
.app-link:hover .ed-app-tooltip,.app-link:focus-visible .ed-app-tooltip {opacity:1;transform:translateX(-50%) translateY(0)}
.ed-proof {color:var(--edge-muted);text-align:center;font:400 12px/1.55 var(--edge-font-ui);max-width:880px;margin:64px auto 0}
.ed-proof-names {display:flex;justify-content:center;gap:8px 26px;flex-wrap:wrap;margin:12px 0 10px!important;color:var(--edge-ink);font-size:15px;font-weight:530;letter-spacing:-.02em}
.ed-proof-academic {font-size:11px;color:var(--edge-muted)}
.ed-proof-academic span {color:var(--edge-ink)}
.ed-switch {position:relative;display:inline-block;appearance:none;flex:none;width:54px;height:30px;padding:3px;border:1px solid var(--edge-line);border-radius:999px;background:var(--edge-surface);cursor:pointer}
.ed-switch::before {content:'';position:absolute;inset:-7px -2px}
.ed-switch>span {display:block;width:22px;height:22px;background:var(--edge-ink);border-radius:50%;transform:translateX(0);transition:transform var(--edge-motion-switch) var(--edge-motion-ease);box-shadow:0 1px 3px #16251e20}
.ed-switch[aria-checked="true"]{background:var(--edge-blue);border-color:var(--edge-blue)}
.ed-switch[aria-checked="true"]>span {transform:translateX(23px);background:var(--edge-white)}
.ed-switch:focus-visible {outline:2px solid var(--edge-blue);outline-offset:5px}
.ed-tag {display:inline-flex;align-items:center;border:1px solid var(--edge-line);border-radius:4px;min-height:24px;padding:2px 8px;font:400 10px/1.2 var(--edge-font-ui);color:var(--edge-muted);background:transparent}
@media(max-width:700px){
 .ed-button{min-height:var(--edge-control-height-mobile);padding-inline:20px;font-size:12px}
 .ed-button.ed-button--small{min-height:var(--edge-control-height-small-mobile);padding-inline:15px;gap:16px;font-size:11px}
 .ed-compatibility .compatibility-label{font-size:10px}
 .ed-compatibility .app-link{width:30px;min-height:44px}
 .ed-compatibility .app-link img{width:16px;height:16px}
 .ed-proof{margin-top:44px;font-size:11px;max-width:90%}
 .ed-proof-names{gap:8px 17px;font-size:13px;line-height:1.7}
 .ed-proof-academic{font-size:10px;line-height:1.7}
}
@media(prefers-reduced-motion:reduce){.ed-button,.ed-button:hover,.ed-button:active{transform:none!important;transition:none}.ed-switch>span,.ed-app-tooltip,.app-link img{transition:none!important}}
/* Dark (derived; the kit is light-only): keep the secondary key and switch readable. */
@media (prefers-color-scheme: dark){html:root:not([data-theme="light"]):not([data-kit-scheme="light"]) .ed-button--secondary{box-shadow:inset 0 1px 0 #ffffff10,0 3px 0 var(--edge-line),0 6px 12px #0000002e}html:root:not([data-theme="light"]):not([data-kit-scheme="light"]) .ed-button--secondary:hover:not(:disabled){background:var(--edge-line)}}
html:root[data-theme="dark"]:not([data-kit-scheme="light"]) .ed-button--secondary{box-shadow:inset 0 1px 0 #ffffff10,0 3px 0 var(--edge-line),0 6px 12px #0000002e}
html:root[data-theme="dark"]:not([data-kit-scheme="light"]) .ed-button--secondary:hover:not(:disabled){background:var(--edge-line)}
/* Logo row (Federico, 2026-10-15: official marks from each organisation's own site, unaltered files,
   one mono treatment). Wordmarks become an ink silhouette; square marks with a knocked-out letter
   (YC) go greyscale so the letter survives. Dark pages flip both. */
.ed-proof-logos{font:400 11px/1.5 var(--edge-font-ui);color:var(--edge-muted)}
.ed-proof-label{margin:0}
.ed-logos{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;list-style:none;margin:8px 0 14px;padding:0}
.ed-logos li{display:flex;align-items:center;min-height:24px}
.ed-logo{display:block;width:auto;height:16px;filter:brightness(0);opacity:.74}
.ed-logo.is-square{height:20px;filter:grayscale(1) brightness(.62) contrast(3);opacity:.86}
.ed-logo.is-mark{height:18px}
.ed-logo.is-long{height:11px}
.ed-logo.is-inline{filter:none;color:var(--edge-ink)}
.ed-logo-inline{display:block;height:20px;width:auto}
.ed-logo-inline path{fill:currentColor}
.ed-logos--small .ed-logo{height:14px}
.ed-logos--small .ed-logo.is-long{height:10px}
@media(max-width:700px){.ed-logos{gap:8px 18px;margin:6px 0 10px}.ed-logo{height:13px}.ed-logo.is-square{height:17px}.ed-logo.is-mark{height:15px}.ed-logo-inline{height:16px}.ed-logo.is-long,.ed-logos--small .ed-logo.is-long{height:9px}.ed-logos--small .ed-logo{height:12px}}
@media (prefers-color-scheme: dark){html:root:not([data-theme="light"]):not([data-kit-scheme="light"]) .ed-logo{filter:brightness(0) invert(1)}html:root:not([data-theme="light"]):not([data-kit-scheme="light"]) .ed-logo.is-square{filter:grayscale(1) brightness(1.6)}html:root:not([data-theme="light"]):not([data-kit-scheme="light"]) .ed-logo.is-inline{filter:none}}
html:root[data-theme="dark"]:not([data-kit-scheme="light"]) .ed-logo{filter:brightness(0) invert(1)}
html:root[data-theme="dark"]:not([data-kit-scheme="light"]) .ed-logo.is-square{filter:grayscale(1) brightness(1.6)}
html:root[data-theme="dark"]:not([data-kit-scheme="light"]) .ed-logo.is-inline{filter:none}

/* Pixel-cloud hover (Federico, 2026-10-15): hovering a button, card, logo or link forms a dithered
   pixel cloud from the pointer outward, in the kit's half-tone style. Pure CSS; the drift animation
   runs only while hovered, so idle CPU stays ~0. Reduced motion: the cloud appears, nothing moves. */
:root{--edge-pc-tile:288px 144px;--edge-pc-in:1.1s;--edge-pc-ease:cubic-bezier(.37,0,.25,1)}
:where(.ed-button,.ed-works .app-link,.ed-proof-band .ed-logos li,.text-action,.nav-explore,
 .btn,.ov-btn,.pr-plan,.text-link,.ov-link,.home-agent,.ed-pc){position:relative;isolation:isolate}
:where(.ed-button,.ed-works .app-link,.ed-proof-band .ed-logos li,.text-action,.nav-explore,
 .btn,.ov-btn,.pr-plan,.text-link,.ov-link,.home-agent,.ed-pc)::before{
 content:"";position:absolute;inset:var(--pc-inset,0);z-index:-1;pointer-events:none;border-radius:inherit;
 background:var(--pc-color,var(--edge-blue));opacity:0;
 -webkit-mask-image:url("/assets/kit/pixel-cloud.png"),radial-gradient(closest-side,#000 55%,transparent);
 mask-image:url("/assets/kit/pixel-cloud.png"),radial-gradient(closest-side,#000 55%,transparent);
 -webkit-mask-size:var(--edge-pc-tile),0% 0%;mask-size:var(--edge-pc-tile),0% 0%;
 -webkit-mask-position:0 0,50% 50%;mask-position:0 0,50% 50%;
 -webkit-mask-repeat:repeat,no-repeat;mask-repeat:repeat,no-repeat;
 -webkit-mask-composite:source-in;mask-composite:intersect;
 transition:opacity var(--edge-pc-in) var(--edge-pc-ease),-webkit-mask-size var(--edge-pc-in) var(--edge-pc-ease),mask-size var(--edge-pc-in) var(--edge-pc-ease)}
:where(.ed-button,.ed-works .app-link,.ed-proof-band .ed-logos li,.text-action,.nav-explore,
 .btn,.ov-btn,.pr-plan,.text-link,.ov-link,.home-agent,.ed-pc):is(:hover,:focus-visible)::before{
 opacity:var(--pc-alpha,.2);-webkit-mask-size:var(--edge-pc-tile),260% 260%;mask-size:var(--edge-pc-tile),260% 260%;
 animation:edge-pc-drift 40s linear infinite}
@keyframes edge-pc-drift{to{-webkit-mask-position:288px 0,50% 50%;mask-position:288px 0,50% 50%}}
/* filled blue buttons: white pixels; links and logos get a little air around them */
:where(.ed-button--primary,.ov-btn-blue,.btn.primary){--pc-color:#fff;--pc-alpha:.32}
:where(.ed-works .app-link,.ed-proof-band .ed-logos li,.text-action,.nav-explore,.text-link,.ov-link){--pc-inset:-6px -12px;--pc-alpha:.24}
.ed-proof-band .ed-logos li{padding:6px 4px}
:where(.pr-plan){--pc-alpha:.1}
@media (prefers-color-scheme: dark){html:root:not([data-theme="light"]):not([data-kit-scheme="light"]) :where(.ed-button--secondary,.ov-btn-dark,.btn.share,.btn.secondary,.pr-plan,.home-agent){--pc-color:#cfe0ff;--pc-alpha:.14}}
html:root[data-theme="dark"]:not([data-kit-scheme="light"]) :where(.ed-button--secondary,.ov-btn-dark,.btn.share,.btn.secondary,.pr-plan,.home-agent){--pc-color:#cfe0ff;--pc-alpha:.14}
@media(prefers-reduced-motion:reduce){:where(.ed-button,.ed-works .app-link,.ed-proof-band .ed-logos li,.text-action,.nav-explore,.btn,.ov-btn,.pr-plan,.text-link,.ov-link,.home-agent,.ed-pc)::before{transition:opacity .01s;animation:none!important}}
