/* generated by overlay/v3/m3/build.mjs worldCss(): the m3 chrome (from m3.css, tokens as --m3-*) and the loader kit field, then css/world.css */
@font-face { font-family: "M3 Archivo";
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/m3/fonts/archivo-latin-v25.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "M3 JetBrains Mono";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/m3/fonts/jetbrains-mono-latin-v24.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root { --m3-bg: #05070D;
  --m3-inset: #070A14;
  --m3-card: #0B1020;
  --m3-line: #1A2236;
  --m3-line-strong: #2A3550;
  --m3-cyan-line-dark: #164A55;
  --m3-violet-line-dark: #3B2A5C;
  
  --m3-text: #E8F0FF;
  --m3-text-2: #C9D5EA;
  --m3-text-3: #9FB0CC;
  --m3-text-4: #7A89A6;
  --m3-white: #FFFFFF;
  
  --m3-cyan: #4FE3FF;
  --m3-cyan-2: #7FEBFF;
  --m3-cyan-3: #BFF6FF;
  --m3-cyan-4: #E8FCFF;
  --m3-on-cyan: #04121A;
  --m3-violet: #B06CFF;
  --m3-violet-2: #C99BFF;
  --m3-violet-3: #E4CCFF;
  --m3-violet-4: #EBDDFF;
  --m3-amber: #FFB547;
  --m3-on-amber: #1A0E00;
  --m3-on-violet: #12061F;
  --m3-asleep: #3A4560;
  --m3-later: #5F6E8A;
  --m3-text-count: #8393B0;    
  --m3-error: #FF6B6B;
  --m3-error-line: rgba(255, 107, 107, .45);
  --m3-error-tint: rgba(255, 107, 107, .08);
  --m3-cyan-tint: rgba(79, 227, 255, .12);
  --m3-cyan-edge: rgba(79, 227, 255, .45);
  --m3-cyan-glow: rgba(79, 227, 255, .8);
  --m3-violet-tint: rgba(176, 108, 255, .16);
  --m3-violet-edge: rgba(176, 108, 255, .5);
  --m3-amber-tint: rgba(255, 181, 71, .12);
  --m3-amber-edge: rgba(255, 181, 71, .45);
  --m3-amber-wash: rgba(255, 181, 71, .06);
  --m3-amber-frame: rgba(255, 181, 71, .35);
  --m3-ag-mint: #7FE3B0;         
  --m3-ag-blue: #8FA8FF;
  --m3-dev-answer: #08141C;      
  --m3-sample: #FFB3DA;          
  --m3-sample-edge: #FF7AC2;
  --m3-sample-wash: rgba(255, 122, 194, .08);
  
  --m3-font-display: "M3 Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --m3-font-mono: "M3 JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --m3-fs-10: 10px; --m3-fs-11: 11px; --m3-fs-12: 12px; --m3-fs-13: 13px; --m3-fs-14: 14px; --m3-fs-15: 15px; --m3-fs-16: 16px; --m3-fs-17: 17px; --m3-fs-18: 18px;
  --m3-fs-19: 19px; --m3-fs-20: 20px; --m3-fs-22: 22px; --m3-fs-24: 24px; --m3-fs-26: 26px; --m3-fs-28: 28px;
  --m3-track-label: .08em; --m3-track-label-wide: .12em; --m3-track-label-mid: .1em; --m3-track-tight: .06em;
  
  --m3-radius-control: 4px;
  --m3-radius-seg: 6px;
  --m3-radius-inner: 8px;
  --m3-radius-card: 12px;
  --m3-radius-tile: 14px;
  --m3-maxw: 1280px;
  --m3-gutter: clamp(20px, 8.2vw, 32px);
  --m3-s-2: 2px; --m3-s-4: 4px; --m3-s-6: 6px; --m3-s-8: 8px; --m3-s-10: 10px; --m3-s-12: 12px; --m3-s-14: 14px; --m3-s-16: 16px; --m3-s-18: 18px; --m3-s-20: 20px;
  --m3-s-22: 22px; --m3-s-24: 24px; --m3-s-26: 26px; --m3-s-28: 28px; --m3-s-32: 32px; --m3-s-36: 36px; --m3-s-40: 40px; --m3-s-48: 48px; --m3-s-56: 56px; --m3-s-64: 64px; --m3-s-72: 72px;
  --m3-s-88: 88px; --m3-s-96: 96px; --m3-s-112: 112px; --m3-s-120: 120px;
  --m3-tap: 44px; --m3-tap-lg: 56px;
  
  --m3-dur-fast: .2s;
  --m3-ease-out: cubic-bezier(.2, .8, .2, 1);
  --dvl-sticky-top: 12px;
  color-scheme: dark; }
:root :where(.m3-head, .m3-status, .m3-foot) :focus-visible { outline: 2px solid var(--m3-cyan); outline-offset: 2px; }
:root :where(.m3-head, .m3-status, .m3-foot) .vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
:root :where(.m3-head, .m3-status, .m3-foot) .wrap { max-width: var(--m3-maxw); margin: 0 auto; padding-left: var(--m3-gutter); padding-right: var(--m3-gutter); }
:root :where(.m3-head, .m3-status, .m3-foot) .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--m3-s-8); min-height: var(--m3-tap); padding: 0 var(--m3-s-18); border-radius: var(--m3-radius-control);
  font-family: var(--m3-font-mono); font-size: var(--m3-fs-13); letter-spacing: var(--m3-track-label); text-transform: uppercase; text-decoration: none; white-space: nowrap;
  border: 1px solid var(--m3-line-strong); background: transparent; color: var(--m3-text); cursor: pointer; font-weight: 500;
  transition: background-color var(--m3-dur-fast) var(--m3-ease-out), border-color var(--m3-dur-fast) var(--m3-ease-out), color var(--m3-dur-fast) var(--m3-ease-out), opacity var(--m3-dur-fast); }
:root :where(.m3-head, .m3-status, .m3-foot) .btn:hover { border-color: var(--m3-text-4); }
:root :where(.m3-head, .m3-status, .m3-foot) .btn:active { transform: translateY(1px); }
:root :where(.m3-head, .m3-status, .m3-foot) .btn--primary { background: var(--m3-cyan); border-color: var(--m3-cyan); color: var(--m3-on-cyan); font-weight: 700; }
:root :where(.m3-head, .m3-status, .m3-foot) .btn--primary:hover { background: var(--m3-cyan-2); border-color: var(--m3-cyan-2); }
:root :where(.m3-head, .m3-status, .m3-foot) .btn:disabled:not([aria-busy="true"]), :root :where(.m3-head, .m3-status, .m3-foot) .btn[aria-disabled="true"] { background: var(--m3-line); border-color: var(--m3-line); color: var(--m3-text-4); cursor: not-allowed; transform: none; }
:root :where(.m3-head, .m3-status, .m3-foot) .btn:disabled[aria-busy="true"] { cursor: progress; }
:root :where(.m3-head, .m3-status, .m3-foot) .input { width: 100%; min-width: 0; font-family: var(--m3-font-mono); font-size: var(--m3-fs-14); min-height: 48px; padding: 0 var(--m3-s-14); background: var(--m3-inset);
  border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-control); color: var(--m3-text); letter-spacing: 0; text-transform: none; }
:root :where(.m3-head, .m3-status, .m3-foot) .input--52 { min-height: 52px; padding: 0 var(--m3-s-16); }
:root :where(.m3-head, .m3-status, .m3-foot) .input--56 { min-height: var(--m3-tap-lg); padding: 0 var(--m3-s-16); font-size: var(--m3-fs-15); }
:root :where(.m3-head, .m3-status, .m3-foot) .input--sans { font-family: var(--m3-font-display); font-size: var(--m3-fs-17); }
:root :where(.m3-head, .m3-status, .m3-foot) .input--ticker { font-size: var(--m3-fs-17); letter-spacing: var(--m3-track-tight); text-transform: uppercase; }
:root :where(.m3-head, .m3-status, .m3-foot) .input--big { font-size: var(--m3-fs-24); min-height: 60px; padding: 0 var(--m3-s-16); }
:root :where(.m3-head, .m3-status, .m3-foot) .input[aria-invalid="true"] { border-color: var(--m3-amber); }
:root .m3-status { border-bottom: 1px solid var(--m3-line); }
:root .m3-status__in { padding-top: var(--m3-s-10); padding-bottom: var(--m3-s-10); display: flex; flex-wrap: wrap; gap: var(--m3-s-6) var(--m3-s-12); align-items: center;
  font-family: var(--m3-font-mono); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label); color: var(--m3-text-4); text-transform: uppercase; }
:root .m3-status__state { display: flex; align-items: center; gap: var(--m3-s-8); color: var(--m3-text-2); }
:root .m3-dot { width: 7px; height: 7px; border-radius: 4px; background: var(--m3-amber); flex: none; }
:root .m3-dot--on { background: var(--m3-cyan); box-shadow: 0 0 8px var(--m3-cyan); }
:root .m3-head { position: relative; z-index: 40; background: var(--m3-bg); border-bottom: 1px solid var(--m3-line); }
:root .m3-head__bar { display: flex; align-items: center; gap: var(--m3-s-8); padding: var(--m3-s-14) var(--m3-gutter); }
:root .m3-logo { display: flex; align-items: center; gap: var(--m3-s-12); text-decoration: none; color: var(--m3-text); min-height: var(--m3-tap); border-radius: var(--m3-radius-inner); }
:root .m3-logo svg { filter: drop-shadow(0 0 6px var(--m3-cyan-glow)); flex: none; }
:root .m3-logo__w { font-weight: 850; font-stretch: 125%; font-size: var(--m3-fs-20); letter-spacing: .02em; }
:root .m3-head__ph { margin-left: auto; display: flex; align-items: center; gap: var(--m3-s-6); }
:root .m3-icbtn { width: var(--m3-tap); height: var(--m3-tap); flex: none; display: inline-flex; align-items: center; justify-content: center; padding: 0; border-radius: var(--m3-radius-control);
  border: 1px solid var(--m3-line-strong); background: transparent; color: var(--m3-text); cursor: pointer; transition: border-color var(--m3-dur-fast); }
:root .m3-icbtn:hover { border-color: var(--m3-text-4); }
:root .m3-icbtn[aria-expanded="true"] { border-color: var(--m3-cyan); }
:root .m3-icbtn__close, :root .m3-icbtn[aria-expanded="true"] .m3-icbtn__open { display: none; }
:root .m3-icbtn[aria-expanded="true"] .m3-icbtn__close { display: inline; }
:root .m3-head__go { min-height: var(--m3-tap); padding: 0 var(--m3-s-12); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-tight); white-space: nowrap; }
@media (max-width: 360px) {
  :root .m3-head__go { display: none; }
}
:root .m3-nav__ico { flex: none; }
:root .m3-nav__ico path { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
:root .m3-nav__ico--plus path { stroke-width: 2.2; }
:root .m3-head__menu { display: flex; flex-direction: column; gap: var(--m3-s-12); }
:root .m3-nav { display: flex; flex-direction: column; gap: var(--m3-s-2); font-family: var(--m3-font-mono); font-size: var(--m3-fs-13); letter-spacing: var(--m3-track-label); }
:root .m3-nav a { display: flex; align-items: center; gap: var(--m3-s-14); min-height: 46px; padding: 0 var(--m3-s-12); border-radius: var(--m3-radius-inner); text-decoration: none; color: var(--m3-text-2);
  transition: background-color var(--m3-dur-fast), color var(--m3-dur-fast); }
:root .m3-nav a .m3-nav__ico { color: var(--m3-text-3); }
:root .m3-nav a:hover { background: var(--m3-card); color: var(--m3-white); }
:root .m3-nav a[aria-current="page"] { background: rgba(79, 227, 255, .10); color: var(--m3-white); box-shadow: inset 2px 0 0 var(--m3-cyan); }
:root .m3-nav a[aria-current="page"] .m3-nav__ico { color: var(--m3-cyan); }
:root .m3-search { display: flex; min-width: 0; position: relative; }
:root .m3-search .dvl-field { flex: 1 1 auto; display: flex; min-width: 0; }
:root .m3-search input { flex: 1 1 auto; min-width: 0; min-height: var(--m3-tap); font-size: var(--m3-fs-13); }
:root .m3-search__panel { position: absolute; left: 0; right: 0; top: calc(100% + var(--m3-s-6)); background: var(--m3-card); border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-inner);
  padding: var(--m3-s-6); z-index: 20; box-shadow: 0 16px 40px rgba(0, 0, 0, .55); }
:root .m3-search__panel ul { margin: 0; padding: 0; list-style: none; }
:root .m3-search__panel a { display: flex; align-items: center; justify-content: space-between; gap: var(--m3-s-12); min-height: var(--m3-tap); padding: 0 var(--m3-s-10); border-radius: var(--m3-radius-control);
  text-decoration: none; color: var(--m3-text); font-size: var(--m3-fs-15); }
:root .m3-search__panel a span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:root .m3-search__panel a:hover, :root .m3-search__panel a:focus-visible { background: var(--m3-inset); }
:root .m3-search__panel .tk { font-family: var(--m3-font-mono); font-size: var(--m3-fs-12); color: var(--m3-text-4); flex: none; }
:root .m3-head__launch { min-height: 48px; padding: 0 var(--m3-s-16); letter-spacing: var(--m3-track-label); }
:root .m3-head__foot { margin-top: auto; display: flex; flex-direction: column; gap: var(--m3-s-14); }
:root .m3-head__status { display: flex; flex-direction: column; gap: var(--m3-s-6); padding: var(--m3-s-12); border: 1px solid var(--m3-line); border-radius: var(--m3-radius-inner);
  font-family: var(--m3-font-mono); font-size: var(--m3-fs-10); letter-spacing: var(--m3-track-label); color: var(--m3-text-4); line-height: 1.5; text-transform: uppercase; }
:root .m3-wallet { font-weight: 500; font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label); }
:root .m3-wallet[data-connected="1"] { border-color: var(--m3-cyan-edge); color: var(--m3-cyan); }
:root .m3-wallet .wallet-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
@media (max-width: 760px) {
  :root .m3-head__menu { display: none; border-top: 1px solid var(--m3-line); background: var(--m3-inset); padding: var(--m3-s-12) var(--m3-gutter) var(--m3-s-18); }
  :root .m3-head[data-open] .m3-head__menu { display: flex; }
  :root .m3-search input { min-height: 48px; font-size: var(--m3-fs-14); }
  :root .m3-nav { font-size: var(--m3-fs-14); gap: 0; }
  :root .m3-nav a { min-height: 48px; border-radius: 0; border-bottom: 1px solid var(--m3-line); padding: 0 var(--m3-s-4) 0 var(--m3-s-12); box-shadow: inset 2px 0 0 transparent; }
  :root .m3-nav a[aria-current="page"] { background: transparent; box-shadow: inset 2px 0 0 var(--m3-cyan); }
  :root .m3-head__launch, :root .m3-head__status { display: none; }
  :root .m3-head__foot { margin-top: 0; }
  :root .m3-wallet { align-self: flex-start; min-height: 48px; font-size: var(--m3-fs-13); }
}
@media (min-width: 761px) {
  :root { --m3-side-w: 248px; }
  :root .m3-body { padding-left: var(--m3-side-w); }
  :root .m3-status, :root .m3-head__ph { display: none; }
  :root .m3-head { position: fixed; top: 0; left: 0; bottom: 0; width: var(--m3-side-w); border-bottom: 0; border-right: 1px solid var(--m3-line); padding: var(--m3-s-20) var(--m3-s-16);
    display: flex; flex-direction: column; gap: var(--m3-s-18); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  :root .m3-head__bar { padding: 0; }
  :root .m3-logo { padding: 0 var(--m3-s-8); }
  :root .m3-logo:hover { background: var(--m3-card); }
  :root .m3-head__menu { flex: 1 1 auto; gap: var(--m3-s-18); }
  :root .m3-search input { border-radius: var(--m3-radius-seg); }
  :root .m3-wallet { min-height: var(--m3-tap); border-radius: var(--m3-radius-seg); padding: 0 var(--m3-s-14); }
}
@media (min-width: 761px) and (max-width: 1099px) {
  :root { --m3-side-w: 76px; }
  :root .m3-head { padding: var(--m3-s-16) var(--m3-s-10); }
  :root .m3-logo { justify-content: center; padding: 0; }
  :root .m3-logo__w, :root .m3-search, :root .m3-head__status { display: none; }
  :root .m3-nav__l { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  :root .m3-nav a { justify-content: center; padding: 0; }
  :root .m3-head__launch, :root .m3-wallet { padding: 0; }
  :root .m3-wallet .wallet-label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
}
:root .m3-foot { border-top: 1px solid var(--m3-line); }
:root .m3-foot__in { padding-top: var(--m3-s-40); padding-bottom: 44px; display: flex; flex-direction: column; gap: var(--m3-s-28); font-family: var(--m3-font-mono); font-size: var(--m3-fs-12);
  letter-spacing: var(--m3-track-label); color: var(--m3-text-4); text-transform: uppercase; }
:root .m3-foot__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: var(--m3-s-24); }
:root .m3-foot__brand { display: flex; flex-direction: column; gap: var(--m3-s-8); max-width: 360px; }
:root .m3-foot__w { font-family: var(--m3-font-display); font-weight: 850; font-stretch: 125%; font-size: var(--m3-fs-22); letter-spacing: .02em; color: var(--m3-text); }
:root .m3-foot__brand p { margin: 0; line-height: 1.6; }
:root .m3-foot nav { display: flex; flex-wrap: wrap; gap: var(--m3-s-4) var(--m3-s-24); max-width: 640px; }
:root .m3-foot nav a { color: var(--m3-text-2); text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
:root .m3-foot nav a:hover { color: var(--m3-white); text-decoration: underline; text-underline-offset: 4px; }
:root .m3-foot__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: var(--m3-s-16); border-top: 1px solid var(--m3-line); padding-top: var(--m3-s-24); }
:root .m3-foot__bottom p { margin: 0; line-height: 1.7; letter-spacing: .04em; max-width: 820px; }
:root .m3-foot__contact a { color: var(--m3-text-2); text-decoration: none; text-transform: none; letter-spacing: .02em; display: inline-flex; align-items: center; min-height: 24px; }
:root .m3-foot__contact a:hover { text-decoration: underline; }
:root dialog.wallet-sheet { background: var(--m3-card); color: var(--m3-text); border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-card); padding: var(--m3-s-24); width: min(420px, calc(100vw - 32px)); }
:root dialog.wallet-sheet::backdrop { background: rgba(2, 3, 8, .72); }
:root dialog.wallet-sheet h2 { margin: 0 0 var(--m3-s-16); font-weight: 850; font-stretch: 125%; font-size: var(--m3-fs-24); text-transform: uppercase; }
:root dialog.wallet-sheet h2:focus { outline: none; }
:root .wallet-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--m3-s-8); }
:root dialog.wallet-sheet .btn.sec { width: 100%; justify-content: flex-start; }
:root .wallet-msg { margin: var(--m3-s-12) 0 0; font-size: var(--m3-fs-14); color: var(--m3-amber); min-height: 1em; }
:root dialog.wallet-sheet .ctas { margin: var(--m3-s-16) 0 0; }
:root dialog.wallet-sheet .btn.sec { display: inline-flex; align-items: center; min-height: var(--m3-tap); padding: 0 var(--m3-s-16); border-radius: var(--m3-radius-control); border: 1px solid var(--m3-line-strong);
  background: transparent; color: var(--m3-text); font-family: var(--m3-font-mono); font-size: var(--m3-fs-13); letter-spacing: var(--m3-track-label); text-transform: uppercase; cursor: pointer; }
:root dialog.wallet-sheet .btn.sec:hover { border-color: var(--m3-cyan); color: var(--m3-cyan); }
:root body > .toast { position: fixed; left: 50%; bottom: var(--m3-s-24); transform: translateX(-50%); background: var(--m3-card); border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-inner);
  padding: var(--m3-s-12) var(--m3-s-16); font-size: var(--m3-fs-14); z-index: 60; max-width: calc(100vw - 32px); }
:root :where(.m3-head, .m3-status, .m3-foot) .btn--violet { background: var(--m3-violet); border-color: var(--m3-violet); color: var(--m3-on-violet); font-weight: 700; }
:root :where(.m3-head, .m3-status, .m3-foot) .btn--m3-violet:hover { background: var(--m3-violet-2); border-color: var(--m3-violet-2); }
:root .m3-foot__brand a.m3-foot__hive { color: var(--m3-violet-2); text-decoration: none; display: inline-flex; min-height: 24px; align-items: center; }
:root .m3-foot__brand a.m3-foot__hive:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  :root :where(.m3-head, .m3-status, .m3-foot) .btn { transition: none; }
}
:root { --dur-fill: .6s; --switch-w: 40px; --switch-h: 24px; --switch-knob: 18px; }
@font-face { font-family: "M3 Archivo Fallback"; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("LiberationSans-Regular"); font-weight: 100 900; size-adjust: 98%; }
@font-face { font-family: "M3 Archivo Fallback D"; src: local("DejaVu Sans"), local("DejaVuSans"); font-weight: 100 900; size-adjust: 86%; }
@font-face { font-family: "M3 Archivo Display Fallback"; src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("LiberationSans-Bold"); font-weight: 100 900; size-adjust: 131%; }
@font-face { font-family: "M3 Archivo Display Fallback D"; src: local("DejaVu Sans Bold"), local("DejaVuSans-Bold"); font-weight: 100 900; size-adjust: 117%; }
:root :where(.m3-head, .m3-status, .m3-foot) .btn[aria-disabled="true"] { pointer-events: auto; }
:root { --dvl-bg: var(--m3-bg, #05070D);
  --dvl-inset: var(--m3-inset, #070A14);
  --dvl-card: var(--m3-card, #0B1020);
  --dvl-line: var(--m3-line, #1A2236);
  --dvl-line-strong: var(--m3-line-strong, #2A3550);
  --dvl-cyan-line: var(--m3-cyan-line-dark, #164A55);
  --dvl-violet-line: var(--m3-violet-line-dark, #3B2A5C);

  
  --dvl-text: var(--m3-text, #E8F0FF);
  --dvl-text-2: var(--m3-text-2, #C9D5EA);
  --dvl-text-3: var(--m3-text-3, #9FB0CC);
  --dvl-text-4: var(--m3-text-4, #7A89A6);

  
  --dvl-cyan: var(--m3-cyan, #4FE3FF);            
  --dvl-cyan-2: var(--m3-cyan-2, #7FEBFF);        
  --dvl-cyan-3: var(--m3-cyan-3, #BFF6FF);        
  --dvl-cyan-4: var(--m3-cyan-4, #E8FCFF);        
  --dvl-on-cyan: var(--m3-on-cyan, #04121A);
  --dvl-violet: var(--m3-violet, #B06CFF);        
  --dvl-violet-2: var(--m3-violet-2, #C99BFF);
  --dvl-violet-3: var(--m3-violet-3, #E4CCFF);    
  --dvl-violet-4: var(--m3-violet-4, #EBDDFF);    
  --dvl-amber: var(--m3-amber, #FFB547);          
  --dvl-asleep: var(--m3-asleep, #3A4560);
  --dvl-error: var(--m3-error, #FF6B6B);          
  --dvl-error-line: var(--m3-error-line, rgba(255, 107, 107, .45));
  --dvl-error-tint: var(--m3-error-tint, rgba(255, 107, 107, .08));
  --dvl-cyan-tint: var(--m3-cyan-tint, rgba(79, 227, 255, .12));
  --dvl-violet-tint: var(--m3-violet-tint, rgba(176, 108, 255, .16));
  --dvl-amber-tint: var(--m3-amber-tint, rgba(255, 181, 71, .12));

  
  --dvl-font-display: var(--m3-font-display, "M3 Archivo", system-ui, sans-serif);
  --dvl-font-mono: var(--m3-font-mono, "M3 JetBrains Mono", ui-monospace, Consolas, monospace);
  --dvl-radius-control: var(--m3-radius-control, 4px);
  --dvl-radius-inner: var(--m3-radius-inner, 8px);
  --dvl-radius-card: var(--m3-radius-card, 12px);

  
  --dvl-skel: var(--dvl-line);
  --dvl-shimmer: rgba(79, 227, 255, .07);

  
  --dvl-ease-out: cubic-bezier(.2, .7, .3, 1);
  --dvl-ease-in-out: cubic-bezier(.45, 0, .4, 1);
  --dvl-sticky-top: 12px; }
@keyframes dvl-spin { to { transform: rotate(360deg); } }
.dvl-spin { --size: 14px;
  --track: var(--dvl-line-strong);
  --arc: var(--dvl-cyan);
  --core: var(--dvl-cyan);
  position: relative;
  display: inline-block;
  flex: none;
  box-sizing: border-box;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: max(1.5px, calc(var(--size) / 8)) solid var(--track);
  border-top-color: var(--arc);
  vertical-align: -.15em;
  animation: dvl-spin .8s linear infinite; }
.dvl-spin::after { content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: max(2px, calc(var(--size) * .2));
  height: max(2px, calc(var(--size) * .2));
  border-radius: 50%;
  background: var(--core); }
.dvl-field { position: relative; display: flex; min-width: 0; }
.dvl-field > input { flex: 1 1 auto; min-width: 0; }
.dvl-field__status { position: absolute;
  top: 0;
  bottom: 0;
  right: 14px;
  display: flex;
  align-items: center;
  pointer-events: none;
  visibility: hidden;
  transition: visibility 0s; }
.dvl-field[aria-busy="true"] > .dvl-field__status { visibility: visible; transition-delay: .15s; }
.dvl-field[aria-busy="true"] > input { padding-right: 40px; }
.dvl-menu-status { display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 14px;
  font: 500 12px var(--dvl-font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dvl-text-3); }
@media (prefers-reduced-motion: reduce) {
  .dvl-spin { animation: dvl-twinkle 1.6s ease-in-out infinite; transform: none; }
}
/* ---------- devless-world-shell (pixel): the World beta pages in the m3 skin. Appended to /m3/m3-world.css after the generated m3 chrome.
   The World sheets stay (site.css, city.css, the vendored /w/assets ones, /v3/css/chrome.css for the Galaxy HUD); this maps their own tokens to the
   m3 values and restyles their overlays: dark ground, cyan and violet accents, Archivo uppercase headings, JetBrains Mono labels. Only --m3-* values.
   Scope: the page area is "W" below, never the m3 column or footer (they keep the generated chrome rules). ---------- */

/* the World tokens, at the weight that beats :root.v3 (site.css) and body.world / body.dnn-page (chrome.css warm) */
html.m3w-root:root, html.m3w-root > body.m3w {
  --bg: var(--m3-bg); --sf: var(--m3-card); --sf2: var(--m3-card); --sf3: var(--m3-line); --ln: var(--m3-line); --ln2: var(--m3-line-strong);
  --fg: var(--m3-text); --fgl: var(--m3-text-2); --mu: var(--m3-text-3); --mu2: var(--m3-text-4); --control: var(--m3-text-4);
  --ac: var(--m3-cyan); --ac-h: var(--m3-cyan-2); --ac-fg: var(--m3-on-cyan); --ac2: var(--m3-cyan-3);
  --warn: var(--m3-amber); --vote: var(--m3-violet-2); --bad: var(--m3-error);
  --code: var(--m3-inset); --code2: var(--m3-card);
  --c-control: var(--m3-text-4); --c-focus: var(--m3-cyan); --c-text-plate-mu: var(--m3-on-cyan);
  --head: var(--m3-font-display); --sans: var(--m3-font-display); --mono: var(--m3-font-mono);
  --r: var(--m3-radius-card); --r2: var(--m3-radius-inner); --r-pill: var(--m3-radius-control); --cut: none;
  --elev: none; --shadow-warm: rgba(0, 0, 0, .55);
  --dusk-page: linear-gradient(transparent, transparent);
  --hud-legend-bg: var(--m3-bg);
  --lbl-bg: var(--m3-card); --lbl-fg: var(--m3-text-2); --lbl-demo-edge: 1px dashed var(--m3-sample-edge);
  --lbl-road-bg: transparent; --lbl-road-edge: 1px solid var(--m3-violet-edge); --lbl-road-fg: var(--m3-violet-2);
  --lbl-lore-edge: 1px solid var(--m3-line-strong); --lbl-lore-fg: var(--m3-text-3);
  --lbl-sim-edge: 1px dashed var(--m3-sample-edge); --lbl-sim-band-edge: 1px dashed var(--m3-sample-edge);
  --focus-ring: 0 0 0 2px var(--m3-bg), 0 0 0 4px var(--m3-cyan);
}
html.m3w-root, html.m3w-root > body.m3w { background: var(--m3-bg); }
html.m3w-root > body.m3w { color: var(--m3-text); font-family: var(--m3-font-display); -webkit-font-smoothing: antialiased; }
html.m3w-root ::selection { background: var(--m3-cyan); color: var(--m3-on-cyan); }
/* the old v3 body is a flex column (site.css): the m3 column is fixed, the page and its footer stack in .m3-page */
html.m3w-root > body.m3w:not(.m3w--galaxy) { display: block; }
.m3w-page { display: flex; flex-direction: column; min-height: 100vh; min-width: 0; }
.m3w-page > main { flex: 1 0 auto; }
.m3w .m3-foot { margin-top: var(--m3-s-48); }
/* the column sits over the page from 761 px; the City bar and the DNN desks stick to the top of the page area (no header above them now) */
.m3w { --chrome-top: 0px; --kit-hd-h: 0px; --ribbon-now: 0px; }
.m3w .v3-ribbon { position: relative; z-index: 2; }

/* ---------- the page area: headings, labels, chips, buttons ---------- */
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(h1, h2) {
  font-family: var(--m3-font-display); font-weight: 850; font-stretch: 125%; text-transform: uppercase; letter-spacing: .005em; }
.m3w-page :is(h1) { line-height: .95; }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(.chip, .gx-chip, .hud-val, .kicker, .stat-l, .sec-h, .seg-title, .sim-name, .cm-go, .cp-s, .city-note, .city-demo, .city-hint, .city-keys) {
  font-family: var(--m3-font-mono); }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(.chip, .gx-chip) {
  display: inline-flex; align-items: center; gap: var(--m3-s-6); padding: 2px 6px; border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-control); background: transparent;
  color: var(--m3-text-3); font-size: var(--m3-fs-10); font-weight: 500; letter-spacing: var(--m3-track-label-mid); line-height: 1.4; text-transform: uppercase; white-space: nowrap; clip-path: none; }
/* Demo and Simulation read as m3 sample data (the dashed pink chip), PLANNED as the m3 violet chip */
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(.chip, .gx-chip):not(.chip--road) { color: var(--m3-sample); border: 1px dashed var(--m3-sample-edge); background: var(--m3-sample-wash); }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) .chip--road { color: var(--m3-violet-2); border: 1px solid var(--m3-violet-edge); background: var(--m3-violet-tint); }
/* DNN proof chips are buttons (they open a record): mono, cyan, never pink */
:is(.m3w-page > :not(.m3-foot)) button.chip:not(.chip--road) { color: var(--m3-cyan); border: 1px solid var(--m3-cyan-line-dark); background: var(--m3-cyan-tint); cursor: pointer; }
:is(.m3w-page > :not(.m3-foot)) button.chip:not(.chip--road):hover { border-color: var(--m3-cyan-edge); }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(.btn, .gx-back) {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--m3-s-8); min-height: var(--m3-tap); padding: 0 var(--m3-s-18); border-radius: var(--m3-radius-control); clip-path: none;
  border: 1px solid var(--m3-line-strong); background: transparent; color: var(--m3-text); box-shadow: none; text-shadow: none;
  font-family: var(--m3-font-mono); font-size: var(--m3-fs-13); font-weight: 500; letter-spacing: var(--m3-track-label); text-transform: uppercase; text-decoration: none; white-space: nowrap;
  transition: background-color var(--m3-dur-fast) var(--m3-ease-out), border-color var(--m3-dur-fast) var(--m3-ease-out), color var(--m3-dur-fast) var(--m3-ease-out); }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(.btn, .gx-back):hover { border-color: var(--m3-text-4); background: transparent; color: var(--m3-white); }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) .btn.pri { background: var(--m3-cyan); border-color: var(--m3-cyan); color: var(--m3-on-cyan); font-weight: 700; }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) .btn.pri:hover { background: var(--m3-cyan-2); border-color: var(--m3-cyan-2); color: var(--m3-on-cyan); }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(.btn, .gx-back):active { transform: translateY(1px); }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(.btn, .gx-back, a, button):focus-visible { outline: 2px solid var(--m3-cyan); outline-offset: 2px; box-shadow: none; }
:is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) .tlink { color: var(--m3-cyan); font-family: var(--m3-font-mono); font-size: var(--m3-fs-13); letter-spacing: var(--m3-track-label); text-transform: uppercase; }
.m3w-page .lead { color: var(--m3-text-2); font-size: var(--m3-fs-17); line-height: 1.6; max-width: 620px; }

/* ---------- the hero: WORLD (BETA), the view, the Demo devs line ---------- */
.m3w-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: var(--m3-s-8); margin: 0 0 var(--m3-s-14); font-family: var(--m3-font-mono); font-size: var(--m3-fs-12);
  letter-spacing: var(--m3-track-label-wide); text-transform: uppercase; color: var(--m3-cyan); }
.m3w-eyebrow__sep { color: var(--m3-text-4); }
.m3w-demo { margin: var(--m3-s-16) 0 0; max-width: 620px; font-family: var(--m3-font-mono); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label);
  text-transform: uppercase; color: var(--m3-text-3); line-height: 1.7; }
.m3w-demo .chip { margin-right: var(--m3-s-10); vertical-align: 1px; }
.m3w-page :is(.city-head, .dnn-head) h1 { font-size: clamp(36px, 5vw, 72px); margin: 0 0 var(--m3-s-16); color: var(--m3-text); }
.m3w-page :is(.city-head, .dnn-head) { background: none; }
.m3w-page .city-top { padding-top: var(--m3-s-40); padding-bottom: var(--m3-s-24); }
.m3w-page .city-head .ctas, .m3w-page .dnn-head .ctas { margin-top: var(--m3-s-22); }
.m3w-kick { display: block; margin-bottom: var(--m3-s-8); font-family: var(--m3-font-mono); font-size: var(--m3-fs-11); letter-spacing: var(--m3-track-label-wide); color: var(--m3-cyan); }

/* ---------- the City: bar, map overlays, lists ---------- */
.m3w-page .city-bar { background: var(--m3-bg); border-bottom: 1px solid var(--m3-line); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label); text-transform: uppercase; color: var(--m3-text-4); }
.m3w-page .city-demo { color: var(--m3-sample); }
.m3w-page .city-map { border-top: 1px solid var(--m3-line); border-bottom: 1px solid var(--m3-line); }
.m3w-page :is(.city-hint, .city-keys) { background: rgba(5, 7, 13, .86); color: var(--m3-text-2); border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-control);
  font-size: var(--m3-fs-11); letter-spacing: var(--m3-track-label); text-transform: uppercase; }
.m3w-page .city-ctl button { background: var(--m3-card); color: var(--m3-text); border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-control); box-shadow: none; clip-path: none; }
.m3w-page .city-ctl button:hover { border-color: var(--m3-cyan-edge); color: var(--m3-cyan); }
.m3w-page .gx-card { background: var(--m3-card); border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-inner); box-shadow: none; clip-path: none; }
.m3w-page .gx-card:hover { border-color: var(--m3-violet-edge); }
.m3w-page .gx-card-l { font-family: var(--m3-font-mono); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label); text-transform: uppercase; color: var(--m3-text); }
.m3w-page .city-panel { background: var(--m3-card); border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-card); color: var(--m3-text); box-shadow: 0 16px 40px rgba(0, 0, 0, .55); clip-path: none; }
.m3w-page .cpl-t, .m3w-page .cpl-ev { font-family: var(--m3-font-mono); font-size: var(--m3-fs-11); letter-spacing: var(--m3-track-label); text-transform: uppercase; }
/* aegis fix1 F2 (WCAG 2.5.8): the unexplored-land buttons keep their look but never draw under a 24 px target (their --iz scale only cancels
   the map zoom, so the box size is the drawn size; the coarse-pointer 44 px rule of city.css still wins on touch) */
.m3w-page .lp { min-height: var(--m3-s-24); min-width: var(--m3-s-24); align-content: center; }
.m3w-page .city-devs { border-top: 1px solid var(--m3-line); }
.m3w-page .city-devs h2 { font-size: clamp(26px, 2.8vw, 38px); line-height: 1; }
.m3w-page .cp-r { background: var(--m3-card); border: 1px solid var(--m3-line); border-radius: var(--m3-radius-inner); clip-path: none; }
.m3w-page .cp-r:hover { border-color: var(--m3-cyan-edge); }
.m3w-page .cm-go { color: var(--m3-cyan); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label); text-transform: uppercase; }

/* ---------- City rooms (/world/city/<room>, fix2): the room sits in the m3 page area and wears m3 surfaces ----------
   Loaded directly (main[data-inside], the map is display: none) the room host is in the page flow: under the City bar, right of the column,
   the m3 footer after it. Entered from the map it stays the fixed overlay city-doors.js animates (clip-path from the door), now starting right
   of the column instead of under it (--m3-side-w is unset under 761 px: the phone overlay spans the screen, as the phone map did). */
.m3w-page .pi-host { left: var(--m3-side-w, 0px); }
.m3w-page .city[data-inside] > .pi-host { position: relative; inset: auto; z-index: auto; overflow: visible; }
/* the office paper (--of-*, site.css) becomes the m3 dark surfaces; the isometric art keeps its own colours */
html.m3w-root:root, html.m3w-root > body.m3w {
  --of-stage: var(--m3-inset); --of-panel: var(--m3-card); --of-chip: var(--m3-inset); --of-sel: var(--m3-line); --of-edge: var(--m3-line-strong);
  --of-ink: var(--m3-text); --of-mu: var(--m3-text-3); --of-dim: rgba(0, 0, 0, .45);
  --of-c-hover: var(--m3-line); --of-c-sel: var(--m3-cyan-tint); --of-c-inv-bg: var(--m3-cyan); --of-c-inv-fg: var(--m3-on-cyan);
  --of-ring: 0 0 0 2px var(--m3-bg), 0 0 0 4px var(--m3-cyan); --of-ring-inset: inset 0 0 0 2px var(--m3-cyan);
}
.m3w-page :is(.pi-stage, .pi-sheet, .pi-band) { border-radius: var(--m3-radius-inner); }
.m3w-page .pi-band { border-left: 2px solid var(--m3-violet-edge); color: var(--m3-text-2); font-family: var(--m3-font-display); }
.m3w-page .pi-h1 { font-size: clamp(36px, 5vw, 72px); line-height: .95; }

/* ---------- DNN (/news, /news-article): the masthead and desks bar in m3 ---------- */
.m3w-page .mast { border-bottom: 1px solid var(--m3-line); }
.m3w-page .desks { background: var(--m3-bg); border-bottom: 1px solid var(--m3-line); font-family: var(--m3-font-mono); text-transform: uppercase; letter-spacing: var(--m3-track-label); font-size: var(--m3-fs-12); }
.m3w-page .dnn-head-w { padding-top: var(--m3-s-40); }
.m3w-page > main .plate-h.plate-h { font-stretch: 100%; font-size: clamp(32px, 3.8vw, 58px); line-height: 1.02; letter-spacing: 0; }
.m3w-page .sim-plate { font-family: var(--m3-font-mono); text-transform: uppercase; }

/* ---------- the Galaxy: viewport-locked; the m3 column on the left, the World and its HUD in the rest ---------- */
@media (min-width: 761px) {
  /* the HUD is fixed to the viewport: it starts right of the column (--m3-side-w comes with the chrome) */
  .m3w--galaxy > .gx-hud { --hd: var(--ribbon-now, 0px); }
  .m3w--galaxy > .gx-hud :is(.gx-back, .gx-what, .gx-legend) { left: calc(var(--m3-side-w) + var(--in)); }
}
@media (max-width: 760px) {
  /* phone: the status strip and the compact header sit above the map; m3.js measures where the map starts (--m3w-top) for the fixed HUD */
  .m3w--galaxy > :is(.m3-status, .m3-head) { flex: none; }
  /* aegis fix1 F1 (CLS): the offset is reserved from the m3 chrome's own sizes (bar: 2 x 14 + 44 tap + 1 line; status: 2 x 10 + 12 px type
     x 1.5 + 1 line, on two lines with a 6 px row gap under 521 px; ribbon: 24 + 1), so m3.js only refines it, never moves the HUD */
  .m3w--galaxy { --m3w-bar: calc(var(--m3-s-14) * 2 + var(--m3-tap) + 1px); --m3w-st: calc(var(--m3-s-10) * 2 + var(--m3-fs-12) * 1.5 + 1px); --m3w-rib: 0px;
    --m3w-top0: calc(var(--m3w-rib) + var(--m3w-st) + var(--m3w-bar)); }
  .m3w--galaxy:has(> .v3-ribbon) { --m3w-rib: calc(var(--m3-s-24) + 1px); }
  .m3w--galaxy > .gx-hud { --hd: var(--m3w-top, var(--m3w-top0)); }
  .m3w--galaxy .m3-head__menu { position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100dvh - var(--m3w-top, var(--m3w-top0))); overflow-y: auto; }
}
@media (max-width: 520px) { .m3w--galaxy { --m3w-st: calc(var(--m3-s-10) * 2 + var(--m3-fs-12) * 3 + var(--m3-s-6) + 1px); } }
/* aegis fix1 F1 (CLS): the Galaxy HUD hides the World's top bar, so its hud.js measures --hud-top as 0 after load and the map region (main.free)
   jumped up by the 48 px default (also on master). Reserved here at the value it always ends at. */
.m3w--galaxy:has(> .gx-hud) { --hud-top: 0px; }
.m3w--galaxy > .gx-hud :is(.gx-what, .gx-legend) { background: rgba(11, 16, 32, .92); border: 1px solid var(--m3-line-strong); border-radius: var(--m3-radius-inner); color: var(--m3-text-2); }
.m3w--galaxy > .gx-hud .gx-what { font-size: var(--m3-fs-14); line-height: 1.55; }
.m3w--galaxy > .gx-hud .gx-legend > summary { font-family: var(--m3-font-mono); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label); text-transform: uppercase; color: var(--m3-text); }
.m3w--galaxy > .gx-hud .gx-back { background: var(--m3-bg); }
.m3w--galaxy > .gx-hud .gx-back::before { border-color: currentColor; }
.m3w--galaxy > .gx-hud .gx-tb { font-family: var(--m3-font-mono); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label); text-transform: uppercase; color: var(--m3-cyan); text-decoration-color: var(--m3-cyan-edge); }
.m3w--galaxy .kw-vp :is(.mapctl button, .note2d, .rail, .panel, .pop) { border-radius: var(--m3-radius-inner); clip-path: none; }
.m3w--galaxy .kw-vp .mapctl button { background: var(--m3-card); border: 1px solid var(--m3-line-strong); color: var(--m3-text); font-family: var(--m3-font-mono); }
.m3w--galaxy .kw-vp .note2d { background: rgba(11, 16, 32, .92); border: 1px solid var(--m3-line-strong); color: var(--m3-text-2); }

/* ---------- /e/<n>: the event link page, a plain m3 page ---------- */
.m3w--event .m3w-page > main { max-width: var(--m3-maxw); width: 100%; margin: 0 auto; padding: var(--m3-s-48) var(--m3-gutter) var(--m3-s-64); display: flex; flex-direction: column; gap: var(--m3-s-12); }
.m3w--event .m3w-page > main a { color: var(--m3-cyan); font-family: var(--m3-font-mono); font-size: var(--m3-fs-13); letter-spacing: var(--m3-track-label); text-transform: uppercase; text-decoration: none; min-height: var(--m3-tap); display: inline-flex; align-items: center; }
.m3w--event .m3w-page > main a:hover { text-decoration: underline; text-underline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
  :is(.m3w-page > :not(.m3-foot), .m3w--galaxy > .kw-vp, .m3w--galaxy > .gx-hud) :is(.btn, .gx-back) { transition: none; }
}

/* sentence links (the Street list, the DNN rivers): the m3 cyan, in the reading face, never a wall of uppercase mono */
.m3w-page .cst-list .tlink { font-family: var(--m3-font-display); font-size: var(--m3-fs-15); letter-spacing: 0; text-transform: none; line-height: 1.45; text-decoration: none; }
.m3w-page .cst-list .tlink:hover { text-decoration: underline; text-underline-offset: 4px; }
.m3w--event .m3w-page > main > p:first-child { margin: 0; font-family: var(--m3-font-mono); font-size: var(--m3-fs-12); letter-spacing: var(--m3-track-label); text-transform: uppercase; color: var(--m3-sample); }

/* ---------- owner 30 Oct: the map fills the screen on arrival (no scroll to reach it). The hero (World (beta), the view, the Demo line, the
   CTA) moves under the map; the City bar stays on top on desktop. On phones the m3 status box and header (136 px) sit above the page. ---------- */
.m3w-page main.city:not([data-inside]) { display: flex; flex-direction: column; }
.m3w-page main.city:not([data-inside]) > * { order: 3; }
.m3w-page main.city:not([data-inside]) > .city-bar { order: 0; }
.m3w-page main.city:not([data-inside]) > .city-map { order: 1; flex: none; }
.m3w-page main.city:not([data-inside]) > .city-top { order: 2; }
@media (max-width: 47.99em) { .m3w-page .city-map { height: calc(100dvh - 136px); min-height: 420px; } }
