/* webyne-public.css - loaded ONLY by layout/public.php after app.css. Dark-only.
   Maps the webyne.ai design tokens onto Bootstrap 5 variables and restyles the
   handful of components app.css targets directly. Portal/admin never load this. */

/* ---- 1. tokens -> Bootstrap ---- */
:root,[data-bs-theme="dark"]{
  --wy-bg:#05070d;--wy-bg-2:#080b14;--wy-surface:#0b1020;--wy-surface-2:#0e1424;
  --wy-line:rgba(255,255,255,.09);--wy-line-2:rgba(255,255,255,.16);
  --wy-fg:#e9edf7;--wy-fg-2:#b3bdd4;--wy-fg-3:#8590ab;--wy-fg-4:#5d6880;
  --wy-brand:#6d8bff;--wy-brand-2:#a78bfa;--wy-brand-3:#22d3ee;
  --wy-grad:linear-gradient(100deg,#6d8bff 0%,#a78bfa 52%,#22d3ee 100%);
  --wy-ok:#34d399;--wy-warn:#fbbf24;--wy-risk:#fb7185;
  --wy-hdr-h:72px;--wy-ease:cubic-bezier(.22,.61,.36,1);
  --wy-shadow:0 1px 2px rgba(0,0,0,.5),0 12px 40px -12px rgba(0,0,0,.7);
  --wy-shadow-lg:0 40px 90px -30px rgba(0,0,0,.85);

  --bs-font-sans-serif:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --bs-font-monospace:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --bs-body-line-height:1.65;
  --bs-body-bg:var(--wy-bg);--bs-body-bg-rgb:5,7,13;
  --bs-body-color:var(--wy-fg);--bs-body-color-rgb:233,237,247;
  --bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;
  --bs-secondary-color:var(--wy-fg-2);--bs-secondary-color-rgb:179,189,212;
  --bs-tertiary-color:var(--wy-fg-3);--bs-tertiary-color-rgb:133,144,171;
  --bs-secondary-bg:var(--wy-surface-2);--bs-secondary-bg-rgb:14,20,36;
  --bs-tertiary-bg:var(--wy-surface);--bs-tertiary-bg-rgb:11,16,32;
  --bs-heading-color:var(--wy-fg);
  --bs-border-color:var(--wy-line);--bs-border-color-translucent:var(--wy-line);
  --bs-border-radius:11px;--bs-border-radius-sm:9px;--bs-border-radius-lg:14px;--bs-border-radius-xl:20px;
  --bs-primary:var(--wy-brand);--bs-primary-rgb:109,139,255;
  --bs-secondary:var(--wy-fg-3);--bs-secondary-rgb:133,144,171;
  --bs-success:var(--wy-ok);--bs-success-rgb:52,211,153;
  --bs-warning:var(--wy-warn);--bs-warning-rgb:251,191,36;
  --bs-danger:var(--wy-risk);--bs-danger-rgb:251,113,133;
  --bs-info:var(--wy-brand-3);--bs-info-rgb:34,211,238;
  --bs-link-color:#8fa9ff;--bs-link-color-rgb:143,169,255;
  --bs-link-hover-color:var(--wy-brand-2);--bs-link-hover-color-rgb:167,139,250;
  --bs-code-color:#8fd7ff;
  --bs-focus-ring-color:rgba(109,139,255,.25);
  --bs-box-shadow-sm:var(--wy-shadow);--bs-box-shadow:var(--wy-shadow);--bs-box-shadow-lg:var(--wy-shadow-lg);
  --bs-primary-bg-subtle:rgba(109,139,255,.12);--bs-primary-border-subtle:rgba(109,139,255,.3);--bs-primary-text-emphasis:#b6c4ff;
  --bs-success-bg-subtle:rgba(52,211,153,.1);--bs-success-border-subtle:rgba(52,211,153,.3);--bs-success-text-emphasis:#7fe9c3;
  --bs-warning-bg-subtle:rgba(251,191,36,.1);--bs-warning-border-subtle:rgba(251,191,36,.3);--bs-warning-text-emphasis:#fcd67a;
  --bs-danger-bg-subtle:rgba(251,113,133,.1);--bs-danger-border-subtle:rgba(251,113,133,.3);--bs-danger-text-emphasis:#ffb4c1;
  --bs-info-bg-subtle:rgba(34,211,238,.1);--bs-info-border-subtle:rgba(34,211,238,.3);--bs-info-text-emphasis:#8ae9f7;
  /* app.css tokens still referenced by its rules */
  --ep-accent:var(--wy-brand);--ep-accent-2:var(--wy-brand-2);--ep-card-bg:transparent;--ep-card-border:var(--wy-line);
  color-scheme:dark;
}

/* ---- 2. base ---- */
html{scroll-padding-top:calc(var(--wy-hdr-h) + 24px)}
body{padding-bottom:0;overflow-x:hidden;letter-spacing:0;-webkit-font-smoothing:antialiased;
  font-feature-settings:"cv02","cv03","cv04","ss01";background-attachment:scroll;
  background-image:radial-gradient(1100px 420px at 50% -120px,rgba(109,139,255,.08),transparent 72%)}
::selection{background:rgba(109,139,255,.32);color:#fff}
:focus-visible{outline:2px solid var(--wy-brand-3);outline-offset:3px}
h1,h2,h3,h4,h5,h6{letter-spacing:-.025em;font-weight:600;line-height:1.12;text-wrap:balance}
a{text-decoration:none}
.lead{font-weight:400;font-size:clamp(1.05rem,1.5vw,1.24rem);color:var(--wy-fg-2);line-height:1.62}
code{font-variant-ligatures:none}
hr{border-color:var(--wy-line);opacity:1}
@media (min-width:1400px){.container{max-width:1200px}}
/* moved from the old inline <style> in public.php */
.kpi{font-variant-numeric:tabular-nums}
.table-sm td,.table-sm th{padding:.45rem .6rem}
.feat{list-style:none;padding-left:0;margin:0}
.feat li{padding:.2rem 0 .2rem 1.4rem;position:relative}
.feat li::before{content:"\2713";position:absolute;left:0;color:var(--wy-ok)}
.code-sample{font-family:var(--bs-font-monospace);font-size:.82rem;line-height:1.55;white-space:pre;overflow-x:auto;color:var(--wy-fg-2)}

/* ---- 3. webyne text utilities ---- */
.wy-grad{background:linear-gradient(100deg,#6d8bff,#a78bfa,#22d3ee,#8fd7ff,#a78bfa,#6d8bff);background-size:260% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:wy-shimmer 11s linear infinite}
@keyframes wy-shimmer{to{background-position:-260% 0}}
.wy-eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--bs-font-monospace);font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--wy-fg-3);margin-bottom:12px}
.wy-eyebrow::before{content:"";width:22px;height:1px;background:linear-gradient(90deg,transparent,var(--wy-brand))}
.wy-display{font-size:clamp(2.4rem,5vw,4rem);letter-spacing:-.045em;font-weight:700;line-height:1.05;margin-bottom:22px}
.wy-h2{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.03em;margin-bottom:.35rem}
.wy-note{margin-top:14px;font-size:.82rem;color:var(--wy-fg-4)}

/* ---- 4. buttons ---- */
.btn{--bs-btn-padding-y:.78rem;--bs-btn-padding-x:1.35rem;--bs-btn-font-size:.925rem;--bs-btn-font-weight:600;--bs-btn-line-height:1.2;--bs-btn-border-radius:11px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;letter-spacing:-.011em;white-space:nowrap;
  transition:transform .18s var(--wy-ease),background-color .18s,border-color .18s,box-shadow .18s,opacity .18s}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:none}
.btn svg{width:15px;height:15px;flex:none}
.btn-sm{--bs-btn-padding-y:.55rem;--bs-btn-padding-x:.95rem;--bs-btn-font-size:.83rem;--bs-btn-border-radius:9px}
.btn-lg{--bs-btn-padding-y:1rem;--bs-btn-padding-x:1.85rem;--bs-btn-font-size:1rem;--bs-btn-border-radius:12px}
.btn-primary{--bs-btn-color:#04060c;--bs-btn-bg:transparent;--bs-btn-border-color:transparent;
  --bs-btn-hover-color:#04060c;--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:transparent;
  --bs-btn-active-color:#04060c;--bs-btn-active-bg:transparent;--bs-btn-active-border-color:transparent;
  --bs-btn-disabled-color:#04060c;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:transparent;
  background-image:var(--wy-grad);position:relative;overflow:hidden;isolation:isolate;
  box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 10px 30px -10px rgba(109,139,255,.6)}
.btn-primary:hover{box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 18px 44px -12px rgba(109,139,255,.8)}
.btn-primary::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.5) 50%,transparent 75%);
  transform:translateX(-130%);transition:transform .8s var(--wy-ease)}
.btn-primary:hover::after{transform:translateX(130%)}
.btn-outline-secondary,.btn-outline-primary{--bs-btn-color:var(--wy-fg);--bs-btn-bg:rgba(255,255,255,.045);--bs-btn-border-color:var(--wy-line-2);
  --bs-btn-hover-color:var(--wy-fg);--bs-btn-hover-bg:rgba(255,255,255,.09);--bs-btn-hover-border-color:rgba(255,255,255,.26);
  --bs-btn-active-color:var(--wy-fg);--bs-btn-active-bg:rgba(255,255,255,.09);--bs-btn-active-border-color:rgba(255,255,255,.26);
  --bs-btn-disabled-color:var(--wy-fg-4);--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:var(--wy-line)}
.btn-outline-primary{--bs-btn-color:#b6c4ff;--bs-btn-bg:rgba(109,139,255,.08);--bs-btn-border-color:rgba(109,139,255,.35);
  --bs-btn-hover-color:#fff;--bs-btn-hover-bg:rgba(109,139,255,.16);--bs-btn-hover-border-color:rgba(109,139,255,.55)}
.btn-quiet{--bs-btn-color:var(--wy-fg-2);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-padding-x:.8rem;
  --bs-btn-hover-color:var(--wy-fg);--bs-btn-hover-bg:rgba(255,255,255,.06);--bs-btn-hover-border-color:transparent;
  --bs-btn-active-color:var(--wy-fg);--bs-btn-active-bg:rgba(255,255,255,.08);--bs-btn-active-border-color:transparent}

/* ---- 5. cards ---- */
.card{--bs-card-bg:transparent;--bs-card-border-color:var(--wy-line);--bs-card-border-radius:20px;--bs-card-inner-border-radius:19px;
  --bs-card-spacer-y:1.25rem;--bs-card-spacer-x:1.35rem;
  background:linear-gradient(168deg,rgba(255,255,255,.052),rgba(255,255,255,.014));border:1px solid var(--wy-line);border-radius:20px;box-shadow:none;
  transition:border-color .25s var(--wy-ease),transform .25s var(--wy-ease)}
.card>.card-body.p-0{overflow:hidden;border-radius:inherit}
.plan-card:hover{border-color:var(--wy-line-2);transform:translateY(-3px)}
.plan-card.featured{border-color:rgba(109,139,255,.42);background:linear-gradient(168deg,rgba(109,139,255,.09),rgba(255,255,255,.014))}

/* ---- 6. tables ---- */
.table{--bs-table-bg:transparent;--bs-table-color:var(--wy-fg-2);--bs-table-border-color:var(--wy-line);font-size:.9rem}
.table>:not(caption)>*>*{padding:.85rem 1.1rem}
.table-sm>:not(caption)>*>*{padding:.55rem .9rem}
.table>thead>tr>th{font-family:var(--bs-font-monospace);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;font-weight:500;
  color:var(--wy-fg-3);background:rgba(255,255,255,.035);white-space:nowrap;border-bottom:1px solid var(--wy-line)}
.table>tbody>tr>td:first-child{color:var(--wy-fg)}
.table>tbody>tr:last-child>td{border-bottom:0}
.table>tbody>tr:hover>*{--bs-table-bg-state:rgba(255,255,255,.024)}

/* ---- 7. badges -> pills ---- */
.badge{--bs-badge-padding-x:.75em;--bs-badge-padding-y:.4em;--bs-badge-font-size:.735rem;--bs-badge-font-weight:500;--bs-badge-border-radius:999px;
  border:1px solid var(--wy-line);background:rgba(255,255,255,.055);color:var(--wy-fg-2);line-height:1.2;display:inline-flex;align-items:center;gap:6px}
.badge.text-bg-primary{background:rgba(109,139,255,.14)!important;border-color:rgba(109,139,255,.34);color:#b6c4ff!important}
.badge.text-bg-success{background:rgba(52,211,153,.12)!important;border-color:rgba(52,211,153,.3);color:var(--wy-ok)!important}
.badge.text-bg-warning{background:rgba(251,191,36,.12)!important;border-color:rgba(251,191,36,.3);color:var(--wy-warn)!important}
.badge.text-bg-danger{background:rgba(251,113,133,.12)!important;border-color:rgba(251,113,133,.3);color:var(--wy-risk)!important}
.badge.text-bg-info{background:rgba(34,211,238,.12)!important;border-color:rgba(34,211,238,.3);color:var(--wy-brand-3)!important}
.badge.text-bg-secondary{background:rgba(255,255,255,.055)!important;border-color:var(--wy-line);color:var(--wy-fg-2)!important}
.badge.rounded-circle{border:0}            /* status-page dots keep bg-success/danger */
.badge.fs-6{padding:.45em 1em}

/* ---- 8. forms & alerts ---- */
.form-control,.form-select{background-color:rgba(255,255,255,.045);border:1px solid var(--wy-line-2);border-radius:11px;color:var(--wy-fg);
  padding:.72rem .9rem;font-size:.925rem;transition:border-color .2s,background-color .2s,box-shadow .2s}
.form-control::placeholder{color:var(--wy-fg-4)}
.form-control:focus,.form-select:focus{background-color:rgba(255,255,255,.065);border-color:var(--wy-brand);color:var(--wy-fg);box-shadow:0 0 0 3px rgba(109,139,255,.16)}
.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238590ab' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-size:16px 16px}
.form-select option{background:var(--wy-surface);color:var(--wy-fg)}
.form-control-sm,.form-select-sm{padding:.45rem .7rem;font-size:.85rem;border-radius:9px}
.form-label{font-size:.83rem;font-weight:500;color:var(--wy-fg-2);margin-bottom:.45rem}
.form-text{color:var(--wy-fg-4)}
.alert{--bs-alert-border-radius:11px;font-size:.87rem}

/* ---- 9. docs / misc components ---- */
pre{color:var(--wy-fg-2);font-size:.82rem;line-height:1.55}
pre.bg-body-tertiary{background:rgba(0,0,0,.32)!important;border-color:var(--wy-line)!important}
.nav{--bs-nav-link-color:var(--wy-fg-3);--bs-nav-link-hover-color:var(--wy-fg);--bs-nav-link-font-size:.875rem}
.sticky-top{top:calc(var(--wy-hdr-h) + 1rem)!important}
.progress{--bs-progress-bg:rgba(255,255,255,.09);--bs-progress-bar-bg:transparent;--bs-progress-border-radius:99px}
.progress-bar{background-image:var(--wy-grad)}
.link-secondary:hover{color:var(--wy-fg)!important}

/* ---- 10. header ---- */
.wy-hdr{position:sticky;top:0;z-index:1030;background:rgba(5,7,13,.82);-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);border-bottom:1px solid var(--wy-line)}
.wy-hdr__in{display:flex;align-items:center;gap:12px;height:var(--wy-hdr-h);position:relative}
.wy-logo{display:inline-flex;align-items:center;gap:11px;flex:none;line-height:1;color:inherit}
.wy-logo__plate{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;padding:6px 11px;
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 4px 14px -6px rgba(0,0,0,.75);transition:transform .2s var(--wy-ease)}
.wy-logo:hover .wy-logo__plate{transform:translateY(-1px)}
.wy-logo__plate img{height:38px;width:auto;display:block}
.wy-logo__ai{font-size:1.2rem;font-weight:700;letter-spacing:-.03em}
.wy-nav{display:flex;align-items:center;gap:2px;margin-left:16px;flex:1}
.wy-nav__link{display:inline-flex;align-items:center;padding:9px 13px;border-radius:9px;font-size:.895rem;font-weight:500;color:var(--wy-fg-2);transition:color .18s,background-color .18s}
.wy-nav__link:hover{color:var(--wy-fg);background:rgba(255,255,255,.06)}
.wy-nav__link[aria-current="page"]{color:var(--wy-fg)}
.wy-nav__cta{margin-left:auto;display:flex;align-items:center;gap:9px}
.wy-burger{display:none;margin-left:auto;width:40px;height:40px;border-radius:10px;border:1px solid var(--wy-line);background:none;
  flex-direction:column;align-items:center;justify-content:center;flex:none;cursor:pointer}
.wy-burger span{display:block;width:16px;height:1.5px;background:var(--wy-fg);border-radius:2px;transition:transform .25s var(--wy-ease),opacity .2s}
.wy-burger span+span{margin-top:4px}
.wy-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.wy-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.wy-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
@media (min-width:992px){.wy-nav.collapse{display:flex!important}}
@media (max-width:991.98px){
  .wy-burger{display:flex}
  .wy-nav{position:absolute;top:100%;left:0;right:0;margin:0;flex-direction:column;align-items:stretch;gap:0;padding:10px 20px 20px;
    background:rgba(5,7,13,.98);border-bottom:1px solid var(--wy-line);box-shadow:var(--wy-shadow-lg)}
  .wy-nav__link{padding:13px 4px;border-radius:0;border-bottom:1px solid var(--wy-line);font-size:1.02rem}
  .wy-nav__cta{margin:18px 0 0;flex-direction:column;align-items:stretch}
  .wy-nav__cta .btn{width:100%}
}
@media (max-width:640px){:root{--wy-hdr-h:64px}.wy-logo__plate{padding:5px 8px;border-radius:9px}.wy-logo__plate img{height:31px}}

/* ---- 11. hero (landing) ---- */
.hero{position:relative;z-index:0;padding:clamp(64px,8vw,112px) 0 clamp(48px,6vw,80px)}
.hero::before{content:"";position:absolute;z-index:-2;top:calc(-1 * var(--wy-hdr-h));bottom:0;left:50%;width:100vw;transform:translateX(-50%);pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 80% 55% at 50% 30%,#000 20%,transparent 78%);mask-image:radial-gradient(ellipse 80% 55% at 50% 30%,#000 20%,transparent 78%)}
.hero .lead{max-width:600px}
.wy-aurora{position:absolute;z-index:-1;left:-12%;right:-12%;top:-30%;height:120%;pointer-events:none;filter:blur(96px);opacity:.5}
.wy-aurora i{position:absolute;display:block;border-radius:50%;mix-blend-mode:screen;will-change:transform}
.wy-aurora i:nth-child(1){width:46%;height:62%;left:4%;top:6%;background:radial-gradient(circle,rgba(109,139,255,.62),transparent 68%);animation:wy-d1 24s ease-in-out infinite alternate}
.wy-aurora i:nth-child(2){width:40%;height:56%;left:40%;top:0;background:radial-gradient(circle,rgba(167,139,250,.5),transparent 68%);animation:wy-d2 30s ease-in-out infinite alternate}
.wy-aurora i:nth-child(3){width:34%;height:48%;left:66%;top:16%;background:radial-gradient(circle,rgba(34,211,238,.4),transparent 68%);animation:wy-d3 27s ease-in-out infinite alternate}
@keyframes wy-d1{to{transform:translate3d(9%,7%,0) scale(1.14)}}
@keyframes wy-d2{to{transform:translate3d(-11%,10%,0) scale(1.1)}}
@keyframes wy-d3{to{transform:translate3d(-8%,-7%,0) scale(1.18)}}
.wy-badge{display:inline-flex;align-items:center;gap:9px;padding:6px 14px 6px 7px;border-radius:999px;background:rgba(255,255,255,.05);
  border:1px solid var(--wy-line-2);font-size:.79rem;color:var(--wy-fg-2);margin-bottom:22px}
.wy-badge b{background:var(--wy-grad);color:#05070d;font-weight:600;font-size:.68rem;padding:2.5px 9px;border-radius:999px;letter-spacing:.02em}
.wy-console{background:linear-gradient(165deg,var(--wy-surface-2),var(--wy-bg-2));border:1px solid var(--wy-line-2);border-radius:20px;box-shadow:var(--wy-shadow-lg);overflow:hidden}
.wy-console__bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--wy-line);background:rgba(255,255,255,.028)}
.wy-console__lights{display:flex;gap:5px}
.wy-console__lights i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.16)}
.wy-console__ttl{font-family:var(--bs-font-monospace);font-size:.68rem;color:var(--wy-fg-4);letter-spacing:.09em;text-transform:uppercase;margin-left:6px}
.wy-console__body{padding:18px}
.wy-dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}
.wy-dot--live{background:var(--wy-ok);animation:wy-ping 2.4s var(--wy-ease) infinite}
@keyframes wy-ping{0%{box-shadow:0 0 0 0 rgba(52,211,153,.5)}70%{box-shadow:0 0 0 7px rgba(52,211,153,0)}100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}}
.wy-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--wy-line);border:1px solid var(--wy-line);border-radius:14px;overflow:hidden;margin-top:40px}
@media (max-width:760px){.wy-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.wy-stat{background:var(--wy-bg-2);padding:22px 20px}
.wy-stat__n{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:600;letter-spacing:-.035em;line-height:1.1;margin-bottom:4px;font-variant-numeric:tabular-nums}
.wy-stat__l{font-size:.8rem;color:var(--wy-fg-3)}
.wy-step-n{font-family:var(--bs-font-monospace);font-size:.72rem;color:var(--wy-brand);letter-spacing:.12em;margin-bottom:12px}

/* ---- 12. footer ---- */
.wy-ftr{border-top:1px solid var(--wy-line);background:var(--wy-bg-2);padding:clamp(48px,6vw,72px) 0 28px;margin-top:clamp(48px,7vw,88px)}
.wy-ftr__top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(26px,3vw,44px);padding-bottom:40px;border-bottom:1px solid var(--wy-line)}
@media (max-width:900px){.wy-ftr__top{grid-template-columns:repeat(3,minmax(0,1fr))}.wy-ftr__brand{grid-column:1/-1}}
@media (max-width:560px){.wy-ftr__top{grid-template-columns:repeat(2,minmax(0,1fr))}}
.wy-ftr__brand p{color:var(--wy-fg-3);font-size:.885rem;line-height:1.65;margin:16px 0 0;max-width:38ch}
.wy-ftr__meta{margin-top:18px;display:grid;gap:7px;font-size:.83rem;color:var(--wy-fg-3)}
.wy-ftr__meta a{color:inherit}.wy-ftr__meta a:hover{color:var(--wy-fg)}
.wy-ftr h4{font-family:var(--bs-font-monospace);font-size:.67rem;letter-spacing:.15em;text-transform:uppercase;color:var(--wy-fg-4);font-weight:500;margin-bottom:16px}
.wy-ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.wy-ftr ul a{font-size:.875rem;color:var(--wy-fg-3);transition:color .18s}
.wy-ftr ul a:hover{color:var(--wy-fg)}
.wy-ftr__bot{padding-top:26px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--wy-fg-4)}
.wy-ftr__bot p{margin:0}

@media (prefers-reduced-motion:reduce){.wy-grad,.wy-aurora i,.wy-dot--live{animation:none}}
