/* ANKLE OS shell — dump.fm energy: left apps · right friends · bottom messages
 * Collapsible on all surfaces. Mobile-first. Ankle96 chrome. No indigo.
 * v=20260827-feed-a11y1
 */
:root{
  --aos-left-w: 188px;
  --aos-right-w: 196px;
  --aos-bottom-h: 52px;
  --aos-bottom-open: min(42vh, 320px);
  --aos-z: 9000;
  --aos-bg: #c0c0c0;
  --aos-panel: #d4d0c8;
  --aos-ink: #000;
  --aos-dim: #404040;
  --aos-line: #000;
}

/* One unmistakable keyboard focus language across the shared OS chrome.
   Yellow plus a black guard ring remains visible in both light and dark
   account themes without changing the ANKLE96 palette. */
#aos-topchips :is(a,button,input,textarea,select):focus-visible,
#aos-left :is(a,button,input,textarea,select):focus-visible,
#aos-right :is(a,button,input,textarea,select):focus-visible,
#aos-bottom :is(a,button,input,textarea,select,[role="slider"]):focus-visible,
.aos-tab:focus-visible{
  outline:3px solid #ffff00 !important;
  outline-offset:2px !important;
  box-shadow:0 0 0 5px #000 !important;
}

@media (prefers-reduced-motion: reduce){
  #aos-topchips *,#aos-left *,#aos-right *,#aos-bottom *,
  .aos-tab,#aos-legal-banner{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .aos-cover.spinning{animation:none !important}
}

/* body padding when panels open (desktop) */
body.aos-has-shell{ min-height: 100vh; }
body:has(#ankle-cartridge),
body.ankle-cartridge-shell {
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}
@media(min-width:901px){
  body.aos-left-open{ padding-left: var(--aos-left-w); }
  body.aos-right-open{ padding-right: var(--aos-right-w); }
  body.aos-bottom-open{ padding-bottom: var(--aos-bottom-h); }
  /* A person's custom site is an authored canvas, not an OS work pane. */
  body[data-aos-surface="personal-site"].aos-left-open{ padding-left:0 !important; }
  body[data-aos-surface="personal-site"].aos-right-open{ padding-right:0 !important; }

  /* Cartridge player iframe reflows cleanly between rails without being covered */
  body.aos-has-shell.aos-left-open:not(.aos-right-open) #ankle-cartridge,
  body.aos-has-shell.aos-left-open:not(.aos-right-open) iframe.ankle-cartridge-frame,
  body.aos-has-shell.aos-left-open:not(.aos-right-open) .ankle-cartridge-player iframe {
    width: calc(100% - var(--aos-left-w, 188px)) !important;
    margin-left: var(--aos-left-w, 188px) !important;
    margin-right: 0 !important;
  }
  body.aos-has-shell.aos-right-open:not(.aos-left-open) #ankle-cartridge,
  body.aos-has-shell.aos-right-open:not(.aos-left-open) iframe.ankle-cartridge-frame,
  body.aos-has-shell.aos-right-open:not(.aos-left-open) .ankle-cartridge-player iframe {
    width: calc(100% - var(--aos-right-w, 196px)) !important;
    margin-left: 0 !important;
    margin-right: var(--aos-right-w, 196px) !important;
  }
  body.aos-has-shell.aos-left-open.aos-right-open #ankle-cartridge,
  body.aos-has-shell.aos-left-open.aos-right-open iframe.ankle-cartridge-frame,
  body.aos-has-shell.aos-left-open.aos-right-open .ankle-cartridge-player iframe {
    width: calc(100% - var(--aos-left-w, 188px) - var(--aos-right-w, 196px)) !important;
    margin-left: var(--aos-left-w, 188px) !important;
    margin-right: var(--aos-right-w, 196px) !important;
  }
}
@media(max-width:900px){
  body.aos-left-open:not([data-aos-surface="personal-site"]),
  body.aos-right-open:not([data-aos-surface="personal-site"]),
  body.aos-bottom-open:not([data-aos-surface="personal-site"]){ padding-left:0; padding-right:0; padding-bottom:0; }
}
@media(min-width:901px) and (max-width:1163px){
  body.aos-left-open,body.aos-right-open{padding-left:0!important;padding-right:0!important}
  body.aos-left-open::after,
  body.aos-right-open::after{
    content:"";position:fixed;inset:0;background:rgba(0,0,0,.35);
    z-index:calc(var(--aos-z) - 1);pointer-events:auto;
  }
  .aos-tab-left,.aos-tab-right{
    top:calc(var(--aos-top-h,28px) + 10px);transform:none;margin:0;
    min-width:64px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;
  }
  .aos-tab-left{left:0}
  .aos-tab-right{right:0}
}

/* ── edge tabs (always reachable) ── */
.aos-tab{
  position: fixed; z-index: calc(var(--aos-z) + 2);
  background: var(--aos-bg); color: var(--aos-ink);
  border: 2px solid; border-color: #fff #808080 #808080 #fff;
  font: 10px/1 "Courier New", Courier, monospace;
  text-transform: uppercase; letter-spacing: .04em;
  cursor: pointer; padding: 6px 8px;
  box-shadow: none !important; border-radius: 0 !important;
}
.aos-tab:hover{ background: #000; color: #fff; }
.aos-tab-left{
  left: 0; top: 42%; transform: translateY(-50%) rotate(-90deg);
  transform-origin: left center; margin-left: 18px;
}
.aos-tab-right{
  right: 0; top: 42%; transform: translateY(-50%) rotate(90deg);
  transform-origin: right center; margin-right: 18px;
}
.aos-tab-bottom{
  left: 50%; bottom: 0; transform: translateX(-50%);
  border-bottom: 0;
}
body.aos-left-open .aos-tab-left{ display: none; }
body.aos-right-open .aos-tab-right{ display: none; }
body.aos-bottom-open .aos-tab-bottom{ bottom: var(--aos-bottom-h); }
body.aos-bottom-expanded .aos-tab-bottom{ bottom: var(--aos-bottom-open); }

/* Wide composition: each rail header owns its top corner while normal-flow
   body padding keeps the main top strip between the rails. Overlay drawers
   also own their viewport corner: their header (and its close control) must
   never start below the top strip or inherit a blank measured gap. */
#aos-left,
#aos-right{ top:0; }
@media(max-width:1163px){
  body.aos-top-open #aos-left,
  body.aos-top-open #aos-right{
    top:0;
    z-index:10020;
  }
}
@media(min-width:1164px){
  body.aos-top-open #aos-left,
  body.aos-top-open #aos-right{
    top: 0 !important;
  }
  body.aos-left-open.aos-top-open #aos-topchips{
    left: var(--aos-left-w) !important;
    right: 0 !important;
    width: auto !important;
  }
  body.aos-right-open.aos-top-open:not(.aos-left-open) #aos-topchips{
    left: 0 !important;
    right: var(--aos-right-w) !important;
    width: auto !important;
  }
  body.aos-left-open.aos-right-open.aos-top-open #aos-topchips{
    left: var(--aos-left-w) !important;
    right: var(--aos-right-w) !important;
    width: auto !important;
  }
}

/* ── panels ── */
.aos-panel{
  box-sizing: border-box !important;
  position: fixed; z-index: var(--aos-z);
  background: var(--aos-bg); color: var(--aos-ink);
  border: 2px solid; border-color: #fff #000 #000 #fff;
  font: 11px/1.35 "Courier New", Courier, monospace;
  display: flex; flex-direction: column;
  box-shadow: none !important; border-radius: 0 !important;
}
.aos-panel,
.aos-panel *{
  box-sizing: border-box;
}
.aos-panel[hidden]{ display: none !important; }

.aos-hd{
  box-sizing: border-box;
  display: flex; align-items: center; justify-content: space-between; gap: 6px;
  background: #000; color: #fff;
  padding: 4px 6px; text-transform: uppercase; letter-spacing: .05em;
  flex: 0 0 auto;
}
.aos-hd button{
  background: var(--aos-bg); color: #000; border: 2px solid;
  border-color: #fff #808080 #808080 #fff;
  font: 10px "Courier New", monospace; padding: 0 6px; cursor: pointer;
  min-width: 18px; height: 16px;
}
.aos-hd button:hover{ background: #fff; }
.aos-hd .aos-hd-actions{display:flex;align-items:center;gap:4px;min-width:0}
.aos-hd .aos-home{
  color:#fff !important;text-decoration:none !important;text-transform:none;
  letter-spacing:0;font-size:9px;white-space:nowrap;padding:1px 2px;
}
.aos-hd .aos-home:hover,.aos-hd .aos-home:focus{background:#fff;color:#000 !important;outline:none}

/* Collapse controls are part of the rail header, not floating tabs. Anchor
   each one to the rail's inner edge and let it fill the full header height. */
#aos-left > .aos-hd{padding-right:0 !important}
#aos-left > .aos-hd .aos-hd-actions{margin-right:0 !important}
#aos-right > .aos-hd{padding-left:0 !important}
#aos-left > .aos-hd .aos-rail-collapse,
#aos-right > .aos-hd > .aos-rail-collapse{
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 36px;width:36px;height:24px;margin:-4px 0;padding:0;
  box-sizing:border-box;
}
#aos-left > .aos-hd .aos-rail-collapse{
  border-top:0;border-right:0;border-bottom:0;
}
#aos-right > .aos-hd > .aos-rail-collapse{
  border-top:0;border-left:0;border-bottom:0;
}

.aos-body{ flex: 1 1 auto; overflow: auto; -webkit-overflow-scrolling: touch; padding: 6px; box-sizing: border-box; }
.aos-body > .aos-sec:first-of-type{ margin-top: 2px; }
.aos-sec{
  font-size: 10px; text-transform: uppercase; letter-spacing: .06em;
  color: var(--aos-dim); margin: 8px 0 4px; border-bottom: 1px solid #808080; padding-bottom: 2px;
}
.aos-link{
  display: block; padding: 4px 6px; color: #000 !important; text-decoration: none !important;
  border: 1px solid transparent;
}
.aos-link:hover, .aos-link.active{
  background: #000 !important; color: #fff !important;
}
.aos-link .dim{ color: inherit; opacity: .7; font-size: 10px; }
.aos-world-row{display:flex;align-items:center;gap:2px;min-width:0}
.aos-world-row .aos-world-link{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aos-world-ic{width:20px;height:20px;object-fit:cover;flex:0 0 20px;border:1px solid #808080;background:#fff}
.aos-world-ic-ph{display:inline-flex;align-items:center;justify-content:center;font-weight:bold}
.aos-world-star{
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 28px;width:28px;height:24px;padding:0;line-height:1;text-align:center;
  border:1px solid transparent;background:transparent;color:#555;
  font:700 16px/1 "Courier New",monospace;cursor:pointer;
}
.aos-world-star:hover,.aos-world-star.on{border-color:#808080;background:#fff;color:#000}
/* left */
#aos-left{
  left: 0; top: 0; bottom: 0; width: var(--aos-left-w);
  border-left: 0;
}
/* rail must clear the bottom player bar — last items (LAYOUT tools) were hidden */
body.aos-bottom-open #aos-left{ bottom: var(--aos-bottom-h); }
body.aos-bottom-open #aos-right{ bottom: var(--aos-bottom-h); }
/* right */
#aos-right{
  right: 0; top: 0; bottom: 0; width: var(--aos-right-w);
  border-right: 0;
}
/* bottom bar */
#aos-bottom{
  left: 0; right: 0; bottom: 0; height: var(--aos-bottom-h);
  border-bottom: 0; flex-direction: column;
  background: #c0c0c0 !important;
  color: #000000 !important;
  z-index: var(--aos-z);
}
body.aos-bottom-expanded #aos-bottom{ height: var(--aos-bottom-open); }
#aos-bottom .aos-bottom-bar{
  display: flex; align-items: center; gap: 8px;
  padding: 6px 8px; flex: 0 0 var(--aos-bottom-h);
  border-top: 1px solid #808080 !important;
  background: #c0c0c0 !important;
  color: #000000 !important;
}
#aos-bottom .aos-bottom-bar * {
  color: #000000 !important;
}
#aos-bottom .aos-bottom-bar input{
  flex: 1; min-width: 0; border: 2px solid; border-color: #808080 #fff #fff #808080;
  background: #fff !important; color: #000 !important; padding: 5px 8px; font: 12px "Courier New", monospace;
}
#aos-bottom .aos-bottom-bar button{
  border: 2px solid; border-color: #fff #808080 #808080 #fff;
  background: #c0c0c0 !important; color: #000 !important; padding: 4px 8px; font: 10px "Courier New", monospace;
  text-transform: uppercase; cursor: pointer;
}
#aos-bottom .aos-bottom-bar button.primary{ background: #000 !important; color: #fff !important; border-color: #000 !important; }
#aos-bottom .aos-bottom-bar button.primary * { color: #fff !important; }
.aos-mode-menu-wrap{position:relative;display:inline-flex;flex:0 0 auto;align-items:center}
#aos-bottom .aos-mode-trigger{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:76px;white-space:nowrap}
.aos-mode-caret{font-size:8px;line-height:1}
.aos-mode-menu{
  position:absolute;left:0;bottom:calc(100% + 5px);z-index:calc(var(--aos-z) + 8);
  display:flex;flex-direction:column;width:176px;padding:3px;background:#c0c0c0;color:#000;
  border:2px outset #fff;box-shadow:2px 2px 0 #000;
}
.aos-mode-menu[hidden]{display:none!important}
#aos-bottom .aos-mode-menu button{
  display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:28px;
  padding:4px 8px;text-align:left;text-transform:none;border:0;background:transparent!important;
}
#aos-bottom .aos-mode-menu button:hover,
#aos-bottom .aos-mode-menu button:focus,
#aos-bottom .aos-mode-menu button.on{background:#000080!important;color:#fff!important}
#aos-bottom .aos-mode-menu .aos-mode-agent{margin-top:3px;border-top:1px solid #808080!important}
#aos-bottom .aos-bar-zone{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
#aos-bottom .aos-compose-zone{order:2}
#aos-bottom #aos-bar-player{order:3;flex:0 1 42%;max-width:560px}
#aos-shell-composer{flex:1 1 160px;min-width:80px}
.aos-post-tools{display:flex;align-items:center;gap:5px;min-width:0}
.aos-post-tools[hidden]{display:none!important}
#aos-bottom .aos-drawer{
  display: none; flex: 1; overflow: auto; padding: 6px 8px; background: #fff !important; color: #000 !important;
  border-top: 1px solid #000;
}
body.aos-bottom-expanded #aos-bottom .aos-drawer{ display: block; }

/* friends rows */
.aos-friend{
  display: flex; align-items: center; gap: 6px; padding: 4px 2px;
  border-bottom: 1px solid #ddd; cursor: pointer;
}
.aos-friend:hover{ background: #eee; }
.aos-friend img, .aos-friend .aos-avatar-placeholder{
  width: 22px; height: 22px; object-fit: cover; flex: 0 0 22px;
  box-sizing: border-box; background: transparent;
}
.aos-person-avatar-link{display:flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;padding:0!important;border:0!important;background:transparent!important;color:inherit!important;text-decoration:none!important}
.aos-person-avatar-link:focus-visible{outline:2px solid #000080!important;outline-offset:1px}
/* A missing avatar is deliberately a quiet, dotted square—not an invented
   initial or a white tile.  PNG white matte is visually transparent here. */
.aos-avatar-placeholder{
  display: block; border: 1px dotted #666; background: transparent;
}
.aos-avatar-placeholder--large{ width:44px; height:44px; flex-basis:44px; border-color:#000; }
.aos-avatar-png{ mix-blend-mode: normal !important; background:transparent; opacity:1 !important; filter:none !important; }
/* Profile photos are identity-bearing UI across the shell. Wallpaper opacity,
   theme blending, disabled-row styling, and PNG heuristics must never fade
   the image itself. Relationship controls may dim; the person never does. */
.aos-friend img,
.aos-person img,
.aos-avatar-png,
.aos-user-btn .aos-user-pfp {
  opacity:1 !important;
  mix-blend-mode:normal !important;
  filter:none !important;
}
.aos-friend .name{ flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aos-person-name{vertical-align:middle}
.aos-person-worlds{display:inline-flex;align-items:center;gap:2px;margin-left:4px;vertical-align:middle;max-width:48px;overflow:hidden}
.aos-person-world-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 14px!important;width:14px!important;height:14px!important;min-height:14px!important;padding:0!important;border:1px solid #808080!important;background:#fff!important;color:#000080!important;text-decoration:none!important;font:bold 7px/1 "Courier New",monospace!important;box-sizing:border-box!important;overflow:hidden!important}
.aos-person-world-badge img{display:block!important;width:12px!important;height:12px!important;min-width:12px!important;object-fit:cover!important;border:0!important;background:transparent!important}
.aos-follow-quick{
  box-sizing:border-box; flex:0 0 76px; width:76px; max-width:76px; min-height:20px; padding:1px 5px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  border:1px solid #808080; background:#c0c0c0; color:#000;
  font:8px/1.1 "Courier New",monospace; cursor:pointer;
}
.aos-follow-quick:hover{border-color:#000;background:#ffffe0}
.aos-follow-quick:disabled{opacity:.6;cursor:wait}
.aos-person[data-relationship="friends"] .aos-follow-quick{background:#ffffe0;font-weight:bold}
.aos-support-note{padding:5px 10px;border-bottom:1px dotted #808080;background:#ffffe0;color:#000;font:9px/1.35 "Courier New",monospace}
.aos-dot{
  width: 7px; height: 7px; border: 1px solid #000; background: #808080; flex: 0 0 7px;
}
.aos-dot.on{ background: #00a000; }
.aos-muted{ color: var(--aos-dim); font-size: 10px; padding: 6px 2px; }
.aos-badge,
#aos-bottom #aos-msg-badge,
#aos-mode-trigger #aos-msg-badge {
  display: inline-flex; align-items: center; justify-content: center; min-width: 14px; height: 14px; padding: 0 4px;
  background: var(--aos-notif-badge-bg, #e11d48) !important; color: #ffffff !important;
  font-size: 9px; font-weight: bold; text-align: center; margin-left: 4px; border: none !important; border-radius: 2px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.35); vertical-align: middle;
}
.aos-badge[hidden]{display:none !important}

/* exact conversation rows + visible unread state */
.aos-convo-link{display:flex !important;align-items:center;gap:8px;min-width:0}
.aos-convo-link .aos-convo-main{flex:1;min-width:0}
.aos-convo-link .aos-convo-main b,
.aos-convo-link .aos-convo-main .dim{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aos-convo-link.unread{background:#ffffe0 !important;color:#000 !important;border-color:#000;font-weight:bold}
.aos-thread-unread{
  flex: 0 0 auto; min-width: 16px; height: 16px; padding: 0 4px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--aos-notif-badge-bg, #e11d48) !important; color: var(--aos-notif-badge-color, #ffffff) !important;
  text-align: center; font-size: 9px; font-weight: bold; border: none !important; border-radius: 2px;
}

/* one audio surface: switch Music library / Radio exploration inside it */
.aos-dr-header{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:2px solid var(--line,#000);padding:6px 12px 0;background:var(--panel,#c0c0c0);gap:12px}
.aos-dr-header .aos-audio-switch,
.aos-dr-header .aos-dr-tabs{display:flex;gap:0;margin:0;padding:0;border-bottom:none}
.aos-dr-header button,
.aos-post-drawer button{font:10px "Courier New",monospace;text-transform:uppercase;background:var(--panel,#c0c0c0);color:var(--fg,#000);border:2px outset #fff;border-bottom:none;cursor:pointer;padding:4px 10px;height:24px;box-sizing:border-box;line-height:1}
.aos-dr-header button.on{background:var(--highlight,#ffffe0) !important;color:#000 !important;font-weight:bold !important;border:2px inset #fff !important;border-bottom:none !important}
.aos-dr-player{display:grid;grid-template-columns:260px 1fr;gap:20px;padding:12px;font:12px "Courier New",monospace;align-items:start;box-sizing:border-box}
.aos-dr-left{min-width:0}
.aos-dr-right{min-width:0;display:flex;flex-direction:column}
.aos-dr-tabbody{max-height:min(34vh,280px);overflow-y:auto;padding:2px 0}
.aos-dr-genres{display:flex;flex-wrap:wrap;gap:5px;max-height:240px;overflow-y:auto;padding:2px 2px 8px 2px}
.aos-dr-genres button{font:10px "Courier New",monospace;background:var(--panel,#c0c0c0);color:var(--fg,#000);border:2px outset #fff;box-shadow: 1px 1px 0 #000;cursor:pointer;padding:3px 8px;white-space:nowrap;height:22px;box-sizing:border-box;line-height:1;display:inline-flex;align-items:center}
.aos-dr-genres button:active,.aos-dr-genres button.on{background:var(--highlight,#ffffe0) !important;color:#000 !important;font-weight:bold !important;border:2px inset #fff !important;box-shadow: none !important}

/* Post is a real rail mode, not a redirect. */
#aos-post-files.ready{background:var(--highlight,#ffffe0) !important;color:#000 !important;font-weight:bold}
.aos-post-status{flex:0 1 180px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:var(--muted,#333)}
.aos-post-status a{color:var(--link,#00e)}
.aos-post-drawer{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px;max-width:620px}
.aos-pm-media{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:8px 10px 0}
.aos-pm-attach{font:10px "Courier New",monospace;background:var(--panel,#c0c0c0);color:var(--fg,#000);border:2px outset #fff;cursor:pointer;padding:5px 9px}
.aos-pm-file{display:inline-flex;align-items:center;gap:5px;max-width:180px;padding:3px 5px;background:#fff;color:#000;border:1px solid #808080;font:10px "Courier New",monospace}
.aos-pm-file>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aos-pm-file button{flex:0 0 auto;border:0;background:#000;color:#fff;cursor:pointer;line-height:1}

/* ── Global OS Post Modal Window ────────────────────────────────── */
#aos-post-modal {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0, 0, 0, 0.65) !important;
  backdrop-filter: blur(2px);
  z-index: 100050 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px !important;
  box-sizing: border-box !important;
}
.aos-pm {
  background: #c0c0c0 !important;
  color: #000000 !important;
  border: 2px outset #ffffff !important;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.72) !important;
  width: 100% !important;
  max-width: 580px !important;
  max-height: 90vh !important;
  overflow-y: auto !important;
  font: 12px "Courier New", monospace !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  padding-bottom: 12px !important;
}
.aos-pm-tb {
  background: #e8e8e8 !important;
  color: #000000 !important;
  border-bottom: 1px solid #808080 !important;
  padding: 6px 10px !important;
  font-weight: bold !important;
  font-size: 11px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  user-select: none !important;
}
.aos-pm-tb button {
  background: #c0c0c0 !important;
  border: 2px outset #ffffff !important;
  color: #000000 !important;
  font: bold 12px "Courier New", monospace !important;
  cursor: pointer !important;
  width: 20px !important;
  height: 20px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  line-height: 1 !important;
}
.aos-pm-tb button:active {
  border-style: inset !important;
}
.aos-pm-dest {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 10px 0 !important;
}
.aos-pm-lbl {
  font-size: 10px !important;
  text-transform: uppercase !important;
  color: #333333 !important;
  font-weight: bold !important;
}
.aos-pm-chip {
  font: bold 10px "Courier New", monospace !important;
  background: #ffffcc !important;
  border: 1px solid #000000 !important;
  padding: 2px 6px !important;
  color: #000000 !important;
}
.aos-pm-destin {
  flex: 1 !important;
  font: 11px "Courier New", monospace !important;
  background: #ffffff !important;
  color: #000000 !important;
  border: 1px solid #808080 !important;
  padding: 3px 6px !important;
}
.aos-pm-destres {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  max-height: 160px !important;
  overflow-y: auto !important;
  margin: 0 10px !important;
  background: #ffffff !important;
  border: 1px solid #000000 !important;
}
.aos-pm-destres:empty {
  display: none !important;
}
.aos-pm-opt {
  font: 11px "Courier New", monospace !important;
  background: #ffffff !important;
  color: #000000 !important;
  border: none !important;
  border-bottom: 1px solid #eeeeee !important;
  text-align: left !important;
  padding: 4px 8px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.aos-pm-opt:hover {
  background: #000080 !important;
  color: #ffffff !important;
}
.aos-pm-world-opt {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.aos-pm-world-icon {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #000080 !important;
  color: #ffffff !important;
  font-weight: bold !important;
}
.aos-pm-world-icon img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.aos-pm-world-copy {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
.aos-pm-world-title {
  font-weight: bold !important;
}
.aos-pm-world-meta {
  font-size: 9px !important;
  color: #666666 !important;
}
.aos-pm-body {
  margin: 4px 10px 0 !important;
  min-height: 110px !important;
  font: 12px "Courier New", monospace !important;
  background: #ffffff !important;
  color: #000000 !important;
  border: 1px solid #808080 !important;
  padding: 8px !important;
  resize: vertical !important;
  box-sizing: border-box !important;
}
.aos-pm-body:focus {
  outline: none !important;
  border-color: #000000 !important;
}
.aos-pm-tags {
  margin: 0 10px !important;
  font: 11px "Courier New", monospace !important;
  background: #ffffff !important;
  color: #000000 !important;
  border: 1px solid #808080 !important;
  padding: 4px 8px !important;
  box-sizing: border-box !important;
}
.aos-pm-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 4px 10px 0 !important;
  gap: 8px !important;
}
.aos-pm-st {
  font: 10px "Courier New", monospace !important;
  color: #333333 !important;
  flex: 1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.aos-pm-send {
  font: bold 12px "Courier New", monospace !important;
  background: #c0c0c0 !important;
  color: #000000 !important;
  border: 2px outset #ffffff !important;
  box-shadow: 1px 1px 0 #000000 !important;
  cursor: pointer !important;
  padding: 4px 16px !important;
}
.aos-pm-send:hover {
  background: #d4d4d4 !important;
}
.aos-pm-send:active {
  border-style: inset !important;
  box-shadow: none !important;
}

/* top editable chips strip (optional secondary) */
#aos-topchips{
  position: sticky; top: 0; z-index: 10000;
  display: none; gap: 0; flex-wrap: nowrap;
  width: 100%; min-width: 0; max-width: 100vw;
  background: #c0c0c0 !important; color: #000000 !important;
  border-bottom: 1px solid #000 !important;
  padding: 0; font: 10px "Courier New", monospace;
  box-sizing: border-box;
  align-items: stretch;
  overflow: visible !important;
}
#aos-topchips * {
  color: #000000 !important;
}
body.aos-top-open #aos-topchips{ display: flex !important; }
/* The shell owns canonical identity/settings chrome while its top bar is open. */
body.aos-has-shell.aos-top-open:not(.aos-shell-disabled) #ankle-toolbar{
  display:none !important;
}
html body.aos-has-shell.aos-top-open:not(.aos-shell-disabled) #aos-topchips{
  padding-right:0 !important;
}
body.aos-has-shell.aos-top-open:not(.aos-shell-disabled) #ankle-theme-panel{
  top:calc(var(--aos-top-h,35px) + 6px) !important;
  right:12px !important;
  z-index:100060 !important;
}
.aos-controls-group {
  margin-left: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding-right: 6px !important;
  flex-shrink: 0 !important;
  min-width:0 !important;
  max-width:min(58vw,500px) !important;
}
.aos-credits{font:10px/1 "Courier New",monospace;color:#333!important;white-space:nowrap}
.aos-theme-btn{
  height:20px;
  min-width:42px;
  padding:1px 6px;
  box-sizing:border-box;
  border:2px outset #fff;
  background:#c0c0c0;
  color:#000080;
  font:10px/1 monospace;
  cursor:pointer;
}
.aos-theme-btn:active{border-style:inset}
.aos-theme-btn:focus-visible{outline:2px solid #000080;outline-offset:1px}
.aos-notif-top-wrap{position:relative;display:inline-flex;align-items:center}
.aos-notif-btn{
  position:relative;height:20px;min-width:26px;padding:1px 5px;box-sizing:border-box;
  border:2px outset #fff;background:#d4d0c8;color:#000080;font:bold 9px/1 "Courier New",monospace;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;
}
.aos-notif-btn:has(.aos-notif-badge:not([hidden])){
  padding-right:18px;
}
.aos-notif-btn:active,.aos-notif-btn.open{border-style:inset;background:#c0c0c0}
#aos-topchips .aos-notif-badge{
  position:absolute;right:2px;top:50%;transform:translateY(-50%);min-width:14px;height:14px;padding:0 3px;box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--aos-notif-badge-bg, #e11d48)!important;
  color:var(--aos-notif-badge-color, #ffffff)!important;
  border:none!important;border-radius:2px;
  font:bold 8px/1 "Courier New",monospace;z-index:2;
  box-shadow:0 1px 2px rgba(0,0,0,0.35);
}
#aos-topchips .aos-notif-badge[hidden]{display:none!important}

/* Facebook 2007 shell: every primary-nav state stays legible on the blue
   masthead, and unread activity uses the small red counter from the era. */
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aos-topchips :is(.aos-chips-group, nav, div) :is(a, a:link, a:visited, a:active){
  color: #ffffff !important;
  text-decoration: none !important;
}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aos-topchips :is(.aos-chips-group, nav, div) :is(a:hover, a.on, a[aria-current="page"]){
  color: #ffffff !important;
  background: #1c2a47 !important;
}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aos-topchips .aos-notif-btn{
  min-width:58px;padding:0 20px 0 4px;border:0!important;background:transparent!important;color:#fff!important;
  font:bold 9px/1 "Ankle Facebook UI","Lucida Grande",Tahoma,Verdana,Arial,sans-serif!important;text-transform:none!important;
}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aos-topchips .aos-notif-badge{
  right:3px;top:50%;transform:translateY(-50%);min-width:15px;height:15px;padding:0 3px;
  background:#f03d25!important;color:#fff!important;border:none!important;
  border-radius:2px!important;font:bold 9px/1 Arial,sans-serif!important;
}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aos-topchips .aos-agent-btn{
  height:auto!important;min-height:0!important;padding:2px 6px!important;border:0!important;background:transparent!important;color:#fff!important;
  font:bold 11px/1.35 "Ankle Facebook UI","Lucida Grande",Tahoma,Verdana,Arial,sans-serif!important;text-transform:none!important;box-shadow:none!important;
}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aos-topchips .aos-agent-btn:is(:hover,:active,.open){
  background:#1c2a47!important;color:#fff!important;
}
.aos-notif-dropdown{
  position:absolute;top:calc(100% + 3px);right:0;z-index:2147483310;display:none;
  width:min(340px,calc(100vw - 18px));max-height:min(70vh,430px);overflow:auto;box-sizing:border-box;
  padding:4px;background:#c0c0c0!important;color:#000!important;border:2px outset #fff;
  box-shadow:2px 2px 0 #000;font:10px/1.35 "Courier New",monospace;text-transform:none!important;
}
.aos-notif-dropdown.open{display:block!important}
.aos-notif-head{position:sticky;top:-4px;z-index:1;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px;border-bottom:1px solid #808080;background:#d4d0c8!important}
#aos-topchips .aos-notif-head a{min-height:0!important;padding:0!important;border:0!important;color:#000080!important;text-decoration:underline!important}
.aos-notif-alert-toggle{appearance:none;border:1px solid #000!important;background:#c0c0c0!important;color:#000!important;border-radius:0!important;box-shadow:none!important;padding:3px 5px!important;min-height:0!important;font:9px/1.1 ui-monospace,monospace!important;text-transform:none!important;cursor:pointer}
.aos-notif-group{padding:4px 7px 3px;border-bottom:1px solid #808080;background:#e5e5e5;color:#404040;font:bold 9px/1 "Courier New",monospace;letter-spacing:.08em}
.aos-notif-row{display:grid!important;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:48px!important;padding:7px!important;border:0!important;border-bottom:1px dotted #888!important;background:#c0c0c0!important;color:#000!important;text-decoration:none!important;text-transform:none!important}
.aos-notif-row:hover,.aos-notif-row:focus-within{background:#ffffe0!important;color:#000!important}
.aos-notif-avatar{width:28px;height:28px;min-width:28px;box-sizing:border-box;object-fit:cover;align-self:center;background:transparent!important;color:#000!important;display:flex;align-items:center;justify-content:center;font:bold 11px/1 "Courier New",monospace;opacity:1!important;mix-blend-mode:normal!important;filter:none!important}
.aos-notif-avatar-link{display:flex!important;width:28px!important;height:28px!important;min-width:28px!important;padding:0!important;border:0!important;background:transparent!important;color:inherit!important;text-decoration:none!important;align-items:center;justify-content:center}
.aos-notif-avatar-link:focus-visible{outline:2px solid #000080!important;outline-offset:1px}
.aos-notif-row.has-thumb{grid-template-columns:44px minmax(0,1fr) auto!important}
.aos-notif-thumb-wrap{position:relative;width:44px;height:44px;display:block;box-sizing:border-box;border:1px solid #808080!important;background:#e8e8e8!important;overflow:hidden;align-self:center}
.aos-notif-thumb{width:100%;height:100%;display:block;object-fit:cover;background:#e8e8e8!important;filter:none!important;opacity:1!important;mix-blend-mode:normal!important}
.aos-notif-thumb-badge{position:absolute;right:0;bottom:0;width:16px;height:16px;display:block;object-fit:cover;border:1px solid #000!important;background:#c0c0c0!important;image-rendering:auto}
.aos-notif-thumb-empty{width:44px;height:44px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid #808080!important;background:#e8e8e8!important;color:#666!important;font:bold 9px/1 "Courier New",monospace}
.aos-notif-main{min-width:0;display:block}
.aos-notif-main-link{padding:0!important;border:0!important;background:transparent!important;color:inherit!important;text-decoration:none!important;text-transform:none!important}
.aos-notif-main b,.aos-notif-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aos-notif-main small{margin-top:3px;color:#444;font:9px/1.3 "Courier New",monospace}
.aos-notif-actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:36px}
#aos-topchips .aos-notif-count{min-width:20px;height:20px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;background:#000!important;color:#fff!important;font:bold 10px/1 "Courier New",monospace}
#aos-topchips .aos-notif-reply{min-height:0!important;padding:1px 3px!important;border:1px solid #808080!important;background:#d4d0c8!important;color:#000080!important;font:bold 9px/1.2 "Courier New",monospace!important;text-decoration:none!important;text-transform:none!important}
.aos-notif-reply:hover,.aos-notif-reply:focus{background:#000080!important;color:#fff!important}
.aos-notif-empty{display:block!important;padding:14px 9px!important;color:#000!important;text-decoration:none!important;text-transform:none!important}

/* Facebook 2007 notification tray: white list, blue titlebar, pale-blue
   unread rows, and era-red counters. Generic shell themes keep the rules above. */
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown{
  padding:0!important;background:#fff!important;color:#111!important;border:1px solid #3b5998!important;
  box-shadow:0 2px 7px rgba(0,0,0,.35)!important;font-family:"Ankle Facebook UI","Lucida Grande",Tahoma,Verdana,Arial,sans-serif!important;
}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-head{
  top:0;padding:7px 8px;background:#3b5998!important;color:#fff!important;border-bottom:1px solid #1d2a5b!important;
}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-head b{color:#fff!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-head a{color:#fff!important;text-decoration:underline!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-alert-toggle{background:#fff!important;color:#3b5998!important;border:1px solid #8b9dc3!important;font-family:inherit!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-group{padding:5px 8px;background:#f7f7f7!important;color:#777!important;border-bottom:1px solid #d8dfea!important;font-family:inherit!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-row{background:#fff!important;border-bottom:1px solid #d8dfea!important;color:#111!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-row.unread{background:#eceff5!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-row:hover,
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-row:focus-within{background:#f2f4f8!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-main b{color:#3b5998!important;font-family:inherit!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-main small{color:#333!important;font-family:inherit!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-count{background:#f03d25!important;color:#fff!important;border:1px solid #d83722!important;border-radius:2px!important;font-family:Arial,sans-serif!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-reply{background:transparent!important;color:#3b5998!important;border:0!important;padding:1px!important;font-family:inherit!important;text-decoration:underline!important}
:is(html[data-ankle-viewer-theme="campus-2007"], body.theme-campus-2007, html[data-theme="campus-2007"]) #aosNotifDropdown .aos-notif-empty{background:#fff!important;color:#333!important}
.aos-agent-top-wrap{position:relative;display:inline-flex;align-items:center}
.aos-agent-btn{
  height:20px;max-width:126px;padding:1px 7px;box-sizing:border-box;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;border:2px outset #fff;background:#d4d0c8;
  color:#000080!important;font:bold 10px/1 "Courier New",monospace;cursor:pointer;
  box-shadow:1px 1px 0 #000;
}
.aos-agent-btn:active,.aos-agent-btn.open{border-style:inset;box-shadow:none;background:#c0c0c0}
.aos-agent-dropdown{
  position:absolute;top:calc(100% + 3px);right:0;z-index:2147483300;display:none;
  width:min(370px,calc(100vw - 18px));box-sizing:border-box;padding:5px;background:#c0c0c0!important;
  color:#000!important;border:2px outset #fff;box-shadow:2px 2px 0 #000;
  font:10px/1.35 "Courier New",monospace;text-transform:none!important;
}
.aos-agent-dropdown.open{display:block!important}
.aos-agent-backdrop{display:none}
.aos-agent-dd-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:5px 6px;border-bottom:1px solid #808080;background:#d4d0c8!important}
.aos-agent-dd-name{font:bold 12px/1.2 "Courier New",monospace;color:#000!important}
.aos-agent-dd-state{font:9px/1.2 "Courier New",monospace;color:#555!important;text-align:right}
.aos-agent-dd-close{width:24px;height:24px;padding:0!important;border:2px outset #fff!important;background:#d4d0c8!important;color:#000!important;font:bold 16px/1 "Courier New",monospace!important;cursor:pointer}
.aos-agent-dd-close:active{border-style:inset!important}
.aos-agent-transcript{margin:5px 0;padding:7px;max-height:145px;overflow:auto;white-space:pre-wrap;background:#e5e5e5!important;border:1px inset #fff;color:#000!important;font:10px/1.4 "Courier New",monospace}
.aos-agent-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:stretch}
#aos-topchips .aos-agent-input{min-width:0;min-height:48px;resize:vertical;box-sizing:border-box;padding:5px!important;border:2px inset #fff!important;background:#fff!important;color:#000!important;font:11px/1.3 "Courier New",monospace!important}
.aos-agent-send,.aos-agent-choice{border:2px outset #fff!important;background:#d4d0c8!important;color:#000!important;font:10px/1.2 "Courier New",monospace!important;cursor:pointer;text-transform:none!important}
.aos-agent-send{min-width:52px;padding:3px 7px!important}
.aos-agent-send:active,.aos-agent-choice:active{border-style:inset!important}
.aos-agent-switch-label{margin:7px 0 3px;padding-top:5px;border-top:1px solid #808080;font:bold 9px/1 "Courier New",monospace;color:#333!important;text-transform:uppercase!important;letter-spacing:.05em}
.aos-agent-choices{display:flex;flex-wrap:wrap;gap:4px;max-height:82px;overflow:auto}
.aos-agent-choice{padding:4px 6px!important}
.aos-agent-choice.selected,.aos-agent-choice:disabled{border-style:inset!important;background:#b8b8b8!important;color:#333!important;cursor:default;opacity:1}
.aos-agent-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px;padding-top:5px;border-top:1px solid #808080}
#aos-topchips .aos-agent-links a{padding:0!important;border:0!important;background:transparent!important;color:#000080!important;font:9px/1.3 "Courier New",monospace!important;text-transform:none!important;text-decoration:underline!important}
#aos-topchips .aos-agent-links a:hover{background:#000080!important;color:#fff!important}
.aos-chips-group {
  display: inline-flex !important;
  align-items: center !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scrollbar-width:thin;
}
.aos-search{position:relative;display:flex;align-items:center;gap:5px;flex:0 1 280px;max-width:340px;min-width:140px;margin:3px 8px;border:1px solid #808080;background:#fff !important;color:#000 !important;padding:1px 6px}
.aos-search-scope{flex:0 0 auto;background:#d4d0c8 !important;color:#000 !important;border:1px solid #999;padding:2px 5px;font:bold 9px "Courier New",monospace;white-space:nowrap}
.aos-search-input{flex:1;min-width:0;border:0!important;outline:0!important;background:#fff!important;color:#000!important;padding:3px 2px!important;font:11px "Courier New",monospace!important;width:auto!important;box-shadow: none!important}
#aos-topchips .aos-search-results{
  position:absolute;top:calc(100% + 4px);left:-1px;z-index:2147483200;
  width:min(520px,calc(100vw - 24px));max-height:min(70vh,520px);overflow:auto;
  box-sizing:border-box;background:#d4d0c8;border:2px solid;border-color:#fff #000 #000 #fff;
  box-shadow:2px 2px 0 rgba(0,0,0,.55);padding:3px;
}
#aos-topchips .aos-search-results[hidden]{display:none!important}
#aos-topchips .aos-search-result{
  display:grid;grid-template-columns:66px minmax(0,1fr);align-items:start;gap:7px;
  min-height:34px;padding:5px 6px!important;border:1px solid transparent!important;
  background:#d4d0c8!important;color:#000!important;text-transform:none!important;
  font:11px/1.2 "Courier New",monospace;white-space:normal;
}
#aos-topchips .aos-search-result:hover,
#aos-topchips .aos-search-result.selected{
  background:#000080!important;color:#fff!important;border-color:#000!important;
}
#aos-topchips .aos-search-kind{
  display:inline-block;box-sizing:border-box;padding:3px 4px;background:#ffffe0;
  border:1px solid #000;font:bold 9px/1 "Courier New",monospace;text-align:center;
  letter-spacing:.03em;white-space:nowrap;
}
#aos-topchips .aos-search-kind-world{background:#b8ffb8}
#aos-topchips .aos-search-kind-website{background:#b8d4ff}
#aos-topchips .aos-search-kind-post{background:#ffd4b8}
#aos-topchips .aos-search-kind-account{background:#e4c8ff}
#aos-topchips .aos-search-copy{display:block;min-width:0;text-transform:none!important}
#aos-topchips .aos-search-copy strong,
#aos-topchips .aos-search-copy small{display:block;overflow:hidden;text-overflow:ellipsis}
#aos-topchips .aos-search-copy strong{white-space:nowrap;font:bold 11px/1.2 "Courier New",monospace}
#aos-topchips .aos-search-copy small{margin-top:2px;max-height:2.4em;color:#404040!important;font:9px/1.2 "Courier New",monospace}
#aos-topchips .aos-search-result:hover .aos-search-copy small,
#aos-topchips .aos-search-result.selected .aos-search-copy small{color:#fff!important}
#aos-topchips .aos-search-empty{padding:9px 10px;color:#333!important;font:10px/1.3 "Courier New",monospace}
#aos-topchips a{
  padding: 5px 8px; border-right: 1px solid #999; color: #000000 !important;
  text-decoration: none !important; text-transform: uppercase; background: transparent;
}
#aos-topchips a:hover, #aos-topchips a.on{ background: #000000 !important; color: #ffffff !important; }
#aos-topchips a:hover *, #aos-topchips a.on *{ color: #ffffff !important; }
/* A World chip is identity, not a generic black nav label. Its pair fills the
   bar's own line box so EXIT WORLD cannot float above or below the rail. */
html body.aos-has-shell #aos-topchips .aos-world-chip-wrap{
  align-self:stretch!important;align-items:stretch!important;height:auto!important;
  min-height:0!important;margin-top:0!important;margin-bottom:0!important;
}
html body.aos-has-shell #aos-topchips .aos-world-chip{
  align-self:stretch!important;height:auto!important;min-height:0!important;margin:0!important;
  color:var(--aos-world-chip-fg,var(--link,#0000ee))!important;
}
html body.aos-has-shell #aos-topchips .aos-world-chip-x{
  align-self:stretch!important;height:auto!important;min-height:0!important;margin:0!important;
}
#aos-topchips .aos-edit{
  margin-left: auto; border: 0; border-left: 1px solid #999;
  background: transparent; padding: 5px 8px; cursor: pointer;
  font: 10px "Courier New", monospace; text-transform: uppercase;
}

/* User dropdown tab in top bar */
.aos-user-dropdown-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.aos-user-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 2px 6px 2px 3px !important;
  font: 11px "Courier New", Courier, monospace !important;
  text-decoration: none !important;
  border: 2px outset #ffffff !important;
  background: #c0c0c0 !important;
  box-shadow: 1px 1px 0 #000 !important;
  cursor: pointer;
  color: #000000 !important;
  height: 20px;
  box-sizing: border-box;
}
.aos-user-btn:active, .aos-user-btn.open {
  border: 2px inset #ffffff !important;
  background: #d4d0c8 !important;
  box-shadow: none
}
.aos-user-btn .aos-user-pfp {
  width: 14px;
  height: 14px;
  object-fit: cover;
  border: 1px solid #000;
  background: #fff !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
  display: inline-block;
  vertical-align: middle;
}
.aos-user-btn .aos-user-pfp-ph {
  width: 14px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #000;
  background: #fff;
  font-size: 8px;
  font-weight: bold;
  color: #000;
}
.aos-user-btn .aos-user-caret {
  font-size: 7px;
  margin-left: 1px;
}
.aos-user-handle{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aos-user-dropdown {
  position: absolute;
  top: calc(100% + 2px);
  right: 0;
  z-index: 99999;
  min-width: 180px;
  background: #c0c0c0 !important;
  border: 2px outset #ffffff !important;
  box-shadow: 2px 2px 0 #000 !important;
  display: none;
  padding: 2px 0;
  font-family: "Courier New", Courier, monospace !important;
}
.aos-user-dropdown.open {
  display: block !important;
}
.aos-user-dd-head {
  padding: 4px 8px;
  border-bottom: 1px solid #808080;
  background: #d4d0c8;
  margin-bottom: 2px;
}
.aos-user-dd-name {
  font-weight: bold;
  color: #000000 !important;
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.aos-user-dd-meta {
  font-size: 10px;
  color: #555555 !important;
}

/* Compact desktop chrome. The bar keeps the same information architecture in
   every theme, but secondary controls become labeled symbols before any text
   can cross the viewport edge. Wide screens retain the full words. */
@media(min-width:901px) and (max-width:1280px){
  #aos-topchips{max-width:100%!important;overflow:visible!important}
  #aos-topchips .aos-search{
    flex:0 1 190px!important;min-width:96px!important;max-width:190px!important;
    margin-left:3px!important;margin-right:3px!important;
  }
  #aos-topchips .aos-chips-group{flex:1 1 auto!important;min-width:180px!important}
  #aos-topchips .aos-chips-group>a{padding-left:6px!important;padding-right:6px!important}
  #aos-topchips .aos-controls-group{
    flex:0 1 auto!important;min-width:0!important;max-width:430px!important;
    gap:2px!important;padding-right:2px!important;
  }
  #aos-topchips .aos-top-keyring{flex:0 1 auto;min-width:30px;max-width:34px;overflow:hidden}
  #aos-topchips .aos-wallet-btn{
    position:relative;width:32px!important;min-width:32px!important;max-width:32px!important;
    height:24px!important;padding:0!important;overflow:hidden!important;font-size:0!important;
  }
  #aos-topchips .aos-wallet-btn::before{content:"◇";font:bold 15px/1 "Courier New",monospace}
  #aos-topchips .aos-wallet-chip{max-width:82px;overflow:hidden;white-space:nowrap}
  #aos-topchips .aos-theme-btn{
    width:32px!important;min-width:32px!important;max-width:32px!important;
    padding:0!important;font-size:0!important;
  }
  #aos-topchips .aos-theme-btn::before{content:"◐";font:bold 14px/1 "Courier New",monospace}
  #aos-topchips .aos-notif-btn{
    width:42px!important;min-width:42px!important;max-width:42px!important;
    padding-left:3px!important;padding-right:18px!important;font-size:0!important;
  }
  #aos-topchips .aos-notif-btn::before{content:"!";font:bold 12px/1 "Courier New",monospace}
  #aos-topchips .aos-credits{max-width:none;overflow:visible;text-overflow:clip}
  #aos-topchips .aos-top-agent{flex:0 1 92px;min-width:32px;max-width:92px}
  #aos-topchips .aos-agent-top-wrap{min-width:0;max-width:100%}
  #aos-topchips .aos-agent-btn{max-width:92px!important}
  #aos-topchips .aos-top-user{flex:0 0 auto;min-width:34px}
  #aos-topchips .aos-user-dropdown-wrap{min-width:0;max-width:none}
  #aos-topchips .aos-user-btn{min-width:max-content;max-width:none;overflow:visible}
  #aos-topchips .aos-user-handle{min-width:max-content;overflow:visible;text-overflow:clip}
  #aos-topchips #aos-top-clock{display:none!important}
}
@media(min-width:901px) and (max-width:1050px){
  #aos-topchips .aos-brand-name{display:none!important}
  #aos-topchips .aos-search{flex-basis:130px!important;max-width:130px!important}
  #aos-topchips .aos-chips-group>a{padding-left:5px!important;padding-right:5px!important}
  #aos-topchips .aos-post{font-size:0!important;min-width:32px!important}
  #aos-topchips .aos-post::before{content:"+";font:bold 15px/1 "Courier New",monospace}
  #aos-topchips .aos-credits{display:none!important}
}
@media(min-width:901px) and (max-width:980px){
  #aos-topchips .aos-search{display:none!important}
}
.aos-user-dd-credits {
  font-size: 10px;
  font-weight: bold;
  color: #008000 !important;
  margin-top: 1px;
}
.aos-user-dropdown a, .aos-user-dropdown button {
  display: flex !important;
  align-items: center;
  gap: 6px;
  padding: 4px 10px !important;
  color: #000000 !important;
  text-decoration: none !important;
  font-family: "Courier New", Courier, monospace !important;
  border: 0 !important;
  background: transparent !important;
  width: 100%;
  text-align: left;
  box-sizing: border-box;
  cursor: pointer;
  text-transform: lowercase;
}
.aos-user-dropdown a:hover, .aos-user-dropdown button:hover {
  background: #000080 !important;
  color: #ffffff !important;
}
.aos-user-dropdown a:hover *, .aos-user-dropdown button:hover * {
  color: #ffffff !important;
}
.aos-user-dd-sep {
  height: 1px;
  background: #808080;
  margin: 2px 0;
}

/* Personal builds may define body as a row/column flex canvas. A sticky strip
   is then a flex child and can stretch into a full-height column, squeezing
   the authored site off-screen. Keep OS chrome fixed and independently sized;
   the desktop geometry rule above supplies rail offsets and top clearance. */
body[data-aos-surface="personal-site"].aos-top-open #aos-topchips{
  position:fixed !important;
  top:0 !important; right:0; bottom:auto !important; left:0;
  width:auto !important; max-width:none !important; min-width:0 !important;
  box-sizing:border-box !important;
  height:auto !important; min-height:24px; align-self:auto !important;
  flex:0 0 auto !important;
}
@media(max-width:900px){
  body[data-aos-surface="personal-site"].aos-top-open{
    padding-top:var(--aos-top-h,44px) !important;
  }
  body[data-aos-surface="personal-site"].aos-top-open #aos-topchips{
    min-height:44px !important;
  }
}
@media(min-width:1164px){
  body[data-aos-surface="personal-site"].aos-left-open.aos-top-open #aos-topchips{
    inset:0 0 auto 0!important;
    width:100%!important;
  }
  body[data-aos-surface="personal-site"].aos-right-open.aos-top-open:not(.aos-left-open) #aos-topchips{
    inset:0 0 auto 0!important;
    width:100%!important;
  }
  body[data-aos-surface="personal-site"].aos-left-open.aos-right-open.aos-top-open #aos-topchips{
    inset:0 0 auto 0!important;
    width:100%!important;
  }
}
body[data-aos-surface="personal-site"].aos-bottom-open{
  padding-bottom:calc(72px + env(safe-area-inset-bottom)) !important;
}

/* mobile drawers overlay content instead of permanent padding */
@media(max-width:900px){
  /* The fixed rail must reserve space so page composers/actions scroll above it. */
  body.aos-bottom-open{padding-bottom:calc(var(--aos-bottom-h) + env(safe-area-inset-bottom)) !important}
  body.aos-bottom-expanded{padding-bottom:calc(var(--aos-bottom-open) + env(safe-area-inset-bottom)) !important}
  #aos-left, #aos-right{
    width: min(86vw, 280px);
    box-shadow: 2px 2px 0 #000
  }
  #aos-right{ box-shadow: 2px 2px 0 #000 }
  .aos-tab-left{ margin-left: 14px; }
  .aos-tab-right{ margin-right: 14px; }
  /* dim page when a side drawer is open */
  body.aos-left-open::after,
  body.aos-right-open::after{
    content: ""; position: fixed; inset: 0; background: rgba(0,0,0,.35);
    z-index: calc(var(--aos-z) - 1); pointer-events: auto;
  }
  html body.aos-has-shell #aos-bottom .aos-bottom-bar{
    width:100%;min-width:0;box-sizing:border-box;overflow:visible!important;
  }
  html body.aos-has-shell #aos-bottom .aos-compose-zone{
    flex:1 1 0!important;min-width:0!important;
  }
  html body.aos-has-shell #aos-shell-composer{
    flex:1 1 0!important;min-width:0!important;width:auto!important;
  }
  #aos-composer-submit{flex:0 0 auto}
  #aos-post-tools .aos-post-status{display:none}
  #aos-topchips .aos-search{display:none !important}
  #aos-topchips .aos-brand-name{display:none !important}
  .aos-controls-group{max-width:58vw !important}
  .aos-controls-group .aos-credits,
  .aos-controls-group .aos-top-keyring{display:none !important}
  .aos-top-user{min-width:0 !important;max-width:calc(58vw - 58px) !important}
  .aos-user-dropdown-wrap{min-width:0;max-width:100%}
  .aos-user-btn{max-width:100%;min-width:0}

  /* Phone chrome remains intentionally compact, but every control that opens
     a destination or drawer keeps a full touch target. The measured top height
     is synchronized into --aos-top-h by the shell runtime. */
  #aos-topchips{
    height:44px;min-height:44px;max-height:44px;box-sizing:border-box;
  }
  #aos-topchips .aos-chips-group{flex:1 1 0!important;min-width:0!important}
  #aos-topchips a,#aos-topchips .aos-edit{
    min-height:44px;display:inline-flex;align-items:center;justify-content:center;
  }
  #aos-topchips .aos-brand-symbol{min-width:44px}
  .aos-user-btn{height:44px;min-height:44px}
  .aos-notif-btn{height:44px;min-height:44px;min-width:44px}
  .aos-notif-dropdown{position:fixed;top:calc(var(--aos-top-h,44px) + 6px);right:8px;left:8px;width:auto;max-height:calc(100dvh - var(--aos-top-h,44px) - var(--aos-bottom-h,52px) - 20px)}
  #aos-topchips .aos-notif-reply{min-width:44px!important;min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
  .aos-agent-btn{height:44px;min-height:44px;max-width:112px}
  .aos-agent-backdrop.open{
    display:block;position:fixed;inset:0;z-index:2147483290;border:0!important;
    width:100vw;height:100dvh;padding:0!important;background:rgba(0,0,0,.35)!important;
  }
  .aos-agent-dropdown{
    position:fixed!important;
    top:calc(var(--aos-top-h,44px) + max(6px,env(safe-area-inset-top)))!important;
    right:max(8px,env(safe-area-inset-right))!important;
    bottom:auto!important;
    left:max(8px,env(safe-area-inset-left))!important;
    width:auto!important;max-width:none!important;
    max-height:calc(100dvh - var(--aos-top-h,44px) - var(--aos-bottom-h,52px) - max(22px,env(safe-area-inset-bottom)))!important;
    overflow:auto!important;overscroll-behavior:contain;box-shadow:2px 2px 0 #000!important;
  }
  .aos-agent-dd-head{position:sticky;top:-5px;z-index:2;min-height:44px}
  .aos-agent-dd-close{width:44px;height:44px}
  .aos-agent-transcript{max-height:min(36dvh,280px)}
  .aos-agent-send{min-width:72px;min-height:52px}
  body.aos-agent-menu-open{overflow:hidden!important}
  .aos-tab{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .aos-tab-left,.aos-tab-right{min-width:72px;padding-inline:10px;font-weight:bold}
  #aos-left > .aos-hd .aos-rail-collapse,
  #aos-right > .aos-hd > .aos-rail-collapse{
    flex-basis:44px;width:44px;height:44px;margin:-4px 0;
  }
  .aos-link{min-height:44px;display:flex;align-items:center}
  .aos-world-star{flex-basis:44px;width:44px;height:44px}
  .aos-friend{min-height:44px}
  #aos-bottom .aos-bottom-bar button,
  #aos-bottom .aos-bottom-bar input{
    box-sizing:border-box!important;height:44px;min-height:44px;max-height:44px;
  }
  #aos-bottom .aos-mode-trigger{min-width:72px;min-height:44px}
  #aos-bottom .aos-mode-menu button{min-height:44px}
  .aos-user-dropdown a,.aos-user-dropdown button{min-height:44px}
}
@media(max-width:520px){
  #aos-top-clock{display:none !important}
  .aos-controls-group{max-width:52vw !important;gap:2px!important;padding-right:0!important}
  /* A long World name must yield to the OS navigation and account controls.
     Keep the identity visible, truncate only its label, and preserve a full
     44px exit target without allowing the sticky bar to widen the document. */
  #aos-topchips{
    height:48px;min-height:48px;max-height:48px;
  }
  /* A World already supplies the current place identity, so the generic meta
     square yields on phones. This leaves a real scrollable nav lane instead
     of forcing the account controls beyond the viewport. */
  #aos-topchips:has(.aos-world-chip-wrap) .aos-brand-symbol{display:none!important}
  #aos-topchips .aos-world-chip-wrap{
    flex:0 1 34vw!important;min-width:0!important;max-width:34vw!important;
    overflow:hidden!important;
  }
  #aos-topchips .aos-world-chip{
    flex:1 1 auto!important;min-width:0!important;overflow:hidden!important;
  }
  #aos-topchips .aos-world-chip>span:last-child{
    min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  #aos-topchips .aos-world-chip-x{
    flex:0 0 44px!important;width:44px!important;min-width:44px!important;
    padding:0!important;font-size:0!important;
  }
  #aos-topchips .aos-world-chip-x::before{content:"×";font:bold 18px/1 "Courier New",monospace}
  /* Keep the paired Agent and human User as a visible adjacent tab pair.
     Appearance remains available from /settings on this narrowest chrome. */
  #aos-topchips{overflow-x:hidden!important}
  #aos-topchips .aos-chips-group{
    width:0!important;
    max-width:none!important;
  }
  .aos-controls-group{
    flex:0 0 98px!important;
    width:98px!important;
    max-width:98px!important;
    margin-left:0!important;
  }
  .ankle-top-lang-btn,.aos-notif-btn{display:none!important}
  .aos-theme-btn{display:none!important}
  .aos-top-agent{flex:0 1 72px!important;min-width:48px!important;max-width:72px!important}
  .aos-agent-top-wrap{width:100%;min-width:0}
  .aos-agent-btn{width:100%;max-width:72px;min-height:48px;height:48px;padding-left:5px;padding-right:5px}
  .aos-top-user{flex:0 1 78px!important;min-width:48px!important;max-width:78px!important;overflow:visible!important}
  .aos-user-dropdown-wrap{width:100%;min-width:0}
  .aos-user-btn{width:100%!important;max-width:78px!important;min-width:48px!important;height:48px;min-height:48px;overflow:hidden!important}
  .aos-notif-btn{min-width:48px;width:48px;height:48px;min-height:48px;padding:1px 18px 1px 3px;font-size:0}
  .aos-notif-btn:before{content:"!";font:bold 13px/1 "Courier New",monospace}
  #aos-post-tools{flex:0 0 auto!important}
  #aos-post-files{display:none!important}
  .aos-agent-composer{grid-template-columns:minmax(0,1fr)}
  .aos-agent-send{width:100%;min-height:44px}
  #aos-topchips .aos-agent-input{min-height:88px;font-size:16px!important}
  .aos-agent-links{gap:12px}
  #aos-topchips .aos-agent-links a{min-height:44px!important;display:inline-flex!important;align-items:center!important}
}
@media(max-width:360px){
  /* The post body remains primary on the narrowest supported phones. Full
     tags, media, and World destinations stay available from the top +POST
     composer, while this rail keeps a usable field and submit target. */
  #aos-post-tools{display:none!important}
}
@media (min-width:901px) and (max-width:1104px){
  body.aos-left-open.aos-right-open #aos-topchips .aos-search,
  body.aos-left-open.aos-right-open #aos-topchips .aos-brand-name{
    display:none !important;
  }
}

/* hide legacy thin top rail when full shell is present to avoid double chrome */
body.aos-has-shell #ankle-os-rail{ display: none !important; }

/* hide legacy secondary top nav bar under main ANKLE OS bar to avoid double chrome */
#nav-bar, .secondary-nav-bar, .sub-nav-bar { display: none !important; }

/* Versioned legal acknowledgement. It sits above the OS rail, never behind it. */
#aos-legal-banner{
  position:fixed;left:50%;bottom:calc(var(--aos-bottom-h,52px) + 10px);
  transform:translateX(-50%);z-index:2147483500;
  width:min(860px,calc(100vw - 24px));max-height:min(46vh,360px);overflow:auto;
  box-sizing:border-box;padding:10px 12px;background:#ffff00;color:#000;
  border:2px solid #000;box-shadow: inset 1px 1px 0 #fff,inset -1px -1px 0 #808080,2px 2px 0 #000;
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;
  font:11px/1.45 "Courier New",monospace;
}
#aos-legal-banner a{color:#000!important;text-decoration:underline!important;font-weight:bold}
.aos-legal-copy strong{display:inline-block;margin-right:2px}
.aos-legal-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.aos-legal-state{font-size:9px;max-width:150px}
.aos-legal-accept{font:bold 10px "Courier New",monospace;padding:8px 10px;background:#c0c0c0;color:#000;border:2px outset #fff;cursor:pointer;white-space:nowrap}
.aos-legal-accept:active{border-style:inset}
.aos-legal-accept:disabled{color:#666;cursor:wait}
#aos-legal-banner.aos-legal-done{opacity:0;transition:opacity .2s}
@media(max-width:700px){
  #aos-legal-banner{bottom:calc(var(--aos-bottom-h,52px) + env(safe-area-inset-bottom) + 8px);grid-template-columns:1fr;gap:8px;padding:9px 10px;width:calc(100vw - 16px);font-size:10px}
  .aos-legal-actions{justify-content:space-between;flex-wrap:wrap}
  .aos-legal-accept{white-space:normal;text-align:center;min-height:44px;flex:1}
}
@media print{#aos-legal-banner{display:none!important}}

/* Page object surface and floating bottom toolbars sit above the OS rail, never behind it */
body.aos-has-shell.aos-bottom-open #ankle-page-object,
body.aos-has-shell.aos-bottom-open .page-object-surface,
body.aos-has-shell.aos-bottom-open #worldLayoutBar,
body.aos-has-shell.aos-bottom-open #founderDay1,
body.aos-has-shell.aos-bottom-open #pinToolbar,
body.aos-bottom-open #ankle-page-object,
body.aos-bottom-open .page-object-surface,
body.aos-bottom-open #worldLayoutBar,
body.aos-bottom-open #founderDay1,
body.aos-bottom-open #pinToolbar {
  bottom: calc(var(--aos-bottom-h, 52px) + env(safe-area-inset-bottom, 0px) + 8px) !important;
}
body.aos-has-shell.aos-bottom-expanded #ankle-page-object,
body.aos-has-shell.aos-bottom-expanded .page-object-surface,
body.aos-has-shell.aos-bottom-expanded #worldLayoutBar,
body.aos-bottom-expanded #ankle-page-object,
body.aos-bottom-expanded .page-object-surface,
body.aos-bottom-expanded #worldLayoutBar {
  bottom: calc(var(--aos-bottom-open, min(42vh, 320px)) + env(safe-area-inset-bottom, 0px) + 8px) !important;
}
body.aos-has-shell.aos-bottom-open .ankle-toast,
body.aos-bottom-open .ankle-toast {
  bottom: calc(var(--aos-bottom-h, 52px) + env(safe-area-inset-bottom, 0px) + 14px) !important;
}

/* don't fight world edit chrome / full canvas editors if marked */
body.aos-shell-disabled .aos-tab,
body.aos-shell-disabled .aos-panel,
body.aos-shell-disabled #aos-topchips{ display: none !important; }

/* Custom scrollbar for OS panels to match the red/green theme */
.aos-body::-webkit-scrollbar, .aos-drawer::-webkit-scrollbar { width: 8px; height: 8px; }
.aos-body::-webkit-scrollbar-track, .aos-drawer::-webkit-scrollbar-track { background: red; border-left: 1px solid #000; }
.aos-body::-webkit-scrollbar-thumb, .aos-drawer::-webkit-scrollbar-thumb { background: #00ff00; border: 1px solid #000; }

/* Side rails keep wheel/touch scrolling, but their scrollbar must not consume
   an 8px gutter on only one side. That asymmetric gutter reads as a gap
   between the left navigation and the main surface. */
#aos-left .aos-body,
#aos-right .aos-body { scrollbar-width: none; }
#aos-left .aos-body::-webkit-scrollbar,
#aos-right .aos-body::-webkit-scrollbar { width: 0; height: 0; display: none; }

/* Suppress redundant legacy page navbars across the OS */
nav.nav, .nav, #worldNav, .world-nav, .worldcrumb {
  display: none !important;
}

/* ── TempleOS / HolyC 16-Color EGA/VGA Palette & Integer Grid Primitives ── */
:root {
  --tos-0: #000000;
  --tos-1: #0000aa;
  --tos-2: #00aa00;
  --tos-3: #00aaaa;
  --tos-4: #aa0000;
  --tos-5: #aa00aa;
  --tos-6: #aa5500;
  --tos-7: #aaaaaa;
  --tos-8: #555555;
  --tos-9: #5555ff;
  --tos-10: #55ff55;
  --tos-11: #55ffff;
  --tos-12: #ff5555;
  --tos-13: #ff55ff;
  --tos-14: #ffff55;
  --tos-15: #ffffff;

  --tos-black: var(--tos-0);
  --tos-blue: var(--tos-1);
  --tos-green: var(--tos-2);
  --tos-cyan: var(--tos-3);
  --tos-red: var(--tos-4);
  --tos-magenta: var(--tos-5);
  --tos-brown: var(--tos-6);
  --tos-ltgray: var(--tos-7);
  --tos-dkgray: var(--tos-8);
  --tos-ltblue: var(--tos-9);
  --tos-ltgreen: var(--tos-10);
  --tos-ltcyan: var(--tos-11);
  --tos-ltred: var(--tos-12);
  --tos-ltmagenta: var(--tos-13);
  --tos-yellow: var(--tos-14);
  --tos-white: var(--tos-15);
}

/* 16-Color Utility Classes */
.tos-fg-0 { color: var(--tos-0) !important; }
.tos-fg-1 { color: var(--tos-1) !important; }
.tos-fg-2 { color: var(--tos-2) !important; }
.tos-fg-3 { color: var(--tos-3) !important; }
.tos-fg-4 { color: var(--tos-4) !important; }
.tos-fg-5 { color: var(--tos-5) !important; }
.tos-fg-6 { color: var(--tos-6) !important; }
.tos-fg-7 { color: var(--tos-7) !important; }
.tos-fg-8 { color: var(--tos-8) !important; }
.tos-fg-9 { color: var(--tos-9) !important; }
.tos-fg-10 { color: var(--tos-10) !important; }
.tos-fg-11 { color: var(--tos-11) !important; }
.tos-fg-12 { color: var(--tos-12) !important; }
.tos-fg-13 { color: var(--tos-13) !important; }
.tos-fg-14 { color: var(--tos-14) !important; }
.tos-fg-15 { color: var(--tos-15) !important; }

.tos-bg-0 { background-color: var(--tos-0) !important; }
.tos-bg-1 { background-color: var(--tos-1) !important; }
.tos-bg-2 { background-color: var(--tos-2) !important; }
.tos-bg-3 { background-color: var(--tos-3) !important; }
.tos-bg-4 { background-color: var(--tos-4) !important; }
.tos-bg-5 { background-color: var(--tos-5) !important; }
.tos-bg-6 { background-color: var(--tos-6) !important; }
.tos-bg-7 { background-color: var(--tos-7) !important; }
.tos-bg-8 { background-color: var(--tos-8) !important; }
.tos-bg-9 { background-color: var(--tos-9) !important; }
.tos-bg-10 { background-color: var(--tos-10) !important; }
.tos-bg-11 { background-color: var(--tos-11) !important; }
.tos-bg-12 { background-color: var(--tos-12) !important; }
.tos-bg-13 { background-color: var(--tos-13) !important; }
.tos-bg-14 { background-color: var(--tos-14) !important; }
.tos-bg-15 { background-color: var(--tos-15) !important; }

/* TempleOS Mode / Ankle96 Brutalist Theme */
body.tos-theme,
[data-aos-theme="templeos"] {
  --aos-bg: var(--tos-7);
  --aos-panel: var(--tos-7);
  --aos-ink: var(--tos-0);
  --aos-dim: var(--tos-8);
  font-family: "Courier New", Courier, monospace !important;
  -webkit-font-smoothing: none;
  font-smooth: never;
}

body.tos-theme .aos-panel,
[data-aos-theme="templeos"] .aos-panel {
  border-color: var(--tos-15) var(--tos-0) var(--tos-0) var(--tos-15) !important;
  background: var(--tos-7) !important;
  color: var(--tos-0) !important;
}

body.tos-theme .aos-hd,
[data-aos-theme="templeos"] .aos-hd {
  background: var(--tos-1) !important;
  color: var(--tos-14) !important;
}

/* Integer Grid Math (80x60 character grid / 640x480 viewport) */
.tos-grid-80x60 {
  display: grid;
  grid-template-columns: repeat(80, 8px);
  grid-template-rows: repeat(60, 8px);
  width: 640px;
  height: 480px;
  background: #000000;
  color: var(--tos-14);
  font-family: "Courier New", Courier, monospace;
  font-size: 8px;
  line-height: 8px;
  overflow: hidden;
  image-rendering: pixelated;
}

.tos-viewport-640x480 {
  width: 640px;
  height: 480px;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 auto;
  position: relative;
  background: #000000;
  border: 2px outset #ffffff;
  box-shadow: 2px 2px 0 #000;
  image-rendering: pixelated;
}

/* DolDoc Unified Document Stream */
.tos-doldoc-doc {
  background: #000000;
  color: #ffff55;
  font-family: "Courier New", Courier, monospace;
  font-size: 12px;
  line-height: 1.35;
  padding: 10px;
  white-space: pre-wrap;
  word-break: break-word;
  border: 2px inset #808080;
  box-sizing: border-box;
}

.tos-doldoc-link {
  color: #55ffff !important;
  text-decoration: underline !important;
  cursor: pointer;
  padding: 0 1px;
}
.tos-doldoc-link:hover {
  background: #55ffff !important;
  color: #000000 !important;
}

.tos-doldoc-btn {
  display: inline-block;
  font-family: "Courier New", Courier, monospace;
  font-size: 11px;
  font-weight: bold;
  padding: 2px 6px;
  background: #aaaaaa;
  color: #000000;
  border: 2px outset #ffffff;
  cursor: pointer;
  margin: 1px 2px;
  user-select: none;
  vertical-align: middle;
}
.tos-doldoc-btn:active {
  border-style: inset;
  background: #888888;
}

.tos-doldoc-cb {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  user-select: none;
  color: #ffffff;
}
.tos-doldoc-cb input[type="checkbox"] {
  accent-color: #55ff55;
  cursor: pointer;
}

.tos-doldoc-tree {
  margin: 2px 0;
  border-left: 1px dashed #555555;
  padding-left: 8px;
}
.tos-doldoc-tree summary {
  color: #ff55ff;
  cursor: pointer;
  font-weight: bold;
  outline: none;
}
.tos-doldoc-tree summary:hover {
  color: #ffff55;
}
.tos-doldoc-tree[open] > summary {
  color: #55ff55;
}

/* DolDoc Marquee Ticker ($$MA$$) */
.tos-doldoc-marquee {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  box-sizing: border-box;
  background: #0000aa;
  color: #ffff55;
  padding: 2px 4px;
  border: 1px solid #5555ff;
}
.tos-doldoc-marquee-inner {
  display: inline-block;
  padding-left: 100%;
  animation: tosMarquee 12s linear infinite;
}
@keyframes tosMarquee {
  0% { transform: translate(0, 0); }
  100% { transform: translate(-100%, 0); }
}

/* Blinking text ($$BK$$) */
.tos-blink {
  animation: tosBlink 1s steps(1, start) infinite;
}
@keyframes tosBlink {
  50% { opacity: 0; }
}


/* ── THEME: TEMPLEOS / HOLYC ── */
body.theme-temple {
  --bg: #0000aa;
  --fg: #ffffff;
  --panel: #ffffff;
  --line: #ffffff;
  --highlight: #00aaaa;
  --muted: #aaaaaa;
  --faint: #555555;
  --accent: #ffff55;
  --code: #55ff55;
  --link: #ffff55;
  --visited: #ffff55;
  --mono-font: "Courier New", Courier, monospace;
}

body.theme-temple * {
  font-family: var(--mono-font) !important;
  font-smooth: never;
  -webkit-font-smoothing: none;
}

body.theme-temple .ank-dlg-box,
body.theme-temple .panel,
body.theme-temple .card {
  border: 4px double #ffffff !important;
  background: #ffffff !important;
  color: #0000aa !important;
  box-shadow: 2px 2px 0 #000;
  border-radius: 0 !important;
}

body.theme-temple .ank-dlg-bar,
body.theme-temple .panel-header {
  background: #0000aa !important;
  color: #ffffff !important;
  border-bottom: 4px double #ffffff !important;
  text-align: center;
  font-weight: bold;
}

body.theme-temple button,
body.theme-temple .btn {
  background: #ffffff !important;
  color: #000000 !important;
  border: 2px solid #ffffff !important;
  outline: 2px solid #000000 !important;
  border-radius: 0 !important;
  text-transform: uppercase;
}

body.theme-temple button:hover,
body.theme-temple .btn:hover {
  background: #000000 !important;
  color: #ffffff !important;
}

body.theme-temple input,
body.theme-temple textarea {
  background: #000000 !important;
  color: #ffff55 !important;
  border: 2px solid #ffffff !important;
  outline: none !important;
}

/* @system default helper chip */
.aos-row[data-helper="1"] .aos-name::after,
.aos-friend[data-helper="1"] .aos-name::after {
  content: " · helper";
  color: #333;
  font-size: 9px;
  font-weight: normal;
}

/* Historical social themes swap only the shell mark; other themes retain ⬚. */
#aos-topchips .aos-brand-status-wordmark,
#aos-topchips .aos-brand-campus-wordmark,
#aos-topchips .aos-brand-apple-logo,
#aos-topchips .aos-brand-apple-wordmark,
#aos-topchips .aos-brand-miniclip-wordmark {
  display: none;
  width: auto;
  height: auto;
}
.ankle-top-nav-btn{
  height:20px;
  padding:1px 6px;
  box-sizing:border-box;
  border:2px outset #fff;
  background:var(--panel,#c0c0c0);
  color:var(--fg,#000);
  font:700 10px/1 "Courier New",Courier,monospace;
  cursor:pointer;
  white-space:nowrap;
  border-radius:0;
}
.ankle-top-nav-btn:active{border-style:inset}
.ankle-top-nav-btn:hover{background:var(--highlight,#ffffe0);color:var(--fg,#000)}

/* Keep the original Meta Square flat, including inside beveled themes. */
#aos-topchips .aos-brand-symbol,#aos-topchips .aos-brand-default-mark{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important}

/* STP phone workspace: one text navigation row, no controls over the content. */
.aos-stp-mobile-nav{display:none}
@media(max-width:640px){
 body.aos-stp-community{padding-bottom:env(safe-area-inset-bottom,0px)!important;--aos-bottom-h:0px}
 body.aos-stp-community #aos-topchips{height:48px!important;min-height:48px!important;max-height:48px!important;overflow:visible!important;gap:0!important}
 body.aos-stp-community #aos-topchips>.aos-brand-symbol,
 body.aos-stp-community #aos-topchips>.aos-search,
 body.aos-stp-community #aos-topchips>.aos-chips-group,
 body.aos-stp-community #aos-topchips>.aos-controls-group,
 body.aos-stp-community #aos-topchips .aos-world-chip-x,
 body.aos-stp-community>.aos-tab,
 body.aos-stp-community #worldAgentDeskTab,
 body.aos-stp-community #aos-bottom,
 body.aos-stp-community .stp-nav{display:none!important}
 body.aos-stp-community #aos-topchips .aos-world-chip-wrap{flex:0 0 72px!important;width:72px!important;max-width:72px!important;min-width:0!important}
 body.aos-stp-community #aos-topchips .aos-world-chip{width:72px!important;min-height:48px!important;padding:0 6px!important;gap:5px!important;box-sizing:border-box}
 body.aos-stp-community .aos-stp-mobile-nav{display:flex!important;flex:1;min-width:0;align-items:stretch;height:48px}
 body.aos-stp-community #aos-topchips .aos-stp-mobile-nav>a,
 body.aos-stp-community .aos-stp-menu>summary{display:flex!important;align-items:center;justify-content:center;min-width:44px;min-height:48px!important;padding:0 7px!important;font:12px "Courier New",monospace!important;text-transform:none!important;text-decoration:none!important;color:var(--fg,#000)!important;box-sizing:border-box}
 body.aos-stp-community .aos-stp-mobile-nav>a{flex:1}
 body.aos-stp-community .aos-stp-menu{margin-left:auto}
 body.aos-stp-community .aos-stp-menu>summary{cursor:pointer;list-style:none;border:0!important}
 body.aos-stp-community .aos-stp-menu>summary::-webkit-details-marker{display:none}
 body.aos-stp-community .aos-stp-menu[open]>summary,
 body.aos-stp-community #aos-topchips .aos-stp-mobile-nav>[aria-current="page"]{background:var(--panel,#c0c0c0)!important;color:var(--fg,#000)!important;box-shadow:inset 0 -3px var(--accent,#000080);font-weight:bold!important}
 body.aos-stp-community .aos-stp-menu-panel{position:fixed;top:48px;right:8px;left:8px;max-height:calc(100dvh - 64px);overflow:auto;background:var(--panel,#c0c0c0);color:var(--fg,#000);border:1px solid var(--line,#000);box-shadow:3px 3px 0 #000;padding:8px;z-index:10050;display:grid;grid-template-columns:1fr 1fr;gap:2px}
 body.aos-stp-community #aos-topchips .aos-stp-menu-panel>a,
 body.aos-stp-community .aos-stp-menu-panel>button{display:flex!important;align-items:center;justify-content:flex-start;min-height:44px!important;padding:8px!important;border:0!important;box-shadow:none!important;background:transparent!important;color:var(--fg,#000)!important;font:12px "Courier New",monospace!important;text-decoration:none!important;text-transform:none!important;white-space:normal!important}
 body.aos-stp-community .aos-stp-menu-panel>:focus-visible{outline:2px solid var(--accent,#000080)!important;outline-offset:-2px}
 body.aos-stp-community .stp-calendar-search{width:100%!important;min-width:0!important}
}

@media(max-width:640px){
 body.aos-stp-community:not(.stp-mobile-tools-open) #world-widget-tray,
 body.aos-stp-community #world-widget-tray-fab{display:none!important}
 body.aos-stp-community .stp-calendar-search input{width:100%!important;max-width:none!important;box-sizing:border-box!important}
 body.aos-stp-community .stp-main form textarea{min-height:140px!important;font-size:16px!important}
 body.aos-stp-community #stp-compose{scroll-margin-top:60px}
 body.aos-stp-community .mobile-control-glyph{display:none!important}
 body.aos-stp-community .mobile-control-text{display:inline!important}
}
.mobile-control-text{display:none}
/* --- 2026-09-16 mobile chip-strip affordance -------------------------------
   At <=900px the nav chip strip (.aos-chips-group) is a horizontal scroller, but
   nothing said so: the last chip was chopped mid-label at the strip edge and the
   chips after it (ARCADE, +POST) looked missing. Measured at 390px: clientWidth
   244 vs scrollWidth 389, scrollLeft reachable to 145. A 16px fade flush against
   the LOGIN control still read as a collision, so the fade is wider (28px), ends
   semi-opaque instead of clear, and the strip keeps 8px of air before the
   controls. No layout change; >900px is untouched. */
@media (max-width:900px){
  #aos-topchips .aos-chips-group{
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    -ms-overflow-style:none;
    margin-right:8px;
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.18) 100%);
            mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.18) 100%);
  }
  #aos-topchips .aos-chips-group::-webkit-scrollbar{width:0;height:0;display:none}
}
