
:root{--eco-ink:#13263c;--eco-paper:#f5f1e9;--eco-gold:#b98a36}
.eco-trigger{position:fixed;right:18px;bottom:18px;z-index:99970;border:1px solid rgba(255,255,255,.55);
 background:rgba(18,37,58,.92);color:#fff;padding:10px 14px;font:600 11px/1.2 system-ui,sans-serif;
 letter-spacing:.14em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(10px)}
.eco-overlay{position:fixed;inset:0;z-index:99980;background:rgba(9,25,42,.68);backdrop-filter:blur(8px);
 display:flex;align-items:center;justify-content:center;padding:20px}
.eco-overlay[hidden]{display:none!important}
.eco-card{width:min(760px,94vw);max-height:90vh;overflow:auto;background:rgba(248,245,238,.96);color:var(--eco-ink);
 box-shadow:0 24px 80px rgba(0,0,0,.3);padding:clamp(24px,5vw,54px);position:relative}
.eco-close{position:absolute;right:18px;top:18px;border:1px solid rgba(19,38,60,.28);background:transparent;
 width:38px;height:38px;font-size:24px;cursor:pointer;color:var(--eco-ink)}
.eco-kicker{font:700 11px/1.2 system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--eco-gold);margin:0 0 12px}
.eco-card h2{font:500 clamp(34px,6vw,64px)/.98 Georgia,serif;margin:0 0 16px}
.eco-intro{max-width:58ch;font:400 16px/1.55 system-ui,sans-serif;margin:0 0 28px;color:#465568}
.eco-langs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 28px}
.eco-langs a,.eco-langs button{border:1px solid rgba(19,38,60,.25);padding:7px 10px;background:transparent;color:inherit;
 font:700 11px/1 system-ui,sans-serif;letter-spacing:.08em;text-decoration:none;cursor:pointer}
.eco-langs .current{background:var(--eco-ink);color:#fff}
.eco-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(19,38,60,.2);border-left:1px solid rgba(19,38,60,.2)}
.eco-choice{display:block;text-decoration:none;color:inherit;padding:22px;min-height:155px;border-right:1px solid rgba(19,38,60,.2);border-bottom:1px solid rgba(19,38,60,.2)}
.eco-choice:hover{background:rgba(185,138,54,.08)}
.eco-choice strong{display:block;font:700 13px/1.2 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;margin-bottom:9px}
.eco-choice span{display:block;font:400 14px/1.45 system-ui,sans-serif;color:#566373}
.eco-choice.current{box-shadow:inset 0 -3px 0 var(--eco-gold)}
.eco-enter{margin-top:22px;border:1px solid var(--eco-ink);background:var(--eco-ink);color:#fff;padding:12px 20px;
 font:700 12px/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.hww-gate .eco-card{text-align:center;max-width:670px;background:linear-gradient(180deg,rgba(15,42,67,.97),rgba(25,50,72,.97));color:#fff}
.hww-gate .eco-card h2{font-size:clamp(52px,9vw,90px)}
.hww-gate .eco-intro{margin-left:auto;margin-right:auto;color:rgba(255,255,255,.78)}
.hww-gate .eco-close{color:#fff;border-color:rgba(255,255,255,.35)}
.hww-gate .eco-kicker{color:#d7ad5b}
@media(max-width:680px){.eco-grid{grid-template-columns:1fr}.eco-choice{min-height:0}.eco-trigger{right:10px;bottom:10px}.eco-card{padding:28px 22px 24px}}


.eco-return{position:fixed;left:14px;bottom:14px;z-index:99995;display:inline-flex;align-items:center;gap:8px;
background:rgba(15,35,55,.94);color:#fff!important;border:1px solid rgba(255,255,255,.45);padding:11px 15px;
font:700 11px/1.1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none!important;
box-shadow:0 8px 28px rgba(0,0,0,.24);backdrop-filter:blur(10px)}
.eco-return:hover{background:#fff;color:#14263a!important;border-color:#14263a}
@media(max-width:680px){.eco-return{left:9px;bottom:9px;max-width:70vw;white-space:normal}}

/* Shared ecosystem dock: fixed to viewport, never part of page scroll. */
.eco-dock{
  position:fixed;
  left:50%;
  bottom:max(12px, env(safe-area-inset-bottom));
  transform:translateX(-50%);
  z-index:99976;
  display:flex;
  align-items:center;
  gap:0;
  max-width:calc(100vw - 24px);
  background:rgba(18,37,58,.72);
  border:1px solid rgba(255,255,255,.34);
  box-shadow:0 8px 30px rgba(0,0,0,.18);
  backdrop-filter:blur(14px) saturate(125%);
  -webkit-backdrop-filter:blur(14px) saturate(125%);
}
.eco-dock a,.eco-dock .eco-dock-current{
  display:block;
  padding:10px 14px;
  color:rgba(255,255,255,.86);
  text-decoration:none;
  font:700 10px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
  border-right:1px solid rgba(255,255,255,.18);
}
.eco-dock a:hover{background:rgba(255,255,255,.12);color:#fff}
.eco-dock .eco-dock-current{
  color:#f1c96b;
  background:rgba(255,255,255,.07);
  box-shadow:inset 0 -2px 0 #d6aa4e;
}
.eco-dock-close{
  width:34px;height:34px;flex:0 0 34px;
  border:0;background:transparent;color:rgba(255,255,255,.72);
  font:400 20px/1 system-ui,sans-serif;cursor:pointer;
}
.eco-dock-close:hover{color:#fff;background:rgba(255,255,255,.1)}
.eco-dock-toggle{
  position:fixed;
  right:12px;
  bottom:max(12px, env(safe-area-inset-bottom));
  z-index:99976;
  display:none;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(18,37,58,.76);
  color:#fff;
  padding:10px 13px;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  font:700 10px/1 system-ui,sans-serif;
  letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;
}
.eco-dock-toggle.is-visible{display:block}
/* The old separate Explore/Back controls are superseded by the dock. */
.eco-trigger,.eco-return{display:none!important}
@media(max-width:620px){
  .eco-dock{bottom:max(8px, env(safe-area-inset-bottom));max-width:calc(100vw - 16px)}
  .eco-dock a,.eco-dock .eco-dock-current{padding:9px 9px;font-size:9px;letter-spacing:.075em}
  .eco-dock-close{width:30px;height:32px;flex-basis:30px;font-size:18px}
  .eco-dock-toggle{right:8px;bottom:max(8px, env(safe-area-inset-bottom));padding:9px 11px;font-size:9px}
}
