/* Global Navigation Aperture
 * The navigator consumes membrane space, never interlocutor content space.
 * Single encounter: aperture lives on the outer Display membrane.
 * Shared-locus encounter: aperture lives on the shared compositor seam.
 */
#mini{
  --aperture-size:min(336px,calc(100vh - var(--legal-footer-height,2rem) - 2rem));
  --trigger-shape-inset:7px;
  --trigger-shape-radius:7px;
  --trigger-shape-rotate:0deg;
  --trigger-shape-scale:1;
  --pocket-closed-clip:polygon(50% 0,85% 15%,100% 50%,85% 85%,50% 100%,15% 85%,0 50%,15% 15%);
  --pocket-open-clip:polygon(10% 8%,90% 8%,92% 10%,92% 90%,90% 92%,10% 92%,8% 90%,8% 10%);
  --pocket-active-clip:var(--pocket-open-clip);
  --pocket-origin:100% 50%;
  --shell-rotate-closed:0deg;
  --shell-rotate-open:0deg;
  position:fixed;
  z-index:40;
  width:var(--aperture-size);
  height:var(--aperture-size);
  right:0;
  bottom:-48px;
  pointer-events:none;
  transform:none;
  opacity:1;
}
#mini-trigger{
  position:absolute;
  z-index:3;
  width:48px;
  height:48px;
  right:0;
  top:50%;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  pointer-events:auto;
  cursor:pointer;
  color:rgba(241,239,233,.78);
  outline:none;
}
#mini-trigger::before{
  content:"";
  position:absolute;
  inset:var(--trigger-shape-inset);
  transform:rotate(var(--trigger-shape-rotate)) scale(var(--trigger-shape-scale));
  border-radius:var(--trigger-shape-radius);
  border:1px solid rgba(241,239,233,.34);
  background:rgba(5,7,10,.28);
  backdrop-filter:blur(8px);
  transition:transform .22s ease,border-color .22s ease,background .22s ease,border-radius .22s ease;
}
#mini-trigger svg{
  position:relative;
  z-index:1;
  width:20px;
  height:20px;
  overflow:visible;
  filter:drop-shadow(0 1px 8px rgba(0,0,0,.72));
}
#mini-trigger .shape-diamond{display:none}
#mini-trigger:hover::before,#mini-trigger:focus-visible::before,#mini[data-aperture="open"] #mini-trigger::before{
  border-color:rgba(241,239,233,.72);
  background:rgba(5,7,10,.62);
  transform:rotate(var(--trigger-shape-rotate)) scale(calc(var(--trigger-shape-scale) * 1.12));
}
#mini-trigger:focus-visible{filter:drop-shadow(0 0 10px rgba(255,255,255,.16))}
#mini-pocket{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  transform:scale(.055);
  transform-origin:var(--pocket-origin);
  clip-path:var(--pocket-closed-clip);
  background:linear-gradient(135deg,rgba(12,17,23,.96),rgba(4,7,11,.985));
  filter:drop-shadow(0 0 1px rgba(241,239,233,.66)) drop-shadow(0 18px 46px rgba(0,0,0,.46));
  transition:transform .32s cubic-bezier(.2,.78,.18,1),opacity .18s ease,clip-path .34s cubic-bezier(.22,.8,.18,1);
  isolation:isolate;
}
#mini-pocket::before,
#mini-pocket::after{
  content:"";
  position:absolute;
  inset:2px;
  pointer-events:none;
}
#mini-pocket::before{
  clip-path:var(--pocket-active-clip);
  border:1px solid rgba(241,239,233,.14);
  background:
    linear-gradient(90deg,transparent 49.75%,rgba(241,239,233,.07) 50%,transparent 50.25%),
    linear-gradient(0deg,transparent 49.75%,rgba(241,239,233,.05) 50%,transparent 50.25%);
  transition:clip-path .34s cubic-bezier(.22,.8,.18,1),opacity .24s ease;
}
#mini-pocket::after{
  inset:0;
  clip-path:var(--pocket-active-clip);
  border:1px solid rgba(241,239,233,.22);
  transform:rotate(var(--shell-rotate-closed));
  opacity:.92;
}
#mini[data-aperture="open"] #mini-pocket{
  opacity:1;
  transform:scale(1);
  clip-path:var(--pocket-open-clip);
  pointer-events:auto;
}
#mini[data-aperture="open"] #mini-pocket::after{
  animation:aperture-shell-resolve .42s cubic-bezier(.2,.82,.18,1) forwards;
}
@keyframes aperture-shell-resolve{
  0%{transform:rotate(var(--shell-rotate-closed));opacity:.78}
  45%{transform:rotate(calc((var(--shell-rotate-closed) + var(--shell-rotate-open)) / 2));opacity:.92}
  100%{transform:rotate(var(--shell-rotate-open));opacity:1}
}
#mini[data-pinned="true"] #mini-trigger::after{
  content:"";
  position:absolute;
  z-index:2;
  width:4px;
  height:4px;
  border-radius:50%;
  background:rgba(241,239,233,.92);
  right:6px;
  top:6px;
}
/* Text is intrinsic flow; only the controls retain local physical coordinates. */
#mini-core{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:.75rem;min-width:0;box-sizing:border-box;max-height:var(--compass-core-cap,calc(100vh - 8rem));overflow:auto;overscroll-behavior:contain}
#mini-core[data-scroll="true"]{pointer-events:auto}
#mini-state{position:static;flex:none;min-width:0;margin:0;font:var(--type-rn2)/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:rgba(241,239,233,.7);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#mini-instrument{display:grid;grid-template-columns:1.75rem minmax(0,1fr);grid-template-rows:var(--hud-t) 1.75rem;gap:.25rem;flex:none}
#navTwin{position:static;display:block;grid-column:2;grid-row:1;width:100%;height:100%;min-width:0;min-height:0;pointer-events:auto;touch-action:none;outline:none;cursor:default}
#navTwin:focus-visible{filter:drop-shadow(0 0 5px rgba(255,255,255,.22))}
#mini .axis{position:relative;z-index:2;min-width:0;pointer-events:auto}
#mini #axis-x{grid-column:2;grid-row:2;left:auto;right:auto;top:auto;bottom:auto;width:100%;height:100%}
#mini #axis-x::before{left:.5rem;right:.5rem;top:50%;height:1px}
#mini #axis-x .knob{top:50%;left:50%}
#mini #axis-x .axis-letter{right:0;top:0}
#mini #axis-y{grid-column:1;grid-row:1;left:auto;right:auto;top:auto;bottom:auto;width:100%;height:100%}
#mini #axis-y::before{top:.5rem;bottom:.5rem;left:50%;width:1px}
#mini #axis-y .knob{left:50%;top:50%}
#mini #axis-y .axis-letter{left:0;top:0}
#mini-help-bar{display:flex;flex:none;gap:.5rem;align-items:center;min-width:0;pointer-events:auto}
#mini-help{position:static;display:grid;flex:1;min-width:0;font:var(--type-rn2)/1.4 var(--mono);letter-spacing:0;color:rgba(241,239,233,.62);overflow-wrap:anywhere;pointer-events:none}
/* Every finite input hint lends its real wrapped extent to one stable slot. */
#mini-help span{grid-area:1/1;min-width:0;visibility:hidden}
#mini-help span[aria-hidden="false"]{visibility:visible}
#mini-help-toggle{flex:none;width:2rem;height:2rem;padding:0;border:1px solid rgba(241,239,233,.3);border-radius:50%;background:transparent;color:rgba(241,239,233,.85);font:var(--type-rn1)/1 var(--mono);cursor:pointer}
#mini-help-toggle:focus-visible{outline:1px solid currentColor;outline-offset:3px}
#mini-guide{font:var(--type-rn2)/1.5 var(--mono);letter-spacing:0;color:rgba(241,239,233,.8);overflow:auto;max-height:var(--compass-guide-cap,12rem);overscroll-behavior:contain;pointer-events:auto}
#mini-guide[hidden]{display:none}
#mini-guide p{margin:0 0 .75rem;overflow-wrap:anywhere}
#mini-guide p:last-child{margin-bottom:0}
/* Global navigator as HUD — one measured cluster and one size knob, shared with the seam. */
#mini{
  --hud-edge:clamp(.9rem,2.2vw,1.6rem);
  --hud-t:min(var(--compass-ideal,10rem),var(--compass-map-cap,10rem),calc(100vw - 2 * var(--hud-edge) - 3.5rem));
  width:calc(var(--hud-t) + 3.5rem);
  height:calc(var(--compass-core-height,15rem) + 3rem);
  right:var(--hud-edge);
  bottom:calc(var(--hud-edge) + var(--legal-footer-height,2rem) + .5rem);
}
#mini-trigger{width:2.5rem;height:2.5rem;right:0;bottom:0;top:auto;transform:none}
#mini-trigger::before{inset:5px}
#mini-pocket{inset:0 0 3rem;transform-origin:100% 100%;clip-path:var(--pocket-closed-clip)}
#mini{--pocket-open-clip:inset(0 round .5rem)}
html:not([data-composition="split"]):not([data-composition="grid"]) #mini-pocket{background:none;clip-path:none;filter:none;transform:translate(10px,10px);text-shadow:0 0 6px rgba(5,7,10,.92),0 0 14px rgba(5,7,10,.92)}
html:not([data-composition="split"]):not([data-composition="grid"]) #mini-pocket::after{display:none}
html:not([data-composition="split"]):not([data-composition="grid"]) #mini-pocket::before{display:block;inset:-.75rem;z-index:-1;clip-path:none;border:0;background:radial-gradient(closest-side,rgba(5,7,10,.6),rgba(5,7,10,.34) 58%,rgba(5,7,10,0))}
html:not([data-composition="split"]):not([data-composition="grid"]) #mini[data-aperture="open"] #mini-pocket{transform:none;clip-path:none;pointer-events:none}
html:not([data-composition="split"]):not([data-composition="grid"]) #mini-core{padding:0 .75rem}
@media(max-width:760px){#mini{--compass-ideal:8.625rem}}
@media(max-width:520px){#mini{--compass-ideal:7.375rem}}
html[data-composition="split"] #mini,
html[data-composition="grid"] #mini{
  --trigger-shape-radius:0;
  --trigger-shape-rotate:45deg;
  --pocket-origin:50% 50%;
  --shell-rotate-closed:45deg;
  --shell-rotate-open:0deg;
  left:50%;
  top:clamp(calc(var(--compass-top,0px) + (var(--compass-core-height,15rem) + 3rem) / 2 + .5rem),50%,calc(100vh - (var(--compass-core-height,15rem) + 3rem) / 2 - var(--legal-footer-height,2rem) - var(--hud-edge) - .5rem));
  right:auto;
  bottom:auto;
  transform:translate(-50%,-50%);
  transition:height .28s ease,top .28s ease;
}
html[data-composition="split"] #mini[data-aperture="closed"],
html[data-composition="grid"] #mini[data-aperture="closed"]{height:2.5rem;top:50%}
html[data-composition="split"] #mini-trigger,
html[data-composition="grid"] #mini-trigger{
  left:50%;
  top:auto;
  bottom:0;
  right:auto;
  transform:translateX(-50%);
}
html[data-composition="split"] #mini-trigger .shape-square,
html[data-composition="grid"] #mini-trigger .shape-square{display:none}
html[data-composition="split"] #mini-trigger .shape-diamond,
html[data-composition="grid"] #mini-trigger .shape-diamond{display:block}
html[data-composition="split"] #mini::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:50%;
  top:-120vh;
  bottom:-120vh;
  width:1px;
  background:rgba(241,239,233,.12);
  transform:translateX(-.5px);
  pointer-events:none;
}
html[data-composition="split"][data-composition-axis="horizontal"] #mini::before{
  top:50%;
  left:-120vw;
  right:-120vw;
  bottom:auto;
  width:auto;
  height:1px;
  transform:translateY(-.5px);
}
@media(prefers-reduced-motion:reduce){
  #mini,#mini-pocket,#mini-trigger::before,#mini-pocket::before,#mini-pocket::after{transition-duration:.04s!important;animation-duration:.04s!important}
}

/* One Display-owned legal slot below the same bounded compass, always reachable
 * when its pocket closes. Site modules retain link wording and destinations. */
#mini #legal-links{position:absolute;left:0;right:0;top:calc(100% + .5rem);bottom:auto;width:100%;z-index:4;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:0 .75rem;pointer-events:auto;font:600 var(--type-rn2)/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase}
#mini #legal-links a{display:flex;align-items:center;min-height:1.5rem;max-width:100%;overflow-wrap:anywhere;color:rgba(238,242,237,.74);text-decoration:none;text-shadow:0 1px 4px var(--bg)}
#mini #legal-links a:hover,#mini #legal-links a:focus-visible{color:rgba(255,255,255,.98);outline:none;text-decoration:underline;text-underline-offset:.28em}
