/* ABL mobile v9 — a phone composition of the original Darkroom Instrument.
   Public content and state semantics stay in their original source files. */
.m9-menu > summary,.m9-directory > summary { cursor:pointer; font-family:"Fragment Mono",monospace; font-size:12px; color:var(--text); }
.m9-menu > summary:focus-visible,.m9-directory > summary:focus-visible,.m9-pan:focus-visible { outline:2px solid var(--signal);outline-offset:3px; }
.m9-pan-tools,.m9-table-hint { display:none; }
/* Desktop JS puts the original nodes back into their original layout.
   Native details remains a complete fallback without JS; no display:contents
   or ::details-content dependency, including on older Safari. */
.m9-menu[hidden],.m9-directory[hidden] { display:none!important; }
@media (max-width:720px), (hover:none) and (pointer:coarse) and (max-height:500px) and (orientation:landscape) {
  .lb { height:6px; max-height:6px; }
  html { scroll-padding-top:16px; }
  body { font-size:16px; line-height:1.6; }
  .shell { width:100%; min-width:0; grid-template-columns:minmax(0,1fr); }
  .pad { padding-inline:clamp(16px,4.5vw,28px); }
  .rail { position:relative; display:block; min-height:76px; height:auto; padding:16px max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left)); border-bottom:1px solid var(--hairline); }
  .rail .wordmark { min-height:44px; width:fit-content; max-width:calc(100% - 92px); }
  .rail .wordmark .name { font-size:12px; }
  .m9-menu { margin:0; }
  .m9-menu > summary { position:absolute; top:16px; right:max(16px,env(safe-area-inset-right)); display:flex; align-items:center; justify-content:space-between; gap:16px; min-width:82px; min-height:44px; padding:10px 12px; border:1px solid var(--hairline-strong); list-style:none; background:var(--surface); }
  .m9-menu > summary::-webkit-details-marker,.m9-directory > summary::-webkit-details-marker { display:none; }
  .m9-menu > summary span,.m9-directory > summary span { color:var(--signal); font-size:18px; line-height:1; }
  .m9-menu[open] > summary span,.m9-directory[open] > summary span { transform:rotate(45deg); }
  .m9-menu-content { padding-top:18px; }
  .rail .rail-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 14px; }
  .rail .rail-nav a { display:flex; align-items:center; min-height:46px; padding:8px 0; border-bottom:1px solid var(--hairline); font-size:11px; gap:8px; }
  .rail .rail-status { margin-top:18px; display:flex; flex-direction:column; gap:8px; }
  .rail .rail-status .row { font-size:11px; overflow-wrap:anywhere; }
  .rail .rail-build { display:block; margin-top:8px; }
  .m9-directory { position:relative; margin:14px 0 0; border-bottom:1px solid var(--hairline); }
  .m9-directory > summary { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:8px 0; list-style:none; color:var(--text-2); }
  .m9-directory .abl-public-map { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; margin:0 0 14px; padding:6px; }
  .m9-directory .abl-public-map a { min-height:44px; padding:8px; font-size:11px; justify-content:flex-start; }
  .hero { padding:28px 0 34px; }
  .hero .eyebrow { margin-top:0; line-height:1.7; font-size:11px; overflow-wrap:anywhere; }
  .hero h1 { max-width:100%; }
  .hero .sub { font-size:18px; line-height:1.5; }
  .telemetry,.meta,.ameta,.label,.foot { overflow-wrap:anywhere; }
  .sec-head { gap:10px; align-items:baseline; }
  .sec-head .ix { flex:none; }
  .sec-head h2 { min-width:0; overflow-wrap:anywhere; }
  .article { max-width:100%; }
  .article p,.article li,.article dd,.article a,.contact p { overflow-wrap:anywhere; }
  .article h2 { font-size:28px; line-height:1.16; }
  .article h3 { line-height:1.65; }
  .article :not(pre)>code { overflow-wrap:anywhere; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
  .article pre { max-width:100%; padding:14px; overscroll-behavior-inline:contain; }
  .article pre code { white-space:pre; overflow-wrap:normal; }
  .table-scroll { max-width:100%; overscroll-behavior-inline:contain; border:1px solid var(--hairline); }
  .table-scroll table { min-width:520px; }
  .table-scroll th,.table-scroll td { padding:12px; }
  .table-scroll caption { text-align:left; }
  .m9-table-hint { display:block; margin:12px 0 8px; font-size:12px; line-height:1.6; color:var(--text-2); }
  .legal .table-scroll table { min-width:780px; table-layout:fixed; }
  .legal .table-scroll th:first-child { width:160px; }
  .post-item { grid-template-columns:1fr; gap:8px; padding:22px 0; }
  .post-item .d { font-size:11px; }
  .post-item h3 { font-size:27px; line-height:1.14; }
  .post-item p { font-size:16px; line-height:1.55; }
  .article>.label a,.txfoot a,.foot a { display:inline-flex; align-items:center; min-height:44px; padding-inline:4px; }
  .cta-row { width:100%; gap:0; }
  .cta-row .cta { min-height:46px; padding:12px 15px; justify-content:center; }
  .cta-row .cta.primary { flex:1 1 100%; }
  .cta-row .cta + .cta { flex:1; border-top:1px solid var(--hairline); }
  .entry { gap:0 12px; }
  .stratum { min-width:0; grid-template-columns:58px minmax(0,1fr); grid-template-areas:"alt read" "band band"; gap:4px 10px; padding:12px; }
  .stratum .read { justify-self:start; text-align:left; white-space:normal; overflow-wrap:anywhere; line-height:1.6; }
  .stratum .alt { white-space:normal; overflow-wrap:anywhere; }
  .stratum .st-band { gap:4px 10px; }
  .stratum .lname { font-size:11px; }
  .stratum .tools { overflow-wrap:anywhere; }
  #crossing { height:260svh; }
  #crossing .pin-frame { min-height:min(100svh,880px); padding-block:24px; }
  .spectro { margin-top:20px; gap:6px 16px; }
  .spectro span { overflow-wrap:anywhere; }
  .strata-foot { line-height:1.65; }
  .crossing-cap { display:none; }
  .console.wide { width:100%; max-width:420px; margin-inline:auto; }
  .console .cap { flex-wrap:wrap; gap:8px; line-height:1.6; }
  .console .readout { gap:10px; flex-wrap:wrap; }
  .console.wide .void-grid { width:100%; }
  .walk-pin { min-height:620px; min-height:max(620px,76svh); padding:90px 12px 28px; justify-content:flex-end; }
  .walk-hud { padding:14px 12px; flex-wrap:wrap; gap:6px 12px; font-size:10px; letter-spacing:.05em; }
  .walk-copy { width:100%; min-width:0; }
  .walk-copy .label { font-size:10px; letter-spacing:.06em; }
  .walk-h { font-size:clamp(32px,9vw,45px); }
  .walk-sub { margin-top:14px; line-height:1.55; }
  .walk-door { width:100%; min-width:0; margin-top:24px; padding:16px; }
  .walk-door:hover,.walk-door:focus-visible { transform:none; }
  .wd-t { font-size:16px; }
  .wd-s { overflow-wrap:anywhere; }
  .lines { width:100%; font-size:13px; }
  .lines a,.lines .cline,.contact .cline { max-width:100%; width:100%; min-width:0; align-items:flex-start; }
  .lines .k { width:auto; min-width:6ch; font-size:11px; padding-top:3px; }
  .lines .v { min-width:0; overflow-wrap:anywhere; }
  .lines a { min-height:44px; align-items:center; }
  .copyrow { display:grid!important; grid-template-columns:minmax(0,1fr) auto; gap:8px!important; }
  .copyrow a { gap:8px; }
  .copyhint { min-width:44px; min-height:44px; padding:8px; }
  .term-bar { flex-wrap:wrap; gap:8px; line-height:1.5; }
  .term-tree .node { min-height:44px; white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; line-height:1.5; }
  .term-out { font-size:12px; padding:14px; max-height:420px; }
  .term-foot { line-height:1.7; overflow-wrap:anywhere; }
  .fchips { gap:8px; }
  .fchip { min-width:44px; min-height:44px; padding:10px 12px; }
  #fq { min-height:44px; font-size:16px; }
  .fcount { white-space:normal; }
  .fdivs,.roster { grid-template-columns:minmax(0,1fr); }
  .article h2.fdiv-h { font-size:12px; line-height:1.6; flex-wrap:wrap; gap:4px 8px; }
  .fdiv-h .fn { font-size:11px; white-space:normal; }
  .funits .fdesc,.fmanifest dd { overflow-wrap:anywhere; }
  .abl-globe__mode { min-width:44px; min-height:44px; }
  .abl-globe__row { min-height:44px; }
  .abl-globe__name { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
  .m9-pan-tools { display:flex; gap:12px; align-items:center; justify-content:space-between; margin-top:24px; }
  .m9-pan-tools p { margin:0; max-width:32ch; color:var(--text-2); font-size:12px; line-height:1.6; }
  .m9-pan-tools>div { display:none; gap:6px; flex:none; }
  html.m9-enhanced .m9-pan-tools>div { display:flex; }
  .m9-pan-tools button { min-width:44px; min-height:44px; border:1px solid var(--hairline-strong); background:var(--surface); color:var(--text); font:20px/1 system-ui; cursor:pointer; }
  .m9-pan-tools button:focus-visible { outline:2px solid var(--signal); outline-offset:3px; }
  .m9-pan { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-color:var(--struct) var(--surface); margin-top:10px; }
  .m9-pan .housebar,.m9-pan .floorbar,.m9-pan .ringbar { position:sticky; left:0; top:auto; width:100%; min-height:54px; flex-wrap:wrap; gap:6px; font-size:10px; line-height:1.6; background:#100f12; }
  .m9-pan #floor,.m9-pan #house { width:1200px; max-width:none; }
  .m9-pan #ring { width:1000px; max-width:none; }
  .m9-pan #bus { width:1440px; max-width:none; }
  .m9-pan .ringlegend { position:sticky; left:0; width:100%; font-size:10px; line-height:1.7; }
  .foot { padding-bottom:calc(80px + env(safe-area-inset-bottom)); line-height:1.7; }
  #sound { min-height:44px; min-width:44px; right:max(12px,env(safe-area-inset-right)); bottom:max(12px,env(safe-area-inset-bottom)); }
  /* Decorative duplicate of the rail altitude; it otherwise obscures reading. */
  #scenemark { display:none; }
}
@media (max-width:720px) and (max-height:740px), (hover:none) and (pointer:coarse) and (max-height:500px) and (orientation:landscape) {
  /* A pinned sheet taller than the viewport strands its last readings. */
  #crossing { height:auto; }
  #crossing .pin-frame { position:relative; min-height:0; padding-block:28px; }
}
@media (prefers-reduced-motion:reduce) {
  .m9-pan { scroll-behavior:auto; }
}
